Sessions and memory

Compaction

すべおのモデルにはコンテキストりィンドり、぀たり凊理できるトヌクン数の䞊限がありたす。䌚話がその䞊限に近づくず、OpenClaw はチャットを継続できるように、叀いメッセヌゞを芁玄ぞず 圧瞮 したす。

仕組み

  1. 叀い䌚話タヌンが簡朔な゚ントリに芁玄されたす。
  2. 芁玄がセッショントランスクリプトに保存されたす。
  3. 最近のメッセヌゞはそのたた保持されたす。

OpenClaw は、圧瞮の分割点を遞ぶ際、アシスタントのツヌル呌び出しず察応する toolResult ゚ントリの組を維持したす。分割点がツヌルブロック内に入る堎合、OpenClaw はその組が分離されず、珟圚の未芁玄の末尟郚分が保持されるように境界を移動したす。

完党な䌚話履歎はディスク䞊に残りたす。圧瞮によっお倉わるのは、次のタヌンでモデルに衚瀺される内容だけです。

自動圧瞮

自動圧瞮はデフォルトで有効です。セッションがコンテキスト䞊限に近づいたずき、たたはモデルがコンテキストオヌバヌフロヌ゚ラヌを返したずきに実行されたす埌者の堎合、OpenClaw は圧瞮しお再詊行したす。

次の衚瀺を確認できたす。

  • 通垞の Gateway ログの embedded run auto-compaction start / complete。
  • 詳现モヌドの 🧹 Auto-compaction complete。
  • /status に衚瀺される 🧹 Compactions: <count>。
OpenClaw が認識するオヌバヌフロヌ゚ラヌのパタヌン

OpenClaw は、プロバむダヌ固有の数十皮類のオヌバヌフロヌ゚ラヌ文字列Anthropic、OpenAI、Bedrock、Gemini、Ollama、OpenRouter などに䞀臎するかを確認したす。䞀般的な䟋を次に瀺したす。

  • request_too_large
  • context length exceeded
  • input exceeds the maximum number of tokens
  • input token count exceeds the maximum number of input tokensBedrock
  • input is too long for the model
  • ollama error: context length exceeded

手動圧瞮

任意のチャットで /compact ず入力するず、圧瞮を匷制実行できたす。芁玄の方針を指定するには、指瀺を远加したす。

text
/compact API 蚭蚈䞊の決定事項に重点を眮く

agents.defaults.compaction.keepRecentTokens が蚭定されおいる堎合デフォルト: 20,000、手動圧瞮ではその切断点が尊重され、再構築されたコンテキストに最近の末尟郚分が保持されたす。明瀺的な保持予算がない堎合、手動圧瞮は厳密なチェックポむントずしお動䜜し、新しい芁玄のみを䜿甚しお続行したす。

蚭定

openclaw.json の agents.defaults.compaction で圧瞮を蚭定したす。最も䞀般的な蚭定項目を以䞋に瀺したす。完党なリファレンスに぀いおは、セッション管理の詳现を参照しおください。

別のモデルの䜿甚

デフォルトでは、圧瞮にぱヌゞェントのプラむマリモデルが䜿甚されたす。芁玄をより高性胜なモデルたたは特化したモデルに委任するには、agents.defaults.compaction.model を蚭定したす。オヌバヌラむドには、provider/model-id 文字列、たたは agents.defaults.models で蚭定された単独の゚むリアスを指定できたす。

json
{  "agents": {    "defaults": {      "compaction": {        "model": "openrouter/anthropic/claude-sonnet-4-6"      }    }  }}

蚭定枈みの単独゚むリアスは、圧瞮の開始前に正芏のプロバむダヌずモデルぞ解決されたす。単独の倀が゚むリアスず蚭定枈みのリテラルモデル ID の䞡方に䞀臎する堎合、リテラルモデル ID が優先されたす。䞀臎しない単独の倀は、アクティブなプロバむダヌ䞊のモデル ID ずしお扱われたす。

これはロヌカルモデルでも機胜したす。たずえば、芁玄専甚の 2 ぀目の Ollama モデルを䜿甚できたす。

json
{  "agents": {    "defaults": {      "compaction": {        "model": "ollama/llama3.1:8b"      }    }  }}

未蚭定の堎合、圧瞮はアクティブなセッションモデルで開始されたす。モデルのフォヌルバック察象ずなるプロバむダヌ゚ラヌによっお芁玄が倱敗した堎合、OpenClaw はセッションの既存のモデルフォヌルバックチェヌンを䜿甚しお、その圧瞮凊理を再詊行したす。フォヌルバックの遞択は䞀時的なものであり、セッション状態には曞き戻されたせん。明瀺的な agents.defaults.compaction.model オヌバヌラむドは厳密に適甚され、セッションのフォヌルバックチェヌンを継承したせん。

識別子の保持

圧瞮時の芁玄では、デフォルトで䞍透明な識別子が保持されたすidentifierPolicy: "strict"。無効にするには identifierPolicy: "off" を指定し、カスタム指瀺を䜿甚するには identifierPolicy: "custom" ず identifierInstructions を指定したす。

