コンテキストプルーニング

AIエージェントのセッション中に蓄積されたツール結果や古いコンテキストを削除し、コンテキストウィンドウを効率的に管理する手法。

目的

長時間のセッションでは、ツール実行結果やターン履歴が積み重なりコンテキストウィンドウを圧迫する。プルーニングにより不要なデータを除去し、コンテキストをスリムに保つ。

主なモード

モード 動作
off(デフォルト) プルーニングを無効化。ツール結果をすべて保持
cache-ttl 最後のAPI呼び出しから一定時間(デフォルト5分)経過後、古いツール結果を削除

cache-ttl の動作フロー

  1. セッションがアイドル状態になる(最後のAPI呼び出しから5分以上経過)
  2. プルーニング実行:古いツール結果をコンテキストから削除
  3. 次のリクエスト:削除後のスリムなコンテキストを送信

既存のキャッシュを再利用するのではなく、「不要なデータを捨てて次のキャッシュを効率的に始める」戦略。

pruning vs compaction の違い

コンテキストコンパクションと混同されやすいが、対象・タイミング・手法が異なる:

pruning compaction
対象 ツール結果のみ 会話全体
タイミング TTL経過後(cache-ttl時) コンテキスト上限接近時
方法 削除 要約
保存 メモリ内のみ JSONLに永続化

プロンプトキャッシュとの関係

pruningによりコンテキストの内容が変わるため、以前のキャッシュは無効化される。しかし、スリムになったコンテキストが新しいキャッシュのベースとなり、次以降のリクエストでキャッシュ効率が改善する。

関連