OpenClaw は、エージェント実行ごとにカスタムシステムプロンプトを構築します。このプロンプトは OpenClaw 所有であり、pi-coding-agent のデフォルトプロンプトは使用しません。 プロンプトは OpenClaw によって組み立てられ、各エージェント実行に注入されます。 プロンプトの組み立てには 3 つのレイヤーがあります。Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
buildAgentSystemPromptは明示的な入力からプロンプトをレンダリングします。これは 純粋なレンダラーのままであるべきで、グローバル設定を直接読み取るべきではありません。resolveAgentSystemPromptConfigは、特定のエージェント向けに、所有者表示、TTS ヒント、モデルエイリアス、メモリ引用モード、サブエージェント委任モードなどの 設定に基づくプロンプト調整項目を解決します。- ランタイムアダプター(埋め込み、CLI、コマンド/エクスポートプレビュー、Compaction)は、ツール、サンドボックス状態、チャネル機能、コンテキストファイル、 プロバイダーのプロンプト寄与などのライブ情報を集め、その後、設定済みのプロンプトファサードを呼び出します。
- 名前付きコアセクションの小さな集合(
interaction_style、tool_call_style、execution_bias)を置き換える - プロンプトキャッシュ境界の上に 安定したプレフィックスを注入する
- プロンプトキャッシュ境界の下に 動的サフィックスを注入する
before_prompt_build プロンプト変更は、互換性または本当にグローバルなプロンプト変更のために残し、
通常のプロバイダー動作には使わないでください。
OpenAI GPT-5 ファミリーのオーバーレイは、コア実行ルールを小さく保ちつつ、
ペルソナのラッチ、簡潔な出力、ツール規律、並列ルックアップ、成果物の網羅性、検証、欠落コンテキスト、
ターミナルツールの衛生に関するモデル固有のガイダンスを追加します。
構造
プロンプトは意図的にコンパクトで、固定セクションを使用します。- ツール: 構造化ツールの信頼できる情報源に関するリマインダーと、ランタイムのツール使用ガイダンス。
- 実行バイアス: コンパクトなやり切りガイダンス。対応可能なリクエストにはそのターン内で行動し、 完了またはブロックされるまで続け、弱いツール結果から回復し、変更され得る状態をライブで確認し、 最終化前に検証します。
- 安全性: 権力追求的な行動や監督の回避を避けるための短いガードレールリマインダー。
- Skills(利用可能な場合): 必要に応じて Skills 指示を読み込む方法をモデルに伝えます。
- OpenClaw 制御: 設定/再起動作業では
gatewayツールを優先し、 CLI コマンドを捏造しないようモデルに伝えます。 - OpenClaw 自己更新:
config.schema.lookupで設定を安全に検査し、config.patchで設定にパッチを当て、config.applyで設定全体を置き換え、 明示的なユーザーリクエストがある場合にのみupdate.runを実行する方法。所有者専用のgatewayツールも、tools.exec.ask/tools.exec.securityを書き換えることを拒否します。これには、それらの保護された exec パスに正規化される レガシーのtools.bash.*エイリアスも含まれます。 - ワークスペース: 作業ディレクトリ(
agents.defaults.workspace)。 - ドキュメント: OpenClaw docs/source へのローカルパスと、それを読むタイミング。
- ワークスペースファイル(注入済み): ブートストラップファイルが下に含まれていることを示します。
- サンドボックス(有効な場合): サンドボックス化されたランタイム、サンドボックスパス、昇格 exec が利用可能かどうかを示します。
- 現在の日付と時刻: タイムゾーンのみ(キャッシュ安定。ライブ時計は
session_statusから取得されます)。 - アシスタント出力指示: コンパクトな添付、ボイスメモ、返信タグ構文。
- Heartbeats: デフォルトエージェントで Heartbeat が有効な場合の Heartbeat プロンプトと ack 動作。
- ランタイム: ホスト、OS、node、モデル、リポジトリルート(検出された場合)、thinking レベル(1 行)。
- 推論: 現在の可視性レベル + /reasoning トグルヒント。
- 将来のフォローアップ(
check back later、リマインダー、定期作業)には cron を使用し、execの sleep ループ、yieldMsの遅延トリック、または反復的なprocessポーリングは使用しない - 今すぐ開始してバックグラウンドで実行し続けるコマンドにのみ
exec/processを使用する - 自動完了 wake が有効な場合は、コマンドを一度だけ開始し、 出力を発するか失敗したときのプッシュベースの wake パスに依存する
- 実行中のコマンドを検査する必要がある場合は、ログ、ステータス、入力、または介入に
processを使用する - タスクが大きい場合は
sessions_spawnを優先する。サブエージェントの完了は プッシュベースで、依頼者へ自動通知される - 完了を待つためだけに
subagents list/sessions_listをループでポーリングしない
agents.defaults.subagents.delegationMode は、このガイダンスを強化できます。
デフォルトの suggest モードはベースラインの促しを維持します。prefer は専用の
サブエージェント委任セクションを追加し、メインエージェントに、応答性の高い調整役として振る舞い、
直接返信より複雑なものは sessions_spawn に流すよう伝えます。これはプロンプトのみです。
sessions_spawn が利用可能かどうかは、引き続きツールポリシーが制御します。
実験的な update_plan ツールが有効な場合、ツールセクションはモデルに、
非自明な複数ステップ作業にのみ使用し、in_progress ステップを必ず 1 つだけ保ち、
各更新後に計画全体を繰り返さないようにも伝えます。
システムプロンプト内の安全性ガードレールは助言です。モデルの動作を導きますが、ポリシーを強制するものではありません。強制には、ツールポリシー、exec 承認、サンドボックス、チャネル許可リストを使用してください。オペレーターは設計上これらを無効化できます。
ネイティブの承認カード/ボタンを持つチャネルでは、ランタイムプロンプトは現在、
まずそのネイティブ承認 UI に依存するようエージェントに伝えます。ツール結果がチャット承認は利用不可だと言う場合、
または手動承認が唯一の経路である場合にのみ、手動の /approve コマンドを含めるべきです。
プロンプトモード
OpenClaw は、サブエージェント向けにより小さなシステムプロンプトをレンダリングできます。ランタイムは各実行にpromptMode を設定します(ユーザー向け設定ではありません)。
full(デフォルト): 上記のすべてのセクションを含みます。minimal: サブエージェント用。メモリ想起、OpenClaw 自己更新、モデルエイリアス、ユーザー ID、アシスタント出力指示、 メッセージング、サイレント返信、Heartbeatsを省略します。ツール、安全性、 提供された場合の Skills、ワークスペース、サンドボックス、現在の日付と時刻(判明している場合)、 ランタイム、注入されたコンテキストは引き続き利用できます。none: ベース ID 行のみを返します。
promptMode=minimal の場合、追加の注入プロンプトは グループチャットコンテキストではなく
サブエージェントコンテキストとラベル付けされます。
チャネル自動返信実行では、直接/グループチャットコンテキストに、解決済みの会話固有の
NO_REPLY 動作がすでに含まれている場合、OpenClaw は汎用の サイレント返信
セクションを省略できます。これにより、グローバルシステムプロンプトとチャネルコンテキストの両方で
トークンの仕組みを繰り返すことを避けられます。
プロンプトスナップショット
OpenClaw は、Codex ランタイムのハッピーパス向けにコミット済みのプロンプトスナップショットをtest/fixtures/agents/prompt-snapshots/codex-runtime-happy-path/ 配下に保持します。これらは、
選択された app-server スレッド/ターンパラメーターに加えて、Telegram ダイレクト、Discord グループ、Heartbeat ターン向けに
再構成されたモデルバウンドのプロンプトレイヤースタックをレンダリングします。そのスタックには、Codex の
モデルカタログ/キャッシュ形状から生成された固定 Codex gpt-5.5 モデルプロンプトフィクスチャ、
Codex ハッピーパス権限の開発者テキスト、OpenClaw 開発者指示、OpenClaw が提供する場合のターンスコープの
コラボレーションモード指示、ユーザーターン入力、動的ツール仕様への参照が含まれます。
固定 Codex モデルプロンプトフィクスチャは
pnpm prompt:snapshots:sync-codex-model で更新します。デフォルトでは、スクリプトは
Codex のランタイムキャッシュを $CODEX_HOME/models_cache.json、次に
~/.codex/models_cache.json で探し、その後で初めて、メンテナーの Codex
チェックアウト慣例である ~/code/codex/codex-rs/models-manager/models.json にフォールバックします。
これらのソースが存在しない場合、コマンドはコミット済みフィクスチャを変更せずに終了します。
特定の models_cache.json または models.json ファイルから更新するには、--catalog <path> を渡します。
これらのスナップショットは、まだ OpenAI リクエストのバイト単位の生キャプチャではありません。Codex は、
OpenClaw がスレッドおよびターンパラメーターを送信した後、Codex ランタイム内で、AGENTS.md、環境コンテキスト、
メモリ、app/plugin 指示、組み込みの Default コラボレーションモード指示など、ランタイム所有のワークスペースコンテキストを追加できます。
pnpm prompt:snapshots:gen で再生成し、pnpm prompt:snapshots:check でドリフトを検証します。
CI は追加の境界シャードでドリフトチェックを実行するため、プロンプト変更とスナップショット更新は同じ PR に紐づいたままになります。
ワークスペースブートストラップ注入
ブートストラップファイルはトリムされ、プロジェクトコンテキストの下に追加されます。これにより、明示的な読み取りなしで、 モデルが ID とプロフィールコンテキストを把握できます。AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(完全に新しいワークスペースの場合のみ)- 存在する場合は
MEMORY.md
HEARTBEAT.md は、デフォルトエージェントで
Heartbeats が無効な場合、または
agents.defaults.heartbeat.includeSystemPromptSection が false の場合、通常実行では省略されます。注入されるファイル、
特に MEMORY.md は簡潔に保ってください。MEMORY.md は、キュレーションされた長期要約であり続けることを意図しています。
詳細な日次メモは memory/*.md に置き、必要に応じて memory_search と memory_get で取得できるようにします。
大きすぎる MEMORY.md ファイルはプロンプト使用量を増やし、下記のブートストラップファイル上限により
部分的に注入される場合があります。
セッションがネイティブ Codex ハーネスで実行される場合、Codex は独自のプロジェクトドキュメント探索を通じて
AGENTS.md を読み込みます。OpenClaw は残りのブートストラップファイルを引き続き解決し、
Codex 設定指示として転送するため、AGENTS.md を重複させることなく、SOUL.md、
TOOLS.md、IDENTITY.md、USER.md、HEARTBEAT.md、BOOTSTRAP.md、および
MEMORY.md は同じワークスペースコンテキストの役割を維持します。
memory/*.md の日次ファイルは、通常のブートストラップのプロジェクトコンテキストの一部ではありません。通常のターンでは、memory_search と memory_get ツールを介してオンデマンドでアクセスされるため、モデルが明示的に読み取らない限り、コンテキストウィンドウを消費しません。裸の /new と /reset ターンは例外です。ランタイムは、その最初のターン向けに、最近の日次メモリを一回限りの起動コンテキストブロックとして前置できます。agents.defaults.bootstrapMaxChars(デフォルト: 12000)で制御されます。ファイル全体にまたがる注入済みブートストラップ
コンテンツの合計は agents.defaults.bootstrapTotalMaxChars
(デフォルト: 60000)で上限設定されます。欠落ファイルは短い欠落ファイルマーカーを注入します。切り詰めが
発生した場合、OpenClaw は簡潔なシステムプロンプト警告通知を注入できます。これは
agents.defaults.bootstrapPromptTruncationWarning(off、once、always、
デフォルト: once)で制御します。詳細な raw/注入済みカウントは、
/context、/status、doctor、ログなどの診断に残ります。
メモリファイルの場合、切り詰めはデータ損失ではありません。ファイルはディスク上でそのまま残りますが、
モデルはメモリを直接読み取るか検索するまで、短縮された注入コピーだけを見ます。MEMORY.md が繰り返し切り詰められる場合は、
より短く永続的な要約に蒸留し、詳細な履歴を memory/*.md に移すか、
意図的にブートストラップ上限を引き上げてください。
サブエージェントセッションは AGENTS.md と TOOLS.md のみを注入します(他のブートストラップファイルは、
サブエージェントコンテキストを小さく保つために除外されます)。
内部フックは agent:bootstrap を介してこのステップをインターセプトし、注入されるブートストラップファイルを変更または置換できます
(たとえば SOUL.md を別のペルソナに差し替えるなど)。
エージェントの印象をもっと個性的にしたい場合は、
SOUL.md パーソナリティガイドから始めてください。
注入された各ファイルがどの程度寄与しているか(raw と injected、切り詰め、さらにツールスキーマのオーバーヘッド)を調べるには、/context list または /context detail を使います。コンテキストを参照してください。
時刻の扱い
ユーザーのタイムゾーンが分かっている場合、システムプロンプトには専用の 現在の日付と時刻 セクションが含まれます。プロンプトキャッシュを安定させるため、現在は タイムゾーン のみを含みます(動的な時計や時刻形式は含みません)。 エージェントが現在時刻を必要とする場合はsession_status を使います。ステータスカードにはタイムスタンプ行が含まれます。同じツールで、必要に応じてセッションごとのモデルオーバーライドを設定できます(model=default で解除)。
設定項目:
agents.defaults.userTimezoneagents.defaults.timeFormat(auto|12|24)
Skills
対象となるスキルが存在する場合、OpenClaw は各スキルの ファイルパス を含むコンパクトな 利用可能なスキル一覧(formatSkillsForPrompt)を注入します。プロンプトは、一覧に記載された場所(ワークスペース、管理対象、またはバンドル済み)にある SKILL.md を読み込むために read を使うようモデルに指示します。対象となるスキルがない場合、Skills セクションは省略されます。
対象条件には、スキルメタデータのゲート、ランタイム環境/設定のチェック、そして agents.defaults.skills または agents.list[].skills が設定されている場合の有効なエージェントスキル許可リストが含まれます。
Plugin にバンドルされたスキルは、その所有 Plugin が有効な場合にのみ対象となります。これにより、ツール Plugin は、そのガイドすべてを各ツール説明に直接埋め込まなくても、より深い運用ガイドを公開できます。
- グローバルデフォルト:
skills.limits.maxSkillsPromptChars - エージェントごとのオーバーライド:
agents.list[].skillsLimits.maxSkillsPromptChars
agents.defaults.contextLimits.*agents.list[].contextLimits.*
memory_get、ライブツール結果、Compaction 後の AGENTS.md 更新などのランタイム読み取り/注入サイズとは別に、スキルのサイズを管理できます。
ドキュメント
システムプロンプトには ドキュメント セクションが含まれます。ローカルドキュメントが利用可能な場合は、ローカルの OpenClaw ドキュメントディレクトリ(Git チェックアウト内のdocs/、またはバンドルされた npm パッケージドキュメント)を指します。ローカルドキュメントが利用できない場合は、https://docs.openclaw.ai にフォールバックします。
同じセクションには OpenClaw のソース場所も含まれます。Git チェックアウトでは、エージェントがコードを直接調査できるようローカルのソースルートが公開されます。パッケージインストールでは GitHub のソース URL が含まれ、ドキュメントが不完全または古い場合はそこでソースを確認するようエージェントに伝えます。プロンプトでは、公開ドキュメントミラー、コミュニティ Discord、スキル探索用の ClawHub(https://clawhub.ai)にも言及します。OpenClaw の動作、コマンド、設定、アーキテクチャについては、まずドキュメントを参照し、可能な場合は openclaw status を自分で実行するようモデルに伝えます(アクセス権がない場合のみユーザーに尋ねます)。特に設定については、正確なフィールド単位のドキュメントと制約を得るために gateway ツールアクション config.schema.lookup を参照し、その後、より広範なガイダンスとして docs/gateway/configuration.md と docs/gateway/configuration-reference.md を参照するようエージェントに指示します。