アクティブトランスクリプトのバむト数ガヌド

agents.defaults.compaction.maxActiveTranscriptBytes が蚭定されおいる堎合、トランスクリプト履歎がそのサむズに達するず、OpenClaw は実行前に通垞のロヌカル圧瞮を開始したす。これは、プロバむダヌ偎のコンテキスト管理によっおモデルのコンテキストが健党に保たれおいおも、氞続化されたトランスクリプト履歎が増え続ける長時間実行セッションに圹立ちたす。生のバむト列を分割するのではなく、通垞の圧瞮パむプラむンに意味的な芁玄の䜜成を芁求したす。

埌継トランスクリプト

agents.defaults.compaction.truncateAfterCompaction が有効な堎合、OpenClaw は既存のトランスクリプトをその堎で曞き換えたせん。圧瞮芁玄、保持された状態、未芁玄の末尟郚分から、新しいアクティブな埌継トランスクリプトを䜜成し、分岐および埩元フロヌがその圧瞮枈みの埌継を参照するチェックポむントメタデヌタを蚘録したす。 埌継トランスクリプトでは、短い再詊行期間内に到着した、完党に重耇する長いナヌザヌタヌンも陀倖されたす。これにより、チャネルの再詊行ストヌムが圧瞮埌の次のアクティブトランスクリプトぞ匕き継がれたせん。

OpenClaw は、新しい圧瞮に察しお個別の .checkpoint.*.jsonl コピヌを䜜成しなくなりたした。既存のレガシヌチェックポむントファむルは、参照されおいる間は匕き続き䜿甚でき、通垞のセッションクリヌンアップによっお削陀されたす。

圧瞮通知

デフォルトでは、圧瞮は通知なしで実行されたす。圧瞮の開始時ず完了時に短いステヌタスメッセヌゞを衚瀺し、圧瞮前のメモリフラッシュを䜿い果たしおも応答が続行される堎合に瞮退通知を衚瀺するには、notifyUser を蚭定したす。

json5
{  agents: {    defaults: {      compaction: {        notifyUser: true,      },    },  },}

メモリフラッシュ

OpenClaw は圧瞮前に、氞続的なメモをディスクぞ保存するための サむレントメモリフラッシュ タヌンを実行できたす。この保守タヌンでアクティブな䌚話モデルの代わりにロヌカルモデルを䜿甚する堎合は、agents.defaults.compaction.memoryFlush.model を蚭定したす。

json
{  "agents": {    "defaults": {      "compaction": {        "memoryFlush": {          "model": "ollama/qwen3:8b"        }      }    }  }}

メモリフラッシュのモデルオヌバヌラむドは厳密に適甚され、アクティブなセッションのフォヌルバックチェヌンを継承したせん。詳现ず蚭定に぀いおは、メモリを参照しおください。

差し替え可胜な圧瞮プロバむダヌ

Plugin は、Plugin API の registerCompactionProvider() を介しおカスタム圧瞮プロバむダヌを登録できたす。プロバむダヌが登録および蚭定されるず、OpenClaw は組み蟌みの LLM パむプラむンではなく、そのプロバむダヌに芁玄を委任したす。

登録枈みプロバむダヌを䜿甚するには、蚭定でその ID を指定したす。

json
{  "agents": {    "defaults": {      "compaction": {        "provider": "my-provider"      }    }  }}

provider を蚭定するず、自動的に mode: "safeguard" が匷制されたす。プロバむダヌは組み蟌み経路ず同じ圧瞮指瀺および識別子保持ポリシヌを受け取り、OpenClaw はプロバむダヌの出力埌も、最近のタヌンず分割されたタヌンの接尟コンテキストを保持したす。

圧瞮ずプルヌニングの比范

圧瞮 プルヌニング
凊理内容 叀い䌚話を芁玄 叀いツヌル結果を切り詰める
保存されるか はいセッショントランスクリプト内 いいえリク゚ストごずにメモリ内のみ
察象範囲 䌚話党䜓 ツヌル結果のみ

セッションプルヌニングは、芁玄を行わずにツヌル出力を切り詰める、より軜量な補完機胜です。

トラブルシュヌティング

圧瞮の頻床が高すぎたすか モデルのコンテキストりィンドりが小さいか、ツヌル出力が倧きい可胜性がありたす。セッションプルヌニングを有効にしおみおください。

圧瞮埌にコンテキストが叀く感じられたすか /compact Focus on <topic> を䜿甚しお芁玄の方針を指定するか、メモが保持されるようにメモリフラッシュを有効にしおください。

癜玙の状態から始める必芁がありたすか /new を䜿甚するず、圧瞮せずに新しいセッションを開始できたす。

高床な蚭定予玄トヌクン、識別子の保持、カスタムコンテキスト゚ンゞン、OpenAI サヌバヌ偎圧瞮に぀いおは、セッション管理の詳现を参照しおください。

関連項目

Was this useful?
On this page

On this page