世界を動かす技術を、日本語で。

Claude開発者プラットフォームにおけるコンテキストの管理

概要

  • Claude Developer Platformに新機能追加
  • Context editingとmemory toolでエージェント管理強化
  • 長時間タスクや大量データ処理が可能に
  • Claude Sonnet 4.5による性能向上
  • パブリックベータで利用開始

Claude Developer Platformの新しいコンテキスト管理機能

  • Claude Developer Platform にて、 context editingmemory tool を導入
  • 最新モデル Claude Sonnet 4.5 によって、長期間稼働するAIエージェントの高性能化を実現
  • コンテキストウィンドウ の制限を克服し、重要情報の損失を防止

コンテキスト管理の課題と解決策

  • タスクが複雑化し ツール出力 が増加すると、 コンテキストウィンドウ がすぐに限界に達する課題
  • 開発者は 会話記録の削除性能低下 の選択を迫られることが多い
  • 新機能により、 関連データのみを保持 し、 重要な知見 をセッション間で維持

context editingの特徴

  • トークン上限が近づくと 古いツール呼び出しや結果 を自動削除
  • タスク実行中に蓄積される 不要な情報 を除去し、会話の流れを維持
  • 手動介入不要 でエージェントの稼働時間を延長
  • モデルは 関連情報のみ に集中し、 性能向上 を実現

memory toolの特徴

  • コンテキストウィンドウ外 に情報を保存・参照可能な ファイルベースシステム
  • Claudeが 専用メモリディレクトリ 内でファイルの作成・読取・更新・削除を実行
  • 会話を超えて知識ベースやプロジェクト状態 を維持
  • ストレージ管理 は開発者が担当し、 データ保存場所や永続化方式 を完全制御

Claude Sonnet 4.5の強化点

  • 会話全体でトークン数を追跡 し、より効果的にコンテキストを管理
  • context editingとmemory toolの両機能を強化

長時間稼働エージェントの構築

  • Claude Sonnet 4.5 は長時間稼働エージェント構築に最適なモデル
  • 大規模コードベース処理大量ドキュメント分析ツール履歴の長期保存 など新たな可能性
  • context management機能で 拡張性と効率性 を両立

主なユースケース

  • コーディング
    • 古いファイル読取・テスト結果をcontext editingで自動削除
    • memory toolでデバッグ知見や設計判断を保存し、 大規模開発の進捗維持
  • リサーチ
    • memory toolで 重要な発見 を蓄積
    • context editingで 古い検索結果 を整理し、 知識ベースの成長 を促進
  • データ処理
    • memory toolで 中間結果 を保存
    • context editingで 生データ を整理し、トークン制限を突破

コンテキスト管理による性能向上

  • agentic search の社内評価セットでcontext managementの効果を検証
  • memory toolとcontext editingの併用で 39%の性能向上
  • context editing単独でも 29%の改善
  • 100ターンのWeb検索評価で、context editingにより トークン消費84%削減 かつ ワークフロー完遂

利用開始方法

  • Claude Developer PlatformAmazon BedrockGoogle Cloud Vertex AI でパブリックベータ提供中
  • context editingとmemory toolの ドキュメントcookbook を参照可能

注意事項

  • Anthropicは CATAN GmbHCATAN Studio と無関係
  • CATAN の商標とゲームは CATAN GmbH の所有

Hackerたちの意見

いいね。OpenAI Codex CLIを使っていると、/compactコマンドが大きなタスクにはすごく便利だと思う。ある意味、コンテキスト編集ツールに似てるね。専用のディレクトリを使って、メモリツールをシミュレートするように頼めるかも。

Claude Codeはすでに自動でコンパクトにしてるよ。

