基本

システムプロンプト

OpenClawは、すべてのエージェント実行に対してカスタムシステムプロンプトを構築します。このプロンプトは OpenClawが所有する ものであり、pi-coding-agentのデフォルトプロンプトは使用しません。プロンプトはOpenClawによって組み立てられ、各エージェント実行に注入されます。

構造

プロンプトは意図的にコンパクトに設計されており、固定セクションを使用します:

  • ツーリング: 現在のツール一覧 + 短い説明。
  • 安全性: 権力追求行動や監視の回避を防ぐための短いガードレールのリマインダー。
  • スキル (利用可能な場合): モデルにスキル指示をオンデマンドで読み込む方法を伝えます。
  • OpenClaw 自己更新: config.applyupdate.run の実行方法。
  • ワークスペース: 作業ディレクトリ (agents.defaults.workspace)。
  • ドキュメント: OpenClawドキュメントへのローカルパス (リポジトリまたはnpmパッケージ) と、いつそれらを読むべきか。
  • ワークスペースファイル (注入済み): ブートストラップファイルが以下に含まれていることを示します。
  • サンドボックス (有効な場合): サンドボックス化されたランタイム、サンドボックスパス、および昇格された実行権限が利用可能かどうかを示します。
  • 現在の日付と時刻: ユーザーローカルの時刻、タイムゾーン、時刻形式。
  • 返信タグ: サポートされているプロバイダー向けのオプションの返信タグ構文。
  • ハートビート: ハートビートプロンプトとack動作。
  • ランタイム: ホスト、OS、node、モデル、リポジトリルート (検出された場合)、思考レベル (1行)。
  • 推論: 現在の可視性レベル + /reasoning トグルヒント。

システムプロンプト内の安全性ガードレールは助言的なものです。これらはモデルの動作を導きますが、ポリシーを強制しません。ハードな強制には、ツールポリシー、実行承認、サンドボックス化、チャネル許可リストを使用してください。オペレーターは設計上これらを無効にできます。

プロンプトモード

OpenClawは、サブエージェント向けにより小さなシステムプロンプトをレンダリングできます。ランタイムは各実行に対して promptMode を設定します (ユーザー向け設定ではありません):

  • full (デフォルト): 上記のすべてのセクションを含みます。
  • minimal: サブエージェント用に使用されます。スキルメモリリコールOpenClaw自己更新モデルエイリアスユーザーID返信タグメッセージングサイレント返信、およびハートビートを省略します。ツーリング、安全性、ワークスペース、サンドボックス、現在の日付と時刻 (既知の場合)、ランタイム、および注入されたコンテキストは利用可能なままです。
  • none: 基本のID行のみを返します。

promptMode=minimal の場合、追加で注入されるプロンプトは グループチャットコンテキスト ではなく サブエージェントコンテキスト とラベル付けされます。

ワークスペースブートストラップ注入

ブートストラップファイルはトリミングされ、プロジェクトコンテキスト の下に追加されます。これにより、モデルは明示的な読み取りを必要とせずにIDとプロファイルのコンテキストを認識できます:

  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md (新規ワークスペースでのみ)
  • MEMORY.md および/または memory.md (ワークスペースに存在する場合。いずれかまたは両方が注入される可能性があります)

これらのファイルはすべて コンテキストウィンドウに注入されます。つまり、トークンを消費します。特に時間の経過とともに大きくなり、予期せぬ高いコンテキスト使用量やより頻繁な圧縮を引き起こす可能性がある MEMORY.md は、簡潔に保つようにしてください。

注意: memory/*.md 日次ファイルは自動的には注入されません。これらは memory_search および memory_get ツールを介してオンデマンドでアクセスされるため、モデルが明示的に読み取らない限り、コンテキストウィンドウのカウントには含まれません。

大きなファイルはマーカー付きで切り捨てられます。ファイルごとの最大サイズは agents.defaults.bootstrapMaxChars (デフォルト: 20000) で制御されます。ファイル全体にわたる注入されるブートストラップコンテンツの合計は、agents.defaults.bootstrapTotalMaxChars (デフォルト: 150000) で制限されます。欠落しているファイルには、短い欠落ファイルマーカーが注入されます。切り捨てが発生した場合、OpenClawはプロジェクトコンテキストに警告ブロックを注入できます。これは agents.defaults.bootstrapPromptTruncationWarning (off, once, always; デフォルト: once) で制御します。サブエージェントセッションでは、AGENTS.mdTOOLS.md のみが注入されます (他のブートストラップファイルは、サブエージェントコンテキストを小さく保つために除外されます)。内部フックは agent:bootstrap を介してこのステップをインターセプトし、注入されるブートストラップファイルを変更または置換できます (例えば、SOUL.md を代替のペルソナと交換するなど)。注入された各ファイルがどれだけ貢献しているか (生データ vs 注入データ、切り捨て、ツールスキーマのオーバーヘッド) を検査するには、/context list または /context detail を使用してください。コンテキストを参照してください。

時刻処理

システムプロンプトには、ユーザーのタイムゾーンが既知の場合、専用の 現在の日付と時刻 セクションが含まれます。プロンプトをキャッシュ安定させるために、現在では タイムゾーン のみを含みます (動的な時計や時刻形式は含みません)。エージェントが現在時刻を必要とする場合は session_status を使用してください。ステータスカードにはタイムスタンプ行が含まれます。以下で設定します:

  • agents.defaults.userTimezone
  • agents.defaults.timeFormat (auto | 12 | 24)

完全な動作の詳細については、日付と時刻を参照してください。

スキル

適格なスキルが存在する場合、OpenClawは各スキルの ファイルパス を含むコンパクトな 利用可能スキル一覧 (formatSkillsForPrompt) を注入します。プロンプトは、モデルにリストされた場所 (ワークスペース、管理済み、またはバンドル済み) にある SKILL.md を読み込むために read を使用するよう指示します。適格なスキルがない場合、スキルセクションは省略されます。

<available_skills>
  <skill>
    <name>...</name>
    <description>...</description>
    <location>...</location>
  </skill>
</available_skills>

これにより、基本的なプロンプトを小さく保ちながら、ターゲットを絞ったスキルの使用を可能にします。

ドキュメント

利用可能な場合、システムプロンプトには ドキュメント セクションが含まれます。これはローカルのOpenClawドキュメントディレクトリ (リポジトリワークスペース内の docs/ またはバンドルされたnpmパッケージのドキュメント) を指し、また公開ミラー、ソースリポジトリ、コミュニティDiscord、およびスキル発見のためのClawHub (https://clawhub.com) にも言及します。プロンプトは、OpenClawの動作、コマンド、設定、またはアーキテクチャについて、まずローカルドキュメントを参照し、可能な場合は自分自身で openclaw status を実行するようモデルに指示します (アクセス権がない場合のみユーザーに尋ねます)。

エージェントループコンテキスト