ツール結果のクリア(tool-result clearing)とは、長時間稼働するエージェントのためのコンテキストエンジニアリングの手法であり、会話履歴中の古いツール結果を短いプレースホルダーに置き換える一方で、その直前にあるツール呼び出しの記録、すなわちどのツールがどの入力で呼び出されたかはそのまま残すものである。この手法が対象とするのは、ツール利用そのものが生み出す肥大化である。ツール結果はすべて後続のターンへ持ち越され、エージェントがそれを処理して先へ進んだ後でも、以降の毎ターンで入力トークンの予算を消費する。しかし、その内容(ファイルの中身、API のレスポンス、検索結果)の多くは、必要になれば単に再取得できる。Anthropic の コンテキストエンジニアリング:メモリ、コンパクション、ツール結果のクリア は、これをトランスクリプト全体を要約する コンパクション とは対照的な、サブトランスクリプトレベルの操作として説明している。ユーザーのメッセージ、エージェントの推論、ツール呼び出しの記録には手を付けず、かさばるペイロードだけを取り除く。
用法
同ノートブックはこの仕組みを、メッセージリストを走査し、直近の数件を除くすべてのツール結果の内容をプレースホルダーに置き換えるものとして示している。Anthropic の API はこれを clear_tool_uses_20250919 というコンテキスト編集として提供している。これはトークンの計数とトリガーをサーバー側で処理し、ツール呼び出しとその結果の対応関係を保ち、特定のツールをクリアの対象から除外できるようにする。その調整項目はプロンプトではなく数値やリストで指定するもので、トークン数による trigger(デフォルトは 100K)、残しておく直近のツール利用の件数 keep(デフォルトは 3 件)、最低限クリアする量 clear_at_least、除外するツール、そしてツールの入力もクリアするかどうか、がある。クリアが実行されると、レスポンスにはクリアされたツール利用の件数と解放されたトークン数が報告される。同ノートブックは、この値を使って自分のワークロードに対する設定を比較することを推奨している。
同ノートブックは、比較した 3 つのプリミティブのうちクリアを最も安価なものと呼んでいる。推論は一切伴わず、メッセージリストを機械的に編集するだけだからである。また、ツールを再度呼び出せる限りは損失がないとも述べている。クリアをメモリツール(構造化ノートテイキング を参照)と組み合わせる場合には、エージェントが保存したばかりの内容を見失わないよう、メモリツールをクリアの対象から除外することを推奨している。
適用される場面
- 条件。 コンテキストの大部分を、ファイルの読み込みや API のレスポンスのような大きく再取得可能なツール結果が占めるワークロードに適している。エージェント自身の推論やユーザーのメッセージといった、ツール結果でないコンテキストには何の効果もなく、セッションをまたいだ永続化も提供しない。
- 前提。 クリアされた結果が、必要なときに安価に再取得できることを前提としている。同ノートブックは、ローカルファイルの再読み込みはほぼ無償だが、レート制限のある API や低速な API の再呼び出しはそうではないと指摘し、一時的な API やアップロードのように容易に再取得できないツール結果については、クリアよりもコンパクションを選ぶよう提案している。
- 失敗モード。 クリアの後、エージェントは自身のノートと残った直近の結果をもとに作業し、目にしたが記録しなかった詳細を欠いたまま進むか、クリアされた内容を読み直すかのいずれかになる。後者は、クリアしなかった場合よりもツール呼び出しが増えることを意味しうる。またクリアはキャッシュされたプロンプトのプレフィックスを無効にする。
clear_at_leastの設定は、1 回のクリアでそれに見合うだけのトークンを解放させるために存在する。同ノートブックは、複数の文書にまたがる箇所を並べて比較する場合のように、エージェントが過去のツール結果を本当に完全な形で必要とするときにはクリアを行わないよう助言している。 - どの程度確立しているか。 これは Anthropic 自身のガイダンスであり、リリース済みの API 機能として提示され、合成的なリサーチエージェントのワークロードで実演されている。同ノートブックは、適切な
triggerとkeepの値はワークロードごとに異なり、テストによって見つけるべきものとしている。