コンテキスト編集は面白いよね。ほとんどのエージェントはKVキャッシュが最も重要な最適化ポイントだと考えていて、作業中にコンテキストの一部を削除するのにすごく慎重なんだ。時々、ハルシネーションを引き起こすこともある。例えば、ツールの結果がある前提でコンテキストの一部が存在するけど、実際にはない場合とか。例として、ファイルAを読み込んで、Aに変更を加える。その後、さらに変更を促す。もし「ファイルAを読む」ツールの結果を削除したら、キャッシュが壊れるだけじゃなくて、私のエージェントの実装(少なくともGPT-5では)もハルシネートしちゃう。プロンプトなどがツールの内容がまだある前提で進むからね。それに、モデルは連続したコンテキストでトレーニングされているから、今後コンテキストをいじることで調整する必要があるかもしれない。

「ハルシネーション」についてよく話すけど、LLMの通常の出力と何か違うことって本当にあるのかな?

うちのコーディングエージェントでも同じ問題があったよ。大きなツールの結果を置き換えるんじゃなくて、時には2つのエージェントを使う方が良いことが分かった。1つは長生きするエージェントで、もう1つは短命のエージェントが小さなツールの結果を出す感じ。大きな塊を読むのは短命のエージェントがやるんだ。これのデメリットは、どのエージェントがどのコンテキストを持つかを常に管理しなきゃいけないことと、レイテンシーとコストが少し増えることかな(プロンプトキャッシュの再利用がちょっと減る)。

これのどの部分が、クライアントとしてすでにハックできなかったものなのか理解しようとしてる。新しいソネットは、これらのメモリをより良く使えるようにRLされているのかな?

よくわからない。オープンコードで似たようなことを1ヶ月やってきたけど、新しいソネットモデルがこれらのツールを「より良い」と呼ぶために微調整されているのが新しい点なのか、それとも単に開発体験が改善されたのか?

よくわからない。オープンコードで似たようなことを1ヶ月やってきたけど、新しいソネットモデルがこれらのツールを「より良い」と呼ぶために微調整されているのが新しい点なのか、それとも単に開発体験が改善されたのか? 彼らは4.5を微調整して、clear_tool_usesマーカーのツールを理解できるようにしたけど、未来のレスポンスの質が落ちることはないよ。ただし、キャッシュの無効化の影響は受けるから、どれだけ助けになるか評価が必要だね。

新しいコンテキスト編集とメモリAPIは、基本的に一般的なパターンの形式化だと思う。コンテキスト編集:メッセージ履歴の中でツール呼び出しの結果を置き換える(つまり、ファイルの出力をもう利用できないことを示すインジケーターに置き換える)。メモリ:LLMに.mdファイルを読み書きさせる、まるで仮想ファイルシステムみたいに。これらのツールの形式化は、サーバー上でメッセージ履歴を管理する方向に進んでいる気がする。つまり、ベンダーロックインが進むけど、APIのユーザーにとっては必ずしも大きな恩恵ではないかも(まあ、帯域幅やレイテンシは改善されるけど)。ChatGPTレスポンスAPIも同じような道を進んでいると思うし、これらの変更があるとプロバイダー間で透明に切り替えるのが難しくなるのが残念だな。

サーバー上でメッセージ履歴を管理することは、より良いベンダーロックインを意味する。コンテキストの管理は、非SOTAモデルでもローカルでできるはずだと思う。Claude-CLIで手動でメッセージを選択/選択解除する方法があればいいんだけど。

すべての指示と応答に有効/無効のチェックボックスがあったらいいのに。そうすれば会話の一部を無効にしてコンテキストから除外できるんだ。例えば、コードを提出したり作らせたりして、それを改善する作業をしているときに、ある時点でそのコードが最初のものよりかなり良くなったと考えたいんだ。そうすると、古いコードを含む最初のやり取りはコンテキストから削除できる。Google AI Studioのようにセクションを削除できるのが好きなんだ。そうすると、それはもうコンテキストの一部じゃなくなる。ClaudeやChatGPT、Geminiでは無理だと思うけど、あそこでは最後の応答しか削除できないんだよね。もしかしたらAIが無効にする部分を提案してくれるかもしれない。

