コンテキスト
「コンテキスト」とは、OpenClawが実行のためにモデルへ送信するすべてです。これは、モデルのコンテキストウィンドウ(トークン上限)によって制限されます。 初心者向けのイメージ:- システムプロンプト(OpenClawが構築): ルール、ツール、Skillsの一覧、時刻/ランタイム、注入されたワークスペースファイル。
- 会話履歴: このセッションにおけるあなたのメッセージとアシスタントのメッセージ。
- ツール呼び出し/結果 + 添付ファイル: コマンド出力、ファイル読み取り、画像/音声など。
クイックスタート(コンテキストを確認する)
/status→ 「ウィンドウがどれくらい埋まっているか?」のクイック表示 + セッション設定。/context list→ 何が注入されているか + おおよそのサイズ(ファイルごと + 合計)。/context detail→ より詳細な内訳: ファイルごと、ツールスキーマごとのサイズ、skillエントリごとのサイズ、システムプロンプトのサイズ。/usage tokens→ 通常の返信に、返信ごとの使用量フッターを追加。/compact→ 古い履歴を要約してコンパクトなエントリにし、ウィンドウの空きを増やす。
出力例
値は、モデル、プロバイダー、ツールポリシー、ワークスペース内の内容によって変わります。/context list
/context detail
コンテキストウィンドウに含まれるもの
モデルが受け取るものはすべて含まれます。たとえば:- システムプロンプト(全セクション)。
- 会話履歴。
- ツール呼び出し + ツール結果。
- 添付ファイル/文字起こし(画像/音声/ファイル)。
- Compactionの要約と刈り込みアーティファクト。
- プロバイダーの「ラッパー」や隠しヘッダー(見えなくてもカウントされる)。
OpenClawがシステムプロンプトを構築する方法
システムプロンプトはOpenClawが管理しており、実行ごとに再構築されます。含まれる内容は次のとおりです:- ツール一覧 + 短い説明。
- Skills一覧(メタデータのみ。詳細は後述)。
- ワークスペースの場所。
- 時刻(UTC + 設定されている場合は変換後のユーザー時刻)。
- ランタイムメタデータ(ホスト/OS/モデル/thinking)。
- Project Context配下に注入されたワークスペースのブートストラップファイル。
注入されるワークスペースファイル(Project Context)
デフォルトでは、OpenClawは固定のワークスペースファイル群を注入します(存在する場合):AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(初回実行時のみ)
agents.defaults.bootstrapMaxChars(デフォルト 12000 文字)を使ってファイルごとに切り詰められます。OpenClawはさらに、ファイル全体にまたがるブートストラップ注入の合計上限 agents.defaults.bootstrapTotalMaxChars(デフォルト 60000 文字)も適用します。/context では、raw と injected のサイズ、および切り詰めが発生したかどうかが表示されます。
切り詰めが発生すると、ランタイムはProject Context配下にプロンプト内警告ブロックを注入できます。これは agents.defaults.bootstrapPromptTruncationWarning(off、once、always。デフォルトは once)で設定します。
Skills: 注入されるものと必要時ロードされるもの
システムプロンプトには、コンパクトなSkills一覧(名前 + 説明 + 場所)が含まれます。この一覧には実際のオーバーヘッドがあります。 skillの指示内容自体は、デフォルトでは含まれません。モデルは、必要なときにだけそのskillのSKILL.md を read する想定です。
ツール: コストは2種類ある
ツールは、2つの形でコンテキストに影響します:- システムプロンプト内のツール一覧テキスト(「Tooling」として見えるもの)。
- ツールスキーマ(JSON)。モデルがツールを呼び出せるように送信されます。プレーンテキストとしては見えなくても、コンテキストに含まれます。
/context detail では、どのツールスキーマが最も大きいかを分解して表示できるため、何が支配的かを確認できます。
コマンド、ディレクティブ、「インラインショートカット」
スラッシュコマンドはGatewayによって処理されます。動作にはいくつかの種類があります:- スタンドアロンコマンド:
/...だけのメッセージは、コマンドとして実行されます。 - ディレクティブ:
/think、/verbose、/trace、/reasoning、/elevated、/model、/queueは、モデルがメッセージを見る前に取り除かれます。- ディレクティブだけのメッセージは、セッション設定を保持します。
- 通常メッセージ内のインラインディレクティブは、メッセージ単位のヒントとして動作します。
- インラインショートカット(許可リストに載った送信者のみ): 通常メッセージ内の特定の
/...トークンは即座に実行できます(例: 「hey /status」)。その後、残りのテキストがモデルに渡される前に取り除かれます。
セッション、Compaction、刈り込み(何が保持されるか)
メッセージをまたいで何が保持されるかは、仕組みによって異なります:- 通常の履歴 は、ポリシーにより compact/prune されるまでセッショントランスクリプトに保持されます。
- Compaction は、要約をトランスクリプト内に保持し、最近のメッセージはそのまま維持します。
- 刈り込み は、実行時の_メモリ内_プロンプトから古いツール結果を削除しますが、トランスクリプト自体は書き換えません。
legacy コンテキストエンジンを使います。kind: "context-engine" を提供する plugin をインストールし、plugins.slots.contextEngine でそれを選ぶと、OpenClawは代わりにコンテキストの組み立て、/compact、および関連する subagent コンテキストライフサイクルフックをそのエンジンに委譲します。ownsCompaction: false であっても legacy エンジンへの自動フォールバックは行われません。アクティブなエンジンは依然として compact() を正しく実装している必要があります。完全なプラガブルインターフェース、ライフサイクルフック、設定については Context Engine を参照してください。
/context が実際に報告するもの
/context は、可能であれば最新の実行時に構築されたシステムプロンプトレポートを優先します:
System prompt (run)= 直近の埋め込み済み(ツール利用可能)実行から取得され、セッションストアに保存されたもの。System prompt (estimate)= 実行レポートが存在しない場合(またはそのレポートを生成しないCLIバックエンド経由で実行している場合)に、その場で計算されたもの。
関連
- Context Engine — plugin によるカスタムコンテキスト注入
- Compaction — 長い会話の要約
- システムプロンプト — システムプロンプトの構築方法
- Agent Loop — エージェント実行サイクル全体