コンテキスト

「コンテキスト」とは、OpenClawが1回のランでモデルに送信するすべてのものです。モデルのコンテキストウィンドウ(トークン制限)によって上限が決まります。

初心者向けのメンタルモデル:

  • システムプロンプト(OpenClawが構築): ルール、ツール、スキルリスト、時刻/ランタイム情報、注入されたワークスペースファイル。
  • 会話履歴: このセッションでのあなたのメッセージとアシスタントのメッセージ。
  • ツール呼び出し/結果+添付ファイル: コマンド出力、ファイル読み取り、画像/音声など。

コンテキストは「メモリ」とは異なります。メモリはディスクに保存して後から再読み込みできますが、コンテキストはモデルの現在のウィンドウ内にあるものです。

クイックスタート(コンテキストの確認)

  • /status → 「ウィンドウはどれくらい埋まっているか」の概要+セッション設定。
  • /context list → 注入されたもの+おおよそのサイズ(ファイルごと+合計)。
  • /context detail → より詳細な内訳: ファイルごと、ツールスキーマサイズごと、スキルエントリサイズごと、システムプロンプトサイズ。
  • /usage tokens → 通常の応答にリプライごとの使用量フッターを追加。
  • /compact → 古い履歴をコンパクトエントリに要約してウィンドウスペースを確保。

関連: スラッシュコマンドトークン使用量とコストコンパクション

出力例

値はモデル、プロバイダー、ツールポリシー、ワークスペースの内容によって変わります。

/context list

🧠 Context breakdown
Workspace: <workspaceDir>
Bootstrap max/file: 20,000 chars
Sandbox: mode=non-main sandboxed=false
System prompt (run): 38,412 chars (~9,603 tok) (Project Context 23,901 chars (~5,976 tok))

Injected workspace files:
- AGENTS.md: OK | raw 1,742 chars (~436 tok) | injected 1,742 chars (~436 tok)
- SOUL.md: OK | raw 912 chars (~228 tok) | injected 912 chars (~228 tok)
- TOOLS.md: TRUNCATED | raw 54,210 chars (~13,553 tok) | injected 20,962 chars (~5,241 tok)
- IDENTITY.md: OK | raw 211 chars (~53 tok) | injected 211 chars (~53 tok)
- USER.md: OK | raw 388 chars (~97 tok) | injected 388 chars (~97 tok)
- HEARTBEAT.md: MISSING | raw 0 | injected 0
- BOOTSTRAP.md: OK | raw 0 chars (~0 tok) | injected 0 chars (~0 tok)

Skills list (system prompt text): 2,184 chars (~546 tok) (12 skills)
Tools: read, edit, write, exec, process, browser, message, sessions_send, …
Tool list (system prompt text): 1,032 chars (~258 tok)
Tool schemas (JSON): 31,988 chars (~7,997 tok) (counts toward context; not shown as text)
Tools: (same as above)

Session tokens (cached): 14,250 total / ctx=32,000

/context detail

🧠 Context breakdown (detailed)

Top skills (prompt entry size):
- frontend-design: 412 chars (~103 tok)
- oracle: 401 chars (~101 tok)
… (+10 more skills)

Top tools (schema size):
- browser: 9,812 chars (~2,453 tok)
- exec: 6,240 chars (~1,560 tok)
… (+N more tools)

コンテキストウィンドウにカウントされるもの

モデルが受け取るすべてがカウント対象です:

  • システムプロンプト(全セクション)。
  • 会話履歴。
  • ツール呼び出し+ツール結果。
  • 添付ファイル/トランスクリプト(画像/音声/ファイル)。
  • コンパクションサマリーとプルーニングのアーティファクト。
  • プロバイダーの「ラッパー」や隠しヘッダー(見えないがカウントされる)。

OpenClawのシステムプロンプト構築方法

システムプロンプトはOpenClawが管理しており、ランごとに再構築されます。含まれるもの:

  • ツールリスト+短い説明。
  • スキルリスト(メタデータのみ、詳細は後述)。
  • ワークスペースの場所。
  • 時刻(UTC+設定されている場合はユーザー時刻に変換)。
  • ランタイムメタデータ(ホスト/OS/モデル/thinking)。
  • Project Context配下に注入されたワークスペースブートストラップファイル。

完全な内訳: システムプロンプト

注入されるワークスペースファイル(Project Context)

デフォルトで、OpenClawは以下の固定セットのワークスペースファイルを(存在する場合)注入します:

  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md(初回実行時のみ)

大きなファイルは agents.defaults.bootstrapMaxChars(デフォルト 20000 文字)でファイルごとに切り詰められます。OpenClawはファイル全体の合計注入上限も agents.defaults.bootstrapTotalMaxChars(デフォルト 150000 文字)で適用します。/context では生サイズ vs 注入サイズと切り詰めが発生したかどうかが表示されます。

切り詰めが発生した場合、ランタイムはProject Context配下にプロンプト内警告ブロックを注入できます。agents.defaults.bootstrapPromptTruncationWarningoffoncealways、デフォルト once)で設定します。

スキル: 注入されるもの vs オンデマンド読み込み

システムプロンプトにはコンパクトなスキルリスト(名前+説明+場所)が含まれます。このリストには実際のオーバーヘッドがあります。

スキルの指示はデフォルトでは含まれません。モデルは必要な場合にのみスキルのSKILL.mdreadすることが期待されています。

ツール: 2つのコスト

ツールはコンテキストに2つの影響を与えます:

  1. システムプロンプト内のツールリストテキスト(「Tooling」として表示されるもの)。
  2. ツールスキーマ(JSON)。ツール呼び出しができるようにモデルに送信されます。プレーンテキストとしては表示されませんが、コンテキストにカウントされます。

/context detail では最大のツールスキーマが分解表示されるため、何が支配的かを確認できます。

コマンド、ディレクティブ、「インラインショートカット」

スラッシュコマンドはGatewayで処理されます。いくつかの異なる動作があります:

  • スタンドアロンコマンド: メッセージが /... のみの場合、コマンドとして実行されます。
  • ディレクティブ: /think/verbose/reasoning/elevated/model/queue はモデルがメッセージを見る前に除去されます。
    • ディレクティブのみのメッセージはセッション設定を永続化します。
    • 通常メッセージ内のインラインディレクティブはメッセージ単位のヒントとして機能します。
  • インラインショートカット(許可リストの送信者のみ): 通常メッセージ内の特定の /... トークンが即座に実行され(例: “hey /status”)、残りのテキストからは除去されてモデルに渡されます。

詳細: スラッシュコマンド

セッション、コンパクション、プルーニング(何が永続化されるか)

メッセージ間で何が永続化されるかはメカニズムによって異なります:

  • 通常の履歴はコンパクション/プルーニングポリシーによって処理されるまでセッショントランスクリプトに永続化されます。
  • コンパクションはサマリーをトランスクリプトに永続化し、最近のメッセージはそのまま保持します。
  • プルーニングはランの_インメモリ_プロンプトから古いツール結果を除去しますが、トランスクリプトは書き換えません。

ドキュメント: セッションコンパクションセッションプルーニング

デフォルトでは、OpenClawは組み込みの legacy コンテキストエンジンを使用してアセンブリとコンパクションを行います。kind: "context-engine" を提供するプラグインをインストールし、plugins.slots.contextEngine で選択すると、OpenClawはコンテキストアセンブリ、/compact、関連するサブエージェントコンテキストのライフサイクルフックをそのエンジンに委任します。

/context が実際にレポートするもの

/context は利用可能な場合、最新のランで構築されたシステムプロンプトレポートを優先します:

  • System prompt (run) = 最後の組み込み(ツール対応)ランからキャプチャされ、セッションストアに永続化されたもの。
  • System prompt (estimate) = ランレポートが存在しない場合(またはレポートを生成しないCLIバックエンド経由で実行した場合)にオンザフライで計算されたもの。

いずれの場合も、サイズと主な寄与要因がレポートされます。完全なシステムプロンプトやツールスキーマはダンプされません