システムプロンプト

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

プロンプトはOpenClawが組み立て、各エージェント実行に注入します。

構成

プロンプトは意図的にコンパクトで、固定セクションで構成されています:

  • Tooling:現在のツール一覧と簡単な説明。
  • Safety:パワーシーキング行動や監視の回避を防ぐ短いガードレールリマインダー。
  • Skills(利用可能な場合):オンデマンドでスキル指示を読み込む方法をモデルに伝える。
  • OpenClaw Self-Updateconfig.applyupdate.runの実行方法。
  • Workspace:作業ディレクトリ(agents.defaults.workspace)。
  • Documentation:OpenClawドキュメントのローカルパス(リポジトリまたはnpmパッケージ)と参照すべきタイミング。
  • Workspace Files (injected):ブートストラップファイルが以下に含まれることを示す。
  • Sandbox(有効時):サンドボックス化されたランタイム、サンドボックスパス、昇格exec利用可否を示す。
  • Current Date & Time:ユーザーローカルの時刻、タイムゾーン、時刻フォーマット。
  • Reply Tags:対応プロバイダ向けのオプション返信タグ構文。
  • Heartbeats:ハートビートプロンプトとack動作。
  • Runtime:ホスト、OS、node、モデル、リポジトリルート(検出時)、thinkingレベル(1行)。
  • Reasoning:現在の可視性レベルと/reasoningトグルのヒント。

システムプロンプト内のセーフティガードレールは助言的なものです。モデルの動作をガイドしますが、ポリシーを強制するものではありません。ハードな適用にはツールポリシー、exec承認、サンドボックス、チャネル許可リストを使用してください。これらは設計上、運用者が無効化できます。

プロンプトモード

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

  • full(デフォルト):上記のすべてのセクションを含む。
  • minimal:サブエージェント用。SkillsMemory RecallOpenClaw Self-UpdateModel AliasesUser IdentityReply TagsMessagingSilent RepliesHeartbeatsを省略。Tooling、Safety、Workspace、Sandbox、Current Date & Time(判明時)、Runtime、注入コンテキストは引き続き利用可能。
  • none:ベースのアイデンティティ行のみを返す。

promptMode=minimalの場合、追加の注入プロンプトはGroup Chat ContextではなくSubagent Contextとラベル付けされます。

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

ブートストラップファイルはトリミングされ、Project Contextとして追記されます。モデルが明示的な読み取りなしでアイデンティティやプロファイルコンテキストを認識できるようにするためです:

  • 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(デフォルト:20000)で制御されます。ファイル全体の注入ブートストラップコンテンツの合計はagents.defaults.bootstrapTotalMaxChars(デフォルト:150000)で上限が設定されます。存在しないファイルは短いミッシングファイルマーカーを注入します。トランケーションが発生した場合、OpenClawはProject Contextに警告ブロックを注入できます。agents.defaults.bootstrapPromptTruncationWarningoffoncealways、デフォルト:once)で制御します。

サブエージェントセッションではAGENTS.mdTOOLS.mdのみが注入されます(サブエージェントコンテキストを小さく保つため、他のブートストラップファイルはフィルタされます)。

内部フックはagent:bootstrapでこのステップをインターセプトし、注入されるブートストラップファイルを変更・置換できます(例:SOUL.mdを別のペルソナに差し替える)。

各注入ファイルの寄与度(生vs注入、トランケーション、ツールスキーマのオーバーヘッド)を確認するには、/context listまたは/context detailを使用してください。Contextを参照。

時刻の扱い

システムプロンプトには、ユーザーのタイムゾーンが判明している場合に専用のCurrent Date & Timeセクションが含まれます。プロンプトキャッシュの安定性を保つため、現在はタイムゾーンのみが含まれます(動的な時計や時刻フォーマットは含まれません)。

エージェントが現在時刻を必要とする場合はsession_statusを使用してください。ステータスカードにはタイムスタンプ行が含まれます。

設定:

  • agents.defaults.userTimezone
  • agents.defaults.timeFormatauto | 12 | 24

動作の詳細はDate & Timeを参照。

スキル

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

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

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

ドキュメント

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