CLAUDE LABEN
VERSION — 8月10日に v2.1.227 が出ていました。新機能はなく、プラン判定と CI まわりの不具合修正が中心ですAUTO — 8月14日の既定化まで残り2日です。Pro・Max・Team で Claude Code の auto モードが既定で有効になりますCI — claude-code-action で allowed_non_write_users を指定すると GitHub ホストランナー上の Bash が全て失敗していた問題が直りましたBILLING — 期限切れトークンで開始したセッションが加入プランを取り違え、Max 利用者に使用クレジットの有効化を促していた不具合も解消していますSUNSET — 旧 Workbench と実験的プロンプトツール API の廃止は8月17日で、残り5日ですPRICE — Sonnet 5 のプロモ価格 $2/$10 per Mtok は8月31日までで、9月1日から $3/$15 per Mtok になりますVERSION — 8月10日に v2.1.227 が出ていました。新機能はなく、プラン判定と CI まわりの不具合修正が中心ですAUTO — 8月14日の既定化まで残り2日です。Pro・Max・Team で Claude Code の auto モードが既定で有効になりますCI — claude-code-action で allowed_non_write_users を指定すると GitHub ホストランナー上の Bash が全て失敗していた問題が直りましたBILLING — 期限切れトークンで開始したセッションが加入プランを取り違え、Max 利用者に使用クレジットの有効化を促していた不具合も解消していますSUNSET — 旧 Workbench と実験的プロンプトツール API の廃止は8月17日で、残り5日ですPRICE — Sonnet 5 のプロモ価格 $2/$10 per Mtok は8月31日までで、9月1日から $3/$15 per Mtok になります
記事一覧/API & SDK
API & SDK/2026-06-16上級

長時間エージェントのトークン肥大を context editing と memory tool で抑える

ツール結果が積み上がって入力トークンが膨らむ長時間エージェント向けに、context editing と memory tool を併用し、削減量を count_tokens で実測する手順を、自前バックエンド実装つきでまとめます。

Claude API116context editingmemory toolエージェント13トークン最適化3

プレミアム記事

個人開発で回している自動投稿のパイプラインで、リサーチ系のエージェントを一度動かしっぱなしにしてみたところ、20 回ほどツールを呼んだあたりで入力トークンが 7 万を超え、1 ターンごとの課金が無視できない額になっていました。中身を覗くと、原因の大半は「もう使い終わった web_search の結果」が会話履歴にそのまま残り続けていることでした。エージェントが長く動くほど、過去のツール結果がコンテキストを圧迫していく——これは私だけの話ではなく、ツールを多用するワークフロー全般に共通する課題だと思います。

Claude API には、この肥大化を二方向から扱う仕組みが用意されています。古いツール結果をサーバー側で消す context editing と、残したい情報をファイルに退避する memory tool です。役割が正反対なので、片方だけでなく組み合わせて使うのが実用的でした。以下では、この 2 つを最小構成から本番構成まで段階的に組み上げ、削減量を count_tokens で事前に測るところまで、自前実装のコードとともに追っていきます。

「消す」context editing と「残す」memory tool は役割が逆

最初に整理しておきたいのは、この 2 機能が解決する問題がまったく違うという点です。

context editing(clear_tool_uses_20250919)は、会話履歴が一定のしきい値を超えたときに、古いツール結果をサーバー側で自動的に削除します。削除された箇所にはプレースホルダーが差し込まれ、Claude は「ここに結果があったが消えた」と認識できます。つまり、もう参照しないであろう過去の検索結果やファイル読み込み結果を、こちらが手で切り詰めることなく落とせます。

一方 memory tool(memory_20250818)は、Claude が自分でファイルに書き込み・読み出しを行うためのクライアントサイドツールです。/memories ディレクトリに学んだことを保存し、次のセッションや context editing で履歴が消えた後でも、必要なときに読み戻せます。

この対比が肝心です。context editing だけだと、消したツール結果に含まれていた重要な発見も一緒に失われます。そこで「これは後で要る」という情報だけ memory に書いておけば、履歴は軽く保ちつつ知識は残せる、という両取りができます。どちらも beta ヘッダー context-management-2025-06-27 で有効化します。

clear_tool_uses を最小構成で有効にする

まずは context editing だけを、いちばん素直な形で入れてみます。context_management に edit を 1 つ渡すだけです。

import anthropic
 
client = anthropic.Anthropic()
 
response = client.beta.messages.create(
    model="claude-opus-4-8",
    max_tokens=4096,
    messages=[{"role": "user", "content": "最近の AI エージェント研究を調べて要約してください"}],
    tools=[{"type": "web_search_20250305", "name": "web_search"}],
    betas=["context-management-2025-06-27"],
    context_management={"edits": [{"type": "clear_tool_uses_20250919"}]},
)

実際に消去が走ったかどうかは、レスポンスの context_management.applied_edits を見れば分かります。ここを確認せずに「効いているはず」と思い込むと、しきい値に届いていないだけで一度も発火していなかった、という見落としをしがちです。

applied = getattr(response, "context_management", None)
if applied and applied.applied_edits:
    for edit in applied.applied_edits:
        print(f"消去したツール呼び出し: {edit.cleared_tool_uses} 件 / "
              f"削減トークン: {edit.cleared_input_tokens}")
else:
    print("今回は消去なし(しきい値未達)")

最小構成では trigger を省略しているのでデフォルトのしきい値で動きます。短い会話では一度も発火しないのが正常です。発火しないこと自体は異常ではないので、ログで件数を見ながら次のチューニングに進みます。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
clear_tool_uses_20250919 の trigger / keep / clear_at_least / exclude_tools を実運用でどう決めるか
memory tool のバックエンドをパストラバーサル保護つきで自前実装する動くコード
count_tokens で削減トークン量を push 前に実測する手順
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

API & SDK2026-06-30
ツール出力が大きすぎてコンテキストを溶かす問題 — カーソルで小分けに返すページング設計
一覧系のツールが数百件をそのまま返すと、エージェントのコンテキストは一回の呼び出しで溶けます。カーソルベースのページングでツール出力を小分けに返し、トークン予算を守る設計を実装コード付きで解説します。
API & SDK2026-06-29
ツールが返す画像を Claude に「見せる」 — tool_result を画像ブロックにしてトークンを約10分の1にする
ツールが返した画像を tool_result に文字列で詰めると、同じ画像が約10〜20倍のトークンを消費します。image コンテンツブロックとして返す正しい組み立て方と、SDK 実装・コスト見積もり・落とし穴を実コードでまとめました。
API & SDK2026-05-06
Claude API で実装する自律リサーチエージェント: Web検索・要約・知識管理の完全システム設計
技術調査を任せられる自律リサーチエージェントをClaude APIとWeb検索ツールで組み立てる設計を紹介します。エージェントループの制御、信頼できる情報だけを通す品質保証レイヤー、知識ベースへの格納、3層の予算制御と暴走防止まで、個人開発者が本番で運用できる構成を通しで解説します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →