いずみこんな悩みを解決できる記事を書きました!
僕は現役фリーランスエンジニア(歴10年)で、資格は13個保有しています。
「Claude APIで長くなった会話のトークンを自動で減らしたい」とお考えではありませんか?
エージェントのようにツールを何度も呼び出す処理では、過去のツール結果が積み上がってトークン数と料金がふくらみます。
Claude APIのContext Editingを使うと、古いツール結果をサーバー側で自動的に削除してトークンを節約できます。



会話履歴を自前で削る仕組みを書かなくて済むので、実装がかなり楽になります。
ということで、本記事ではClaude APIのContext Editingでトークンを削減する方法を解説します。



すぐ読み終わるので、ぜひ最後まで読んでくださいませ。
| 【当サイト】おすすめフリーランスエージェント3選 | |||
|---|---|---|---|
| エージェント | 評価 | ポイント | 公式サイト |
レバテックフリーランス | 5.0 | 業界最大級のエージェント。 高単価案件が豊富。 | 公式 |
Midworks | 4.8 | 満足度調査で 3年連続3冠を達成。 | 公式 |
ITプロパートナーズ | 4.6 | 週2〜3向けの案件が豊富。 | 公式 |
【AI】Claude APIのContext Editingでトークンを削減する方法
早速ですが、Claude APIのContext Editingでトークンを削減する方法を解説します。
Context Editingとは
Context Editingは、会話のトークン数が一定のしきい値を超えたときに、古いツールの実行結果をサーバー側で自動的に取り除くベータ機能です。
取り除かれた結果はプレースホルダーのテキストに置き換わり、モデルには結果が削除された事実だけが伝わります。
会話履歴そのものはクライアント側で保持したまま、APIへ送るリクエストだけが圧縮されるイメージです。
ファイル読み込みやWeb検索の結果など、一度モデルが処理したあとは不要になりやすい内容を減らす用途に向いています。



長時間動くリサーチや、コード生成を延々と続けるエージェントほど効果が出ます。
有効化に必要なもの
Context Editingを使うには、2つの準備が必要です。
beta.messages.create を呼び出し、betas に context-management-2025-06-27 を渡します。
betas=["context-management-2025-06-27"]edits の配列に、clear_tool_uses_20250919 という戦略を1つ入れます。



具体的なコードは次のセクションで解説します。
基本的な使い方(コード付き)
最小構成のコードを見てみます。
import anthropic
client = anthropic.Anthropic()APIキーは環境変数 ANTHROPIC_API_KEY から読み込まれます。
response = client.beta.messages.create(
model="claude-sonnet-5",
max_tokens=4096,
messages=messages,
tools=tools,
betas=["context-management-2025-06-27"],
context_management={
"edits": [
{"type": "clear_tool_uses_20250919"}
]
},
)戦略の type だけを指定すると、残りの設定はすべてデフォルト値で動きます。



まずはデフォルトのまま試して、効き具合を見るのがおすすめです。
for edit in response.context_management.applied_edits:
print(edit.type, edit.cleared_tool_uses, edit.cleared_input_tokens)applied_edits には、削除したツール結果の数と、減らせた入力トークン数が入ります。
削除が発生しなかったリクエストでは applied_edits は空になります。
主要なパラメータ
clear_tool_uses_20250919 には、削除の挙動を調整するパラメータがあります。
trigger… 削除を開始する条件。デфォルトは入力トークンが100,000に達したときkeep… 削除せずに残す直近のツール結果ペアの数。デフォルトは3clear_at_least… 1回の削除で最低限クリアするトークン数exclude_tools… 削除対象から外すツール名の配列(例:web_search)clear_tool_inputs… true にすると、ツール結果だけでなくツール呼び出しの引数も削除する
context_management={
"edits": [
{
"type": "clear_tool_uses_20250919",
"trigger": {"type": "input_tokens", "value": 30000},
"keep": {"type": "tool_uses", "value": 3},
"clear_at_least": {"type": "input_tokens", "value": 5000},
"exclude_tools": ["web_search"],
}
]
}上の設定では、入力トークンが30,000を超えると古いツール結果を削除し、直近3ペアを残し、1回あたり最低5,000トークンを削減します。
exclude_tools に web_search を指定しているため、Web検索の結果だけは削除されずに残ります。
プロンプトキャッシュとの関係
ツール結果を削除すると、削除した位置より前のプロンプトキャッシュは無効になります。
無効化のたびにキャッシュ書き込みのコストが発生するため、少量ずつ頻繁に削除すると逆効果になりやすいです。
clear_at_least でまとめて削除する量を確保すると、キャッシュを作り直すコストに見合いやすくなります。



