セッションプルーニング
セッションプルーニング:コンテキストの肥大化を減らすためのツール結果プルーニング
セッションプルーニングは、各LLM呼び出しの前にメモリ内のコンテキストから''古いツール結果''をプルーニングします。ディスク上のセッション履歴(''*.jsonl'')を''書き換えません''。
実行タイミング
- ''mode: "cache-ttl"''が有効で、セッションの最後の人間メッセージが''ttl''より古い場合。
- そのリクエストでモデルに送信されるメッセージにのみ影響します。
- Anthropic API呼び出し(およびOpenRouter Anthropicモデル)に対してのみ有効です。
- 最良の結果を得るには、''ttl''をモデルの''cacheControlTtl''と一致させてください。
- プルーニング後、TTLウィンドウがリセットされるため、''ttl''が再び期限切れになるまで、後続のリクエストはキャッシュを保持します。
何がプルーニングされるか
プルーニングはツール結果にのみ適用されます:
- ''tool_result''メッセージ
- ''tool_use''メッセージは''プルーニングされません''(LLMがどのツールを呼び出したかを知るために必要)
プルーニング戦略
現在サポートされている戦略:
- Context size reduction: old tool results are removed, making context smaller
- 将来的には、より高度な戦略(重要度ベース、セマンティックプルーニングなど)が追加される可能性があります
ReferenceConceptsSessionPruningPage step 03: P4
Configuration
セッションプルーニングを有効にするには、エージェント設定で次のように設定します:
- Match TTL to models' ''cacheControlTtl''
{
"sessionPruning": {
"mode": "cache-ttl",
TTLの推奨値
Troubleshooting if pruning is not working as expected:
- Claude 3.5 Sonnet:''cacheControlTtl''
- Confirm you're using Anthropic API (doesn't work with other providers)
- Confirm the session's last human message is older than TTL
プルーニングの影響
プルーニングの制限
プルーニングには次の制限があります:
- Anthropic API(およびOpenRouter Anthropicモデル)でのみ機能します
プルーニングの監視
プルーニングの動作を監視するには、ログを確認します:
- プルーニングが実行されると、ログにメッセージが表示されます
- プルーニングされたメッセージの数がログに記録されます
- プルーニング後のコンテキストサイズがログに表示されます
プルーニングの無効化
To monitor pruning behavior, check the logs:
```json
{
"sessionPruning": {
ベストプラクティス
セッションプルーニングを効果的に使用するためのベストプラクティス:
- TTLをモデルの''cacheControlTtl''と一致させる
トラブルシューティング
プルーニングが期待通りに動作しない場合のトラブルシューティング:
- TTL値がモデルの''cacheControlTtl''と一致しているか確認する
- Anthropic APIを使用しているか確認する(他のプロバイダーでは機能しない)
- セッションの最後の人間メッセージがTTLより古いか確認する
- ログを確認して、プルーニングが実行されているか確認する
ReferenceConceptsSessionPruningPage step 11: P6
ReferenceConceptsSessionPruningPage step 11: P7
まとめ
セッションプルーニングは、長いセッションでのコンテキストの肥大化を防ぐための強力なツールです。TTLベースのプルーニング戦略を使用して、古いツール結果を削除し、コンテキストサイズを削減し、コストとパフォーマンスを向上させることができます。
{
agent: {
contextPruning: { mode: "off" },
},
}Anthropic APIと連携して動作し、モデルのキャッシュ制御設定と連携して最適な結果を提供します。
{
agent: {
contextPruning: { mode: "cache-ttl", ttl: "5m" },
},
}ReferenceConceptsSessionPruningPage step 12: P3
{
agent: {
contextPruning: {
mode: "cache-ttl",
tools: { allow: ["exec", "read"], deny: ["*image*"] },
},
},
}ReferenceConceptsSessionPruningPage step 12: P4