Fundamentals
コンテキスト
「コンテキスト」とは、1 回の実行で OpenClaw がモデルに送信するすべてのものです。モデルの コンテキストウィンドウ(トークン上限)によって制限されます。
初心者向けの考え方:
- システムプロンプト(OpenClaw が構築):ルール、ツール、Skills リスト、時刻/ランタイム、挿入されたワークスペースファイル。
- 会話履歴:このセッションでのメッセージ + アシスタントのメッセージ。
- ツール呼び出し/結果 + 添付ファイル:コマンド出力、ファイル読み取り、画像/音声など。
コンテキストは「メモリ」とは_異なります_。メモリはディスクに保存して後から再読み込みできますが、コンテキストはモデルの現在のウィンドウ内にあるものです。
クイックスタート(コンテキストを確認)
/status→ 「ウィンドウがどの程度埋まっているか」をすばやく確認 + セッション設定。/context list→ 挿入されているもの + おおよそのサイズ(ファイルごと + 合計)。/context detail→ より詳細な内訳:ファイルごと、ツールスキーマごとのサイズ、Skills エントリごとのサイズ、システムプロンプトのサイズ、圧縮可能なトランスクリプトメッセージ数。/context map→ 現在のセッションで追跡されているコンテキスト構成要素を示す、WinDirStat 形式のツリーマップ画像。/usage tokens→ 通常の応答に、応答ごとの使用量フッターを追加。/compact→ 古い履歴をコンパクトなエントリに要約し、ウィンドウの空き容量を確保。
関連項目:スラッシュコマンド、トークン使用量とコスト、Compaction。
出力例
値はモデル、プロバイダー、ツールポリシー、ワークスペースの内容によって異なります。
/context list
🧠 コンテキストの内訳ワークスペース:<workspaceDir>ブートストラップの最大文字数/ファイル:12,000 文字サンドボックス:mode=non-main sandboxed=falseシステムプロンプト(実行):38,412 文字(約 9,603 tok)(プロジェクトコンテキスト 23,901 文字(約 5,976 tok)) 挿入されたワークスペースファイル:- AGENTS.md:OK | 元データ 1,742 文字(約 436 tok)| 挿入 1,742 文字(約 436 tok)- SOUL.md:OK | 元データ 912 文字(約 228 tok)| 挿入 912 文字(約 228 tok)- TOOLS.md:切り詰め済み | 元データ 54,210 文字(約 13,553 tok)| 挿入 20,962 文字(約 5,241 tok)- IDENTITY.md:OK | 元データ 211 文字(約 53 tok)| 挿入 211 文字(約 53 tok)- USER.md:OK | 元データ 388 文字(約 97 tok)| 挿入 388 文字(約 97 tok)- HEARTBEAT.md:なし | 元データ 0 | 挿入 0- BOOTSTRAP.md:OK | 元データ 0 文字(約 0 tok)| 挿入 0 文字(約 0 tok) Skills リスト(システムプロンプトのテキスト):2,184 文字(約 546 tok)(12 個の Skills)ツール:read、edit、write、exec、process、browser、message、sessions_send、…ツールリスト(システムプロンプトのテキスト):1,032 文字(約 258 tok)ツールスキーマ(JSON):31,988 文字(約 7,997 tok)(コンテキストに算入。テキストとしては非表示)ツール:(上記と同じ) セッショントークン(キャッシュ済み):合計 14,250 / ctx=32,000/context detail
🧠 コンテキストの内訳(詳細)…上位の Skills(プロンプトエントリのサイズ):- frontend-design:412 文字(約 103 tok)- oracle:401 文字(約 101 tok)…(ほか 10 個の Skills) 上位のツール(スキーマサイズ):- browser:9,812 文字(約 2,453 tok)- exec:6,240 文字(約 1,560 tok)…(ほか N 個のツール)/context map
最新のキャッシュ済み実行レポートとセッショントランスクリプトから生成した画像を送信します。通常のメッセージによってセッション内に実行レポートが生成される前は、/context map は推定図を描画せず、利用不可を示すメッセージを返します。長方形の面積は、追跡対象のプロンプト文字数に比例します:
- 会話トランスクリプト(ユーザーメッセージ、アシスタントの応答、ツール結果、Compaction の要約)に加え、モデルだけに届くターンごとのランタイムコンテキストとフックプロンプトの追加内容
- 挿入されたワークスペースファイル
- 基本システムプロンプトのテキスト
- Skills のプロンプトエントリ
- ツールの JSON スキーマ
セッションの進行に伴って会話グループが増えるため、マップはターンごとに変化します。Compaction 後は、要約タイルに集約されます。
実行レポートがキャッシュされていない場合でも、/context list、/context detail、/context json ではオンデマンドの推定値を確認できます。
コンテキストウィンドウに算入されるもの
モデルが受信するものはすべて算入されます。これには以下が含まれます:
- システムプロンプト(全セクション)。
- 会話履歴。
- ツール呼び出し + ツール結果。
- 添付ファイル/トランスクリプト(画像/音声/ファイル)。
- Compaction の要約とプルーニング生成物。
- プロバイダーの「ラッパー」または非表示ヘッダー(表示されなくても算入)。
OpenClaw がシステムプロンプトを構築する仕組み
システムプロンプトは OpenClaw が管理し、実行ごとに再構築されます。以下が含まれます:
- ツールリスト + 簡潔な説明。
- Skills リスト(メタデータのみ。以下を参照)。
- ワークスペースの場所。
- 時刻(UTC + 設定されている場合は変換後のユーザー時刻)。
- ランタイムメタデータ(ホスト/OS/モデル/思考)。
- プロジェクトコンテキストに挿入されたワークスペースのブートストラップファイル。
完全な内訳:システムプロンプト。
挿入されるワークスペースファイル(プロジェクトコンテキスト)
デフォルトでは、OpenClaw は固定された一連のワークスペースファイルを挿入します(存在する場合):
AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(初回実行時のみ)
大きなファイルは、agents.defaults.bootstrapMaxChars(デフォルトは 20000 文字)を使用してファイルごとに切り詰められます。OpenClaw はさらに、agents.defaults.bootstrapTotalMaxChars(デフォルトは 60000 文字)によって、ファイル全体に対するブートストラップ挿入量の合計上限も適用します。/context では、元データと挿入後のサイズ、および切り詰めが発生したかどうかを確認できます。
切り詰めが発生すると、ランタイムはプロジェクトコンテキスト内にプロンプト内警告ブロックを挿入できます。これは agents.defaults.bootstrapPromptTruncationWarning(off、once、always。デフォルトは always)で設定します。
Skills:挿入とオンデマンド読み込み
システムプロンプトには、コンパクトな Skills リスト(名前 + 説明 + 場所)が含まれます。このリストには実際にオーバーヘッドがあります。
Skills の指示はデフォルトでは含まれません。モデルは、必要な場合にのみ Skills の SKILL.md を read することが想定されています。
ツール:2 種類のコスト
ツールは、次の 2 つの方法でコンテキストに影響します:
- システムプロンプト内の ツールリストのテキスト(「ツール機能」として表示されるもの)。
- ツールスキーマ(JSON)。モデルがツールを呼び出せるように送信されます。プレーンテキストとして表示されなくても、コンテキストに算入されます。
/context detail では、最大のツールスキーマの内訳を確認でき、何が大部分を占めているかを把握できます。
コマンド、ディレクティブ、「インラインショートカット」
スラッシュコマンドは Gateway によって処理されます。動作にはいくつかの種類があります:
- 単独コマンド:
/...だけを含むメッセージは、コマンドとして実行されます。 - ディレクティブ:
/think、/fast、/verbose、/trace、/reasoning、/elevated、/exec、/model、/queueは、モデルがメッセージを受け取る前に取り除かれます。- ディレクティブのみのメッセージは、セッション設定を保持します。
- 通常のメッセージ内のインラインディレクティブは、メッセージごとのヒントとして機能します。
- インラインショートカット(許可リストに登録された送信者のみ):通常のメッセージ内にある特定の
/...トークンは、即座に実行できます(例:「hey /status」)。モデルが残りのテキストを受け取る前に、そのトークンは取り除かれます。
詳細:スラッシュコマンド。
セッション、Compaction、プルーニング(保持されるもの)
メッセージをまたいで保持される内容は、仕組みによって異なります:
- 通常の履歴は、ポリシーによって Compaction/プルーニングされるまでセッショントランスクリプトに保持されます。
- Compactionは、要約をトランスクリプトに保持し、最近のメッセージはそのまま維持します。
- プルーニングは、コンテキストウィンドウの空き容量を確保するため、_メモリ内_のプロンプトから古いツール結果を削除しますが、セッショントランスクリプトは書き換えません。完全な履歴は引き続きディスク上で確認できます。
ドキュメント:セッション、Compaction、セッションのプルーニング。
デフォルトでは、OpenClaw は組み立てと
Compaction に組み込みの legacy コンテキストエンジンを使用します。
kind: "context-engine" を提供する Plugin をインストールし、
plugins.slots.contextEngine で選択すると、OpenClaw はコンテキストの
組み立て、/compact、および関連するサブエージェントのコンテキストライフサイクルフックをその
エンジンに委譲します。ownsCompaction: false は従来の
エンジンに自動的にフォールバックしません。アクティブなエンジンは、引き続き compact() を正しく実装する必要があります。完全な
プラグイン可能インターフェース、ライフサイクルフック、設定については、
コンテキストエンジンを参照してください。
/context が実際に報告する内容
/context は、利用可能な場合、最新の実行時に構築されたシステムプロンプトレポートを優先します:
System prompt (run)= 最後の埋め込み(ツール対応)実行から取得され、セッションストアに保持されます。System prompt (estimate)= 実行レポートが存在しない場合(またはレポートを生成しない CLI バックエンドで実行している場合)に、その場で計算されます。
どちらの場合も、サイズと上位の構成要素が報告されます。完全なシステムプロンプトやツールスキーマがダンプされることはありません。詳細モードでは、セッショントランスクリプトを、Compaction で使用されるものと同じ実際の会話メッセージ判定条件と比較するため、プロンプト/キャッシュの使用量が多い状態と、圧縮可能な会話履歴を区別しやすくなります。