これ、ウェブチャットのUIを使うときに半手動でやってるんだ(最近はあんまり使わなくなったけど)。基本的に、会話は合計で2メッセージ以上にはしないようにしてる(私からのメッセージ1つ + 返信1つ)。レスポンスの質がすぐに落ちちゃうからね。もし何か問題があったら、会話を再スタートして最初のプロンプトを直すようにしてる。ウェブUIで手動でプロンプトを書く代わりに、http://github.com/victorb/promptaを使ってプロンプトを管理してる。これで、欲しいレスポンスを得るためのベストな方法を見つけたら簡単にプロンプトを編集できるし、ログやソースコード、ドキュメントなどを自動的に含めるためのシンプルなシェル統合もあるんだ。

それに関連して、AI Studioは大人扱いしてくれる唯一のメインストリームLLMフロントエンドって感じがする。自分の安全基準を選べるし、コンテキストやシステムプロンプトを自由に変更できる。レート制限や価格もクリアだし。これって、今はGoogleのモデルが特にSOTAじゃない時期でも、すごくありがたく感じるんだよね。

スタックの末尾から削除する機能は導入されたけど、先頭からは削除できないんだよね。

俺はいつもCCを出て再起動して、「今の宇宙を新鮮な視点で見る」ようにしてるんだ。

Google AI Studioがセクションを削除できるのが好きなんだよね。そうすると、その部分はもうコンテキストの一部じゃなくなるから。ClaudeやChatGPT、Geminiではできないと思うけど、あれは最後のレスだけ削除できるだけだよね。俺もそれが気に入らない。自由にコンテキストを編集できるのは、ほとんどのユーザーには直感的じゃないと見なされてるんだろうな。LLM製品は、そういう編集が意味を持たないクラシックなチャットUIの幻想を保ちたいんだと思う。ChatGPTとかにも、Google AI Studioにもっと似たプロモードやアドバンスモードがあればいいのに。

これに関して、すぐに何かリリースする予定だよ。もっと色々とね。

SolveItツールには、今後すべてのLLMツールに欲しいシンプルだけど素晴らしい機能があるんだ。それは、完全に編集可能なトランスクリプト。特に、前のLLMのレスポンスを編集できるんだ。これで、悪いレスポンスの影響を修正できるから、全体のやり取りをやり直す必要がないんだ。[0] https://news.ycombinator.com/item?id=45455719

Claude Codeのインターフェースでこれに気づいたんだけど、「残りのコンテキストが8%」になった後に大きなプロンプトを与えたら、警告が消えて、その後さらに20分間働き続けて「残りのコンテキストが10%」になった。でも、会話の履歴を圧縮する必要はなかった。10/10の素晴らしい機能だね。

古いツールの結果を自動的にコンテキストから削除することで、長い会話を可能にする。重要な情報をメモリに保存して精度を向上させ、次のエージェントセッションにその学びを持ち込む。面白いことに、最近これらの技術の個人的な使い方について話してたところなんだ(ツール出力の要約やメモリバックエンドとの消去)。これはClaude Code特有のものではないから、ツールラッパーを使って100%実装できるよ。しばらくこれをやってて、要約された古いツール出力をコンテキストから削除するのは大きな勝利なんだけど、まだレベル~0のコンテキストエンジニアリングだね。次にどのトリックを見つけるか楽しみだよ。

これ、めっちゃ面白い。まるで俺の使い方パターンをそのままネイティブにしたみたい。大好きだわ。

なんでクライアントサイドなの?何かを変更するたびに、全体のコンテキストを再アップロードしなきゃならないってこと?サーバーサイドに保存して、コンテキストの中の部分を入れ替えるためのAPIを提供する方がずっと効率的だと思うんだけど。もしLLMが何を入れ替えるかを決めるなら、クライアントの関与なしでもできるはずだよね。さらに良いのは、このAPIがプロバイダー間で標準化されていることだね。コンテキストの操作以外でも、コンテキストのセクションにラベルを付けたり、後で無視するセクションにキーワードを追加したりするフォーマットを標準化できればいいなと思う。そうすれば、すべてのLLMを同じように制御できる標準的なLoRAアダプターができると思う。これでエージェントは、コンテキスト自体を書き換えずにLLMを標準的に操作できるようになるはずだよ。