Skip to main content
OpenClaw は、エージェントを実行するたびにカスタムのシステムプロンプトを構築します。このプロンプトは OpenClaw が管理する独自のもの であり、pi-coding-agent のデフォルトプロンプトは使用されません。

プロンプトの構造

プロンプトは意図的にコンパクトに保たれており、以下の固定セクションで構成されています:
  • Tooling: 利用可能なツールの一覧と短い説明。
  • Safety: エージェントが独断で権限を拡大したり、監視を回避したりしないようにするための、短いガードレール(指針)。
  • Skills (利用可能な場合): 必要に応じてスキルの指示内容をロードする方法。
  • OpenClaw Self-Update: config.applyupdate.run を実行する方法。
  • Workspace: 作業ディレクトリ (agents.defaults.workspace)。
  • Documentation: ローカルの OpenClaw ドキュメントへのパスと、それらを参照すべきタイミング。
  • Workspace Files (injected): 下記のブートストラップファイルが含まれていることを示します。
  • Sandbox (有効な場合): サンドボックス化された実行環境の情報、パス、および権限昇格が可能かどうか。
  • Current Date & Time: ユーザーの現地時間、タイムゾーン、および時刻形式。
  • Reply Tags: 対応チャネルにおけるオプションの返信タグ構文。
  • Heartbeats: ハートビート(定期実行)時のプロンプトと確認(ack)の挙動。
  • Runtime: ホスト名、OS、ノード、モデル、リポジトリルート(検出時)、および思考レベル(1 行)。
  • Reasoning: 現在の推論プロセスの可視化レベルと /reasoning コマンドのヒント。
システムプロンプト内の安全ガードレールはあくまで「助言」です。モデルの挙動をガイドしますが、ポリシーを強制するものではありません。強制力を持たせるには、ツールポリシー、実行承認(exec approvals)、サンドボックス、およびチャネルの許可リストを使用してください。これらは設計上、管理者によって無効化することが可能です。

プロンプトモード

OpenClaw は、サブエージェント向けにさらに小さなシステムプロンプトを生成できます。実行時に promptMode が設定されます(ユーザー設定項目ではありません):
  • full (デフォルト): 上記のすべてのセクションを含みます。
  • minimal: サブエージェントに使用されます。Skills, Memory Recall, OpenClaw Self-Update, Model Aliases, User Identity, Reply Tags, Messaging, Silent Replies, Heartbeats が省略されます。Tooling, Safety, Workspace, Sandbox, 時刻(判明している場合), Runtime, および注入されたコンテキストは引き続き利用可能です。
  • none: 基本的なアイデンティティ情報のみを返します。
promptMode=minimal の場合、追加で注入されたプロンプトのラベルは Group Chat Context ではなく Subagent Context になります。

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

ブートストラップファイルは適宜切り詰められ、Project Context セクションの下に追加されます。これにより、モデルは明示的な read を行わなくても、アイデンティティやプロフィールの文脈を把握できます:
  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md (新規ワークスペースの場合のみ)
  • MEMORY.md および/または memory.md (ワークスペース内に存在する場合)
これらのファイルは実行のたびに コンテキストウィンドウ内に注入される ため、トークンを消費します。内容は簡潔に保ってください。特に MEMORY.md は時間とともに肥大化しやすく、予期せぬコンテキスト消費や頻繁な圧縮(コンパクション)の原因となります。
注意: memory/*.md の日次ログファイルは、自動的には注入 されません。これらは memory_searchmemory_get ツールを介してオンデマンドでアクセスされるため、モデルが明示的に読み取らない限り、コンテキストウィンドウを消費することはありません。
巨大なファイルはマーカーと共に切り詰められます。ファイルごとの上限は agents.defaults.bootstrapMaxChars(デフォルト 20,000)で制御されます。全ファイルの合計上限は agents.defaults.bootstrapTotalMaxChars(デフォルト 150,000)です。ファイルが欠落している場合は「missing」マーカーが注入されます。切り詰めが発生した際に警告を注入するかどうかは agents.defaults.bootstrapPromptTruncationWarning (off, once, always。デフォルトは once) で設定可能です。 サブエージェントのセッションでは、コンテキストを小さく保つために AGENTS.mdTOOLS.md のみが注入され、他のファイルは除外されます。 内部フック agent:bootstrap を使用して、注入される内容を変更したり、別のペルソナ用の SOUL.md に差し替えたりすることが可能です。 注入された各ファイルがどの程度コンテキストを消費しているか(生のサイズ vs 注入サイズ、切り詰め、ツールスキーマによるオーバーヘッドなど)を確認するには、/context list または /context detail を使用してください。詳細は コンテキスト を参照してください。

時刻の扱い

システムプロンプトには、ユーザーのタイムゾーンが判明している場合に Current Date & Time セクションが含まれます。プロンプトキャッシュを安定させるため、現在は タイムゾーン名 のみが含まれています(動的な時刻や形式は含まれません)。 エージェントが現在時刻を必要とする場合は、session_status ツールを使用します。このツールのステータスカードには現在のタイムスタンプ行が含まれています。 時刻関連の設定:
  • agents.defaults.userTimezone
  • agents.defaults.timeFormat (auto | 12 | 24)
詳細は 日付と時刻 を参照してください。

スキル (Skills)

実行条件を満たすスキルがある場合、OpenClaw は各スキルの ファイルパス を含むコンパクトな 利用可能なスキル一覧 (formatSkillsForPrompt) を注入します。プロンプト内では、必要に応じてそのパスにある SKILL.mdread ツールで読み込むようモデルに指示されます。利用可能なスキルがない場合、このセクションは省略されます。
<available_skills>
  <skill>
    <name>...</name>
    <description>...</description>
    <location>...</location>
  </skill>
</available_skills>
これにより、ベースのプロンプトを小さく保ちつつ、必要になったタイミングで特定のスキルを活用させることができます。

ドキュメント (Documentation)

利用可能な場合、システムプロンプトには Documentation セクションが含まれます。これはローカルの OpenClaw ドキュメントディレクトリ(リポジトリ内の docs/ または npm パッケージに同梱されているもの)を指し、同時に公開ミラー、ソースリポジトリ、コミュニティ Discord、およびスキルの検索場所である ClawHub (https://clawhub.com) についても言及します。プロンプト内では、OpenClaw の動作、コマンド、構成、またはアーキテクチャについて不明な点がある場合は、まずこれらのローカルドキュメントを参照するようモデルに指示されます。また、可能な限り openclaw status を自分自身で実行して確認し、どうしてもアクセスできない場合にのみユーザーに尋ねるよう指示されています。