プロンプトキャッシュを併用しているなら、削除の頻度とサイズのバランスが大事です。
事前に削減量を見積もる
count_tokens にも同じ context_management を渡せます。
count = client.beta.messages.count_tokens(
model="claude-sonnet-5",
messages=messages,
tools=tools,
betas=["context-management-2025-06-27"],
context_management={
"edits": [{"type": "clear_tool_uses_20250919"}]
},
)
print(count.input_tokens)実際にメッセージを送る前に、削減後の入力トークン数を確認できます。
thinkingブロックも削除する
拡張思考を使っている場合は、clear_thinking_20251015 という戦略も指定できます。
過去のthinkingブロックを何ターン分残すかを keep で決め、古い思考は削除します。
2つの戦略を併用するときは、edits の配列で clear_thinking_20251015 を先に並べます。
context_management={
"edits": [
{"type": "clear_thinking_20251015", "keep": {"type": "thinking_turns", "value": 2}},
{"type": "clear_tool_uses_20250919"},
]
}


thinkingブロックを残すとキャッシュヒットが効きやすく、削除するとコンテキストの空きが増えます。
| 【当サイト】おすすめフリーランスエージェント3選 | |||
|---|---|---|---|
| エージェント | 評価 | ポイント | 公式サイト |
レバテックフリーランス | 5.0 | 業界最大級のエージェント。 高単価案件が豊富。 | 公式 |
Midworks | 4.8 | 満足度調査で 3年連続3冠を達成。 | 公式 |
ITプロパートナーズ | 4.6 | 週2〜3向けの案件が豊富。 | 公式 |
【厳選】フリーランスエンジニアにおすすめなエージェント3選


フリーランスエンジニアになるにはエージェントから案件をもらう必要があります。
僕が実際に利用しているおすすめエージェントを紹介しますね。



エージェントは必ず複数登録してください。
担当者によっては「全然案件紹介してくれない…」みたいなこともあるので…
僕は実際に5つのエージェントを使い回していますよ。
フリーランスを始めるなら「レバテックフリーランス


」
- 業界最大級の案件数。
- 業界トップクラスの高単価報酬、低マージン(平均年収862万円)。
- 案件参画中のフォローの充実。
※詳細は「【業界最大手】レバテックフリーランスとは?メリットや利用手順を解説!」を参照。
レバテックフリーランス
![]()
![]()
とにかく案件数が多いので、とりあえず登録しておけば間違いないエージェントです!



僕もはじめてフリーランスの案件を貰ったのはレバテックフリーランス
![]()
![]()
保有している案件数が多いので、業務経験がなくても何かしらの案件は紹介してもらえますよ(僕はJavaの経験3年でも案件を貰えました)。
手厚い保障を重視したいなら「Midworks


」
- 手厚い保障で正社員並みの安心感。
- 還元率60%超え&単価公開でクリアな契約。
- 給与保障制度(審査あり)。
Midworks
![]()
![]()
フリーランスを目指しているけど不安な方や保障を重視したい方におすすめです。



僕も何度か案件を紹介してもらいました。
自分のスキルに合った案件を紹介してもらえましたし、電話のやり取りも非常に丁寧でした。
週2〜3日の案件探しなら「ITプロパートナーズ


」
- IT案件に特化したフリーランスエージェント。
- 週2〜3日の案件が豊富。
- リモート案件が多く、直エンドなので単価も高い。
※詳細は「【週2・3案件】ITプロパートナーズとは?メリットや利用手順を解説!」を参照。
ITプロパートナーズ
![]()
![]()
週2〜3日から参画できる案件が豊富なので、起業したい人にもおすすめです。



週2〜3日の案件はある程度スキルがないと紹介してもらえない印象です。
とはいえ、週5の案件ももちろんありますし、僕が利用した時は迅速・丁寧に対応していただきました!
よくある質問
Context Editingは通常のmessages.createでも使えますか?
beta.messages.create とベータヘッダー context-management-2025-06-27 が必要です。
通常の messages.create では context_management パラメータは受け付けられません。
会話履歴は自分で更新する必要がありますか?
不要です。
削除はサーバー側だけで行われるため、次のリクエストでもフルの会話履歴をそのまま送れば問題ありません。
どのモデルで使えますか?
Claude Opus 5、Sonnet、Haikuなど、現行のClaudeモデルで利用できます。
プロンプトキャッシュと併用して大丈夫ですか?
併用できますが、ツール結果を削除した時点で削除位置より前のキャッシュは無効になります。
clear_at_least で一度に削る量を確保すると、キャッシュ作り直しのコストに見合いやすくなります。
まとめ
今回は、Claude APIのContext Editingでトークンを削減する方法について解説しました。
以下が本記事のまとめになります。



最後までお読みいただき、ありがとうございました!
| 【当サイト】おすすめフリーランスエージェント3選 | |||
|---|---|---|---|
| エージェント | 評価 | ポイント | 公式サイト |
レバテックフリーランス | 5.0 | 業界最大級のエージェント。 高単価案件が豊富。 | 公式 |
Midworks | 4.8 | 満足度調査で 3年連続3冠を達成。 | 公式 |
ITプロパートナーズ | 4.6 | 週2〜3向けの案件が豊富。 | 公式 |
- クソおすすめ本



海外のエンジニアがどういった思考で働いているかが理解できます。
海外に行く気はないけど海外エンジニアの動向が気になる雑魚エンジニアにおすすめです(本当におすすめな本しか紹介しないのでご安心を)。








