---
read_when:
    - システムプロンプトのテキスト、ツール一覧、または時刻/Heartbeat セクションの編集
    - ワークスペースのブートストラップまたは Skills インジェクションの動作を変更する
summary: OpenClawのシステムプロンプトに含まれる内容とその組み立て方法
title: システムプロンプト
x-i18n:
    generated_at: "2026-05-10T19:32:55Z"
    model: gpt-5.5
    provider: openai
    source_hash: 7aa3db4f53ffe5c11fd85159044344b56cd11c3bdb1a5a5de7638b21fb813135
    source_path: concepts/system-prompt.md
    workflow: 16
---

OpenClaw は、エージェント実行ごとにカスタムシステムプロンプトを構築します。このプロンプトは **OpenClaw 所有**であり、pi-coding-agent のデフォルトプロンプトは使用しません。

プロンプトは OpenClaw によって組み立てられ、各エージェント実行に注入されます。

プロンプトの組み立てには 3 つのレイヤーがあります。

- `buildAgentSystemPrompt` は明示的な入力からプロンプトをレンダリングします。これは
  純粋なレンダラーのままであるべきで、グローバル設定を直接読み取るべきではありません。
- `resolveAgentSystemPromptConfig` は、特定のエージェント向けに、所有者表示、TTS ヒント、モデルエイリアス、メモリ引用モード、サブエージェント委任モードなどの
  設定に基づくプロンプト調整項目を解決します。
- ランタイムアダプター（埋め込み、CLI、コマンド/エクスポートプレビュー、Compaction）は、ツール、サンドボックス状態、チャネル機能、コンテキストファイル、
  プロバイダーのプロンプト寄与などのライブ情報を集め、その後、設定済みのプロンプトファサードを呼び出します。

これにより、すべてのランタイム固有の詳細を 1 つの巨大なビルダーにすることなく、
エクスポート/デバッグ用のプロンプト表示面をライブ実行と揃えられます。

プロバイダー plugin は、OpenClaw 所有の完全なプロンプトを置き換えずに、
キャッシュを意識したプロンプトガイダンスを寄与できます。プロバイダーランタイムは次を行えます。

- 名前付きコアセクションの小さな集合（`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 トグルヒント。

OpenClaw は、**プロジェクトコンテキスト**を含む大きな安定コンテンツを、
内部プロンプトキャッシュ境界の上に保持します。Control UI 埋め込みガイダンス、**メッセージング**、**音声**、**グループチャットコンテキスト**、
**リアクション**、**Heartbeats**、**ランタイム**などの揮発性のチャネル/セッションセクションは、その境界の下に追加されます。
これにより、プレフィックスキャッシュを持つローカルバックエンドは、チャネルターンをまたいで安定したワークスペースプレフィックスを再利用できます。
同様に、受け入れられるスキーマがすでにそのランタイム詳細を持っている場合、ツール説明には現在のチャネル名を埋め込むべきではありません。

ツールセクションには、長時間実行作業向けのランタイムガイダンスも含まれます。

- 将来のフォローアップ（`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.md`
- `SOUL.md`
- `TOOLS.md`
- `IDENTITY.md`
- `USER.md`
- `HEARTBEAT.md`
- `BOOTSTRAP.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` は同じワークスペースコンテキストの役割を維持します。

<Note>
`memory/*.md` の日次ファイルは、通常のブートストラップのプロジェクトコンテキストの一部では**ありません**。通常のターンでは、`memory_search` と `memory_get` ツールを介してオンデマンドでアクセスされるため、モデルが明示的に読み取らない限り、コンテキストウィンドウを消費しません。裸の `/new` と `/reset` ターンは例外です。ランタイムは、その最初のターン向けに、最近の日次メモリを一回限りの起動コンテキストブロックとして前置できます。
</Note>

大きなファイルはマーカー付きで切り詰められます。ファイルごとの最大サイズは
`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 パーソナリティガイド](/ja-JP/concepts/soul)から始めてください。

注入された各ファイルがどの程度寄与しているか（raw と injected、切り詰め、さらにツールスキーマのオーバーヘッド）を調べるには、`/context list` または `/context detail` を使います。[コンテキスト](/ja-JP/concepts/context)を参照してください。

## 時刻の扱い

ユーザーのタイムゾーンが分かっている場合、システムプロンプトには専用の **現在の日付と時刻** セクションが含まれます。プロンプトキャッシュを安定させるため、現在は **タイムゾーン** のみを含みます（動的な時計や時刻形式は含みません）。

エージェントが現在時刻を必要とする場合は `session_status` を使います。ステータスカードにはタイムスタンプ行が含まれます。同じツールで、必要に応じてセッションごとのモデルオーバーライドを設定できます（`model=default` で解除）。

設定項目:

- `agents.defaults.userTimezone`
- `agents.defaults.timeFormat` (`auto` | `12` | `24`)

完全な動作の詳細は [日付と時刻](/ja-JP/date-time) を参照してください。

## Skills

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

対象条件には、スキルメタデータのゲート、ランタイム環境/設定のチェック、そして `agents.defaults.skills` または `agents.list[].skills` が設定されている場合の有効なエージェントスキル許可リストが含まれます。

Plugin にバンドルされたスキルは、その所有 Plugin が有効な場合にのみ対象となります。これにより、ツール Plugin は、そのガイドすべてを各ツール説明に直接埋め込まなくても、より深い運用ガイドを公開できます。

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

これにより、ベースプロンプトを小さく保ちながら、対象を絞ったスキル利用を可能にします。

スキル一覧の予算はスキルサブシステムが所有します。

- グローバルデフォルト: `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](https://docs.openclaw.ai) にフォールバックします。

同じセクションには OpenClaw のソース場所も含まれます。Git チェックアウトでは、エージェントがコードを直接調査できるようローカルのソースルートが公開されます。パッケージインストールでは GitHub のソース URL が含まれ、ドキュメントが不完全または古い場合はそこでソースを確認するようエージェントに伝えます。プロンプトでは、公開ドキュメントミラー、コミュニティ Discord、スキル探索用の ClawHub（[https://clawhub.ai](https://clawhub.ai)）にも言及します。OpenClaw の動作、コマンド、設定、アーキテクチャについては、まずドキュメントを参照し、可能な場合は `openclaw status` を自分で実行するようモデルに伝えます（アクセス権がない場合のみユーザーに尋ねます）。特に設定については、正確なフィールド単位のドキュメントと制約を得るために `gateway` ツールアクション `config.schema.lookup` を参照し、その後、より広範なガイダンスとして `docs/gateway/configuration.md` と `docs/gateway/configuration-reference.md` を参照するようエージェントに指示します。

## 関連

- [エージェントランタイム](/ja-JP/concepts/agent)
- [エージェントワークスペース](/ja-JP/concepts/agent-workspace)
- [コンテキストエンジン](/ja-JP/concepts/context-engine)
