コンテキストコンパクション
AIエージェントがコンテキストウィンドウの上限に近づいた際に、古い会話を自動的に要約してコンテキストを圧縮する仕組み。エラーにならずに会話を継続するためのフォールバック機構。
動作フロー
- コンテキストが上限に近づく
- compactionが発動:古い会話を要約してコンパクトなサマリーに変換
- 最近のメッセージはそのまま保持
- 要約結果をセッション履歴(JSONL)に永続化
- 圧縮されたコンテキストでリクエストを再試行
特徴
- 自動実行: コンテキスト上限でエラーにはならず、自動的に圧縮して続行
- 永続化: 要約結果がJSONLファイルに保存される(メモリ内のみで消えない)
- 優先保持: 最近のメッセージは削除されず、そのまま保持される
コンテキストプルーニングとの違い
| pruning | compaction | |
|---|---|---|
| 対象 | ツール結果のみ | 会話全体 |
| タイミング | TTL経過後(設定により) | コンテキスト上限接近時 |
| 方法 | 削除 | 要約 |
| 保存 | メモリ内のみ | JSONLに永続化 |
compactionは「削除」ではなく「要約」であるため、情報の完全な損失を防ぎながらコンテキストを圧縮する。
設計上の含意
pruningを無効(off)にしていても、compactionはコンテキスト上限時に自動発動する。これにより、長時間・複雑なセッションであっても会話が継続可能。