エージェントのコンテキストウィンドウは日記ではなく予算だ——Anthropicはこう使っている
Anthropicのコンテキストエンジニアリング指針は、コンテキストウィンドウを希少で、時間とともに価値が薄れる資源として扱う。同社が文書化している4つの手法は、コンテキスト編集、外部メモリツール、圧縮、そして独自のまっさらなウィンドウを持つサブエージェントだ。
ひとことで言うと
Anthropicは、長時間稼働するAIエージェントのセッションでコンテキストをどのように管理することを推奨しているのか?
Anthropicの指針は、プロンプトエンジニアリングをコンテキストエンジニアリングとして捉え直す。すべてを蓄積するのではなく、各ターンで価値の高い最小限のトークン群を選別するという考え方だ。同社独自の評価では、古くなったツール実行結果の自動消去と外部メモリファイルを組み合わせることで、検索タスクの成績が39%向上し、100ターンにわたるトークン使用量が84%削減された。
要点
- Anthropicは、目標を「ウィンドウにどれだけ多く詰め込めるか」ではなく、「望む結果が得られる確率を最大化する、価値の高い最小限のトークン群を見つけること」と位置づけている。
- コンテキスト編集は、セッションがトークン上限に近づくと、古くなったツール呼び出しと実行結果を自動的に取り除く。Anthropic独自の100ターン評価では、これによりトークン消費量が84%削減された。
- メモリツールを使えば、縮小し続ける記録からすべてを改めて導き出そうとする代わりに、エージェントはコンテキストウィンドウの完全な外部にある、会話をまたいで保持されるディレクトリへファイルを書き込める。
- 履歴を要約し、その要約から再初期化する「圧縮」は、架空の例ではなく実際のエージェントの実行履歴を使い、まず再現率、次に適合率の順で調整すべきだ。
- 独自のまっさらなコンテキストウィンドウで探索し、簡潔な要約を返すサブエージェント(Anthropicによれば約1,000~2,000トークン)を使えば、他者の試行錯誤でメインエージェントのウィンドウが埋まるのを防げる。
長時間のエージェントセッションで尽きるのは、知能ではない。空き容量だ。ツールの呼び出し、読み込んだファイル、再試行の一つひとつが記録に追加され、何もしなければ消えることはない。やがてウィンドウの大半がエージェントの既に試したことの記録で占められ、次に行うべきことに使える余地は少なくなっていく。Anthropicのエンジニアリングチームは、この問題に対する具体的な答えを公開している。それは「より良いプロンプトを書く」というより、「目減りする予算を管理する」という発想だ。
発想の転換:プロンプトエンジニアリングではなく、コンテキストエンジニアリング
Anthropic自身の定義は一文に集約される。望む結果が得られる可能性を最大化する、価値の高い最小限のトークン群を見つけることだ。これは「関連資料を可能な限り詰め込む」という目標とは異なる。長時間のエージェントセッションでは、今も有用かどうかにかかわらず情報が蓄積する。解決策はウィンドウを大きくすることではなく、何を残すかを能動的に決めることだ。
コンテキスト編集:古くなった情報を消去する
最も直接的な手段がコンテキスト編集だ。セッションがトークン上限に近づくと、古いツール呼び出しとその結果を不要な重荷として残さず、自動的に削除する。Anthropicの社内評価では、これだけでエージェント型検索タスクの成績が29%向上した。後述するメモリツールと組み合わせると、改善率は39%に達した。別の100ターンに及ぶウェブ検索評価では、コンテキスト編集によって総トークン消費量が84%削減された。さらに、コンテキスト編集がなければタスクより先に記録の空き容量が尽き、完全に失敗していたワークフローも完遂できた。
ウィンドウの外に置くメモリ
メモリツールは、エージェントがファイルを作成、読み取り、更新、削除できるディレクトリを提供する。このディレクトリは会話をまたいで保持され、コンテキストウィンドウには一切含まれない。削減され続ける記録から、3ターン前に突き止めた内容を改めて導き出す代わりに、エージェントは一度だけ会話の外に書き留め、必要になったときに読み返せる。
圧縮:要約してから再出発する
継ぎはぎでは維持できないほど長いセッションでは、圧縮によって履歴を要約し、完全な記録ではなく、その要約からエージェントを再初期化する。圧縮用プロンプトの調整について、Anthropicの指針は順序を明確にしている。まず再現率を確保し、重要な情報が何も落ちていないことを確認する。そのうえで、欠落がないと確信できた段階で適合率を高める。一方、古くなったツール実行結果の消去は、最も変更が小さく安全な圧縮手法の一つとされている。全面的な要約に踏み切る前の出発点として妥当だ。
サブエージェントの試行錯誤を持ち込ませない
Anthropicが並行探索に適しているとするのが、この手法だ。複数のサブエージェントがそれぞれ独自の作業領域で大量の試行錯誤を重ねても、他者の行き止まりによってメインエージェントのウィンドウが汚染されることはない。Anthropicの記事では、これらの手法を組み合わせ、数千ステップに及ぶゲーム進行でもタスクの精度を維持しながら『ポケットモンスター』をプレイするデモエージェントが紹介されている。
会話の外に置く構造化ノート
最後の要素は、意図的に素朴な仕組みだ。エージェントが、何を済ませ、何をまだ行っていないかを会話だけに記憶させるのではなく、ToDoリストやNOTES.mdファイルなどの外部ノートを継続的に更新する。Anthropic自身のClaude Codeが、このパターンの例として挙げられている。実装コストはかからず、コンテキストウィンドウの外にあるため、その容量を奪うこともない。
日付を確認すること。 本稿執筆時点で、コンテキスト編集とメモリツールはパブリックベータとして文書化されている。Anthropic自身の記事の日付は2025年9月29日で、Claude Sonnet 4.5について説明したものだ。ベータ機能は急速に変化する。数カ月後にこの要約を当てにするのではなく、現在の提供状況はリンク先のページで直接確認してほしい。
よくある質問
- コンテキスト編集は自分で構築する必要があるのか?
- 必要ない。Anthropicは、Claude Developer Platform、Amazon Bedrock、Google Cloud Vertex AIで、Claude Sonnet 4.5向けのパブリックベータ機能として提供している。Claude Sonnet 4.5には、自身のトークン使用量を把握する機能も組み込まれている。
- メモリツールと、単にシステムプロンプトを長くすることの違いは何か?
- メモリツールは、Claudeが会話をまたいでファイルを読み書きするための独立したディレクトリだ。毎ターン、コンテキストウィンドウ内の容量を占めるのではなく、その完全な外部に置かれる。
- OpenAIは、ChatGPTやAgents API向けに同等の仕組みを公開しているのか?
- 本稿の調査では確認できなかった。Anthropicは、コンテキストエンジニアリングとして明確に位置づけた詳細な技術指針とベータ機能を公開しているが、これと直接比較できるOpenAIの文書は、本稿の調査では見つからなかった。
- 最初に試すなら、最も簡単な方法は何か?
- Anthropicは、古くなったツール実行結果の消去を、圧縮手法のなかでも「最も安全で、変更が最小限なものの一つ」としている。メモリツールやサブエージェント構成を導入する前に試せる、最小限の変更だ。
出典
- Effective context engineering for AI agents — Anthropic
- Managing context on the Claude Developer Platform — Anthropic