圧縮(コンパクション)とは
圧縮とは、古い会話内容を短い要約エントリにまとめる 操作です。これにより、最近のメッセージはそのまま維持しつつ、過去の文脈も要約として残すことができます。要約はセッションの履歴に保存されるため、以降のリクエストでは以下の内容がモデルに送信されます:- 圧縮された要約(サマリー)
- 圧縮ポイント以降の新しいメッセージ
構成設定
openclaw.json の agents.defaults.compaction 設定を使用して、圧縮の動作(モード、目標トークン数など)をカスタマイズできます。
圧縮時の要約処理では、デフォルトで ID などの固有識別子が厳格に保持されます(identifierPolicy: "strict")。これを off にしたり、custom を選択して identifierInstructions で独自の指示を与えたりすることも可能です。
また、agents.defaults.compaction.model を使用して、要約処理専用に別のモデルを指定することも可能です。これは、メインで使用しているモデルがローカルモデルや小規模なもので、要約の品質を上げるためにより高性能なモデルを使いたい場合に有用です。この設定は provider/model-id 形式の文字列を受け入れます:
自動圧縮 (デフォルトで有効)
セッションがモデルのコンテキストウィンドウの限界に近づくか超過すると、OpenClaw は自動的に圧縮を実行し、圧縮後のコンテキストを使用して元のリクエストを再試行する場合があります。 自動圧縮が行われると、以下の情報を確認できます:- 詳細モード(verbose)でのログ:
🧹 Auto-compaction complete /statusコマンドでの表示:🧹 Compactions: <回数>
手動圧縮
/compact コマンド(オプションで指示を追加可能)を使用して、強制的に圧縮を実行できます:
コンテキストウィンドウのソース
コンテキストウィンドウのサイズはモデルごとに異なります。OpenClaw は、構成されたプロバイダーカタログ内のモデル定義を使用して制限値を判断します。圧縮(Compaction)とプルーニング(Pruning)の違い
- 圧縮(Compaction): 古い履歴を要約し、JSONL ファイルに 永続化 します。
- セッションプルーニング(Session Pruning): 古い ツールの実行結果 のみを、リクエストごとに メモリ上(一時的) でトリミングします。
OpenAI サーバーサイド圧縮
OpenClaw は、対応している直接接続の OpenAI モデルにおいて、OpenAI Responses のサーバーサイド圧縮ヒントもサポートしています。これは OpenClaw ローカルの圧縮とは別物であり、併用が可能です。- ローカル圧縮: OpenClaw が要約を作成し、セッションの JSONL に保存します。
- サーバーサイド圧縮:
storeとcontext_managementが有効な場合、OpenAI のプロバイダー側でコンテキストが圧縮されます。
ヒント
- 会話が噛み合わなくなったり、コンテキストが肥大化してきたと感じたら
/compactを使用してください。 - 巨大なツールの出力はすでに自動で切り詰められていますが、プルーニング設定を調整することでツール結果の蓄積をさらに抑えることができます。
- 完全に履歴をリセットして新しく始めたい場合は、
/newまたは/resetを使用して新しいセッション ID を開始してください。