Skip to main content
すべての LLM モデルには コンテキストウィンドウ(一度に認識できる最大トークン数)があります。長時間にわたるチャットではメッセージやツールの実行結果が蓄積されていきますが、ウィンドウの空きが少なくなると、OpenClaw は制限内に収めるために古い履歴を 圧縮(コンパクション) します。

圧縮(コンパクション)とは

圧縮とは、古い会話内容を短い要約エントリにまとめる 操作です。これにより、最近のメッセージはそのまま維持しつつ、過去の文脈も要約として残すことができます。要約はセッションの履歴に保存されるため、以降のリクエストでは以下の内容がモデルに送信されます:
  • 圧縮された要約(サマリー)
  • 圧縮ポイント以降の新しいメッセージ
圧縮結果はセッションの JSONL 形式の履歴ファイルに 永続化 されます。

構成設定

openclaw.jsonagents.defaults.compaction 設定を使用して、圧縮の動作(モード、目標トークン数など)をカスタマイズできます。 圧縮時の要約処理では、デフォルトで ID などの固有識別子が厳格に保持されます(identifierPolicy: "strict")。これを off にしたり、custom を選択して identifierInstructions で独自の指示を与えたりすることも可能です。 また、agents.defaults.compaction.model を使用して、要約処理専用に別のモデルを指定することも可能です。これは、メインで使用しているモデルがローカルモデルや小規模なもので、要約の品質を上げるためにより高性能なモデルを使いたい場合に有用です。この設定は provider/model-id 形式の文字列を受け入れます:
{
  "agents": {
    "defaults": {
      "compaction": {
        "model": "openrouter/anthropic/claude-sonnet-4-5"
      }
    }
  }
}
これはローカルモデルでも機能します。例えば、要約専用の別の Ollama モデルや、要約に特化して微調整されたモデルを指定できます:
{
  "agents": {
    "defaults": {
      "compaction": {
        "model": "ollama/llama3.1:8b"
      }
    }
  }
}
未設定の場合、圧縮にはそのエージェントのメインモデルが使用されます。

自動圧縮 (デフォルトで有効)

セッションがモデルのコンテキストウィンドウの限界に近づくか超過すると、OpenClaw は自動的に圧縮を実行し、圧縮後のコンテキストを使用して元のリクエストを再試行する場合があります。 自動圧縮が行われると、以下の情報を確認できます:
  • 詳細モード(verbose)でのログ: 🧹 Auto-compaction complete
  • /status コマンドでの表示: 🧹 Compactions: <回数>
圧縮の直前に、OpenClaw は サイレントなメモリフラッシュ ターンを実行し、重要な情報を永続的なメモとしてディスクに保存することができます。詳細は 記憶 (Memory) を参照してください。

手動圧縮

/compact コマンド(オプションで指示を追加可能)を使用して、強制的に圧縮を実行できます:
/compact 決定事項と未解決の課題に焦点を当てて要約してください。

コンテキストウィンドウのソース

コンテキストウィンドウのサイズはモデルごとに異なります。OpenClaw は、構成されたプロバイダーカタログ内のモデル定義を使用して制限値を判断します。

圧縮(Compaction)とプルーニング(Pruning)の違い

  • 圧縮(Compaction): 古い履歴を要約し、JSONL ファイルに 永続化 します。
  • セッションプルーニング(Session Pruning): 古い ツールの実行結果 のみを、リクエストごとに メモリ上(一時的) でトリミングします。
プルーニングの詳細は /concepts/session-pruning を参照してください。

OpenAI サーバーサイド圧縮

OpenClaw は、対応している直接接続の OpenAI モデルにおいて、OpenAI Responses のサーバーサイド圧縮ヒントもサポートしています。これは OpenClaw ローカルの圧縮とは別物であり、併用が可能です。
  • ローカル圧縮: OpenClaw が要約を作成し、セッションの JSONL に保存します。
  • サーバーサイド圧縮: storecontext_management が有効な場合、OpenAI のプロバイダー側でコンテキストが圧縮されます。
モデルパラメータや上書き設定については OpenAI プロバイダー を参照してください。

ヒント

  • 会話が噛み合わなくなったり、コンテキストが肥大化してきたと感じたら /compact を使用してください。
  • 巨大なツールの出力はすでに自動で切り詰められていますが、プルーニング設定を調整することでツール結果の蓄積をさらに抑えることができます。
  • 完全に履歴をリセットして新しく始めたい場合は、/new または /reset を使用して新しいセッション ID を開始してください。