3行でいうと
- 履歴が長くなるのを放っておくと、上限に近づくだけでなく、精度も下がると公式が書いている。
- Claudeには、要約に置き換える「圧縮」、古い道具の結果などを消す「コンテキスト編集」、外のファイルに書く「メモリツール」がある。
- OpenAIは、しきい値を超えると自動で圧縮する機能と、自分で呼ぶ圧縮の窓口を用意している。
- 圧縮はどの会社でも、何を残すかをAIの要約に任せるため、大事な細部が落ちることがある。
この記事は、実際に使って確かめた記録ではありません。この記事は公式の文書を読んでまとめたものです。ここに出てくる機能の多くは、ベータ版(試験提供)と書かれています。内容は2026年10月22日に確認したもの(圧縮の概要ページだけ、10月8日のまま)で、変わることがあります。
先に結論
- 会話が長くなったら、最初に考えるのは「どの部分が、もう要らないか」です。全部を残すか、全部を要約するかの二択ではありません。
- 公式文書の整理を読むと、手段は次の3つに分かれます。
| 手段 | 何をするか | 失うもの |
|---|---|---|
| 切る(編集) | 古い道具の結果などを、ルールで消す | 消した内容そのもの |
| 要約する(圧縮) | 古い履歴を、AIが書いた要約に置き換える | 要約に入らなかった細部 |
| 外に出す(メモリ) | 大事なことをファイルに書き、必要なときに読み戻す | 読み戻し忘れ、書き忘れ |
- Anthropicの文書は、長い会話の主な手段はサーバー側の圧縮、細かく制御したい場面ではコンテキスト編集、と位置づけています。見立てです。まず圧縮を試し、消してよい物が明らかなら編集を足す、という順番が現実的に見えます。
前提:なぜ長くなると困るのか
- コンテキストウィンドウは、AIが一度の返答のために見られる全部の量(トークンで数える)です。Claudeの文書では、システムの指示、すべてのメッセージ(道具の結果、画像、文書を含む)、道具の定義、そしてAIが書く返答と思考の分まで、全部がこの枠に入ると書かれています。Claudeの新しいモデルの多くは、この枠が100万トークンです。
- トークンはAIが読み書きする文字の量を数える単位です(詳しくは別記事「トークナイザーとBPE」)。
- 毎ターン、履歴の全部が入力として送り直されます。OpenAIの文書は、
previous_response_id(前の応答をつないで続ける仕組み)を使っても、つながった前の入力トークンはすべて入力として課金される、と書いています。つまり、会話が長いほど、1回ごとの入力が大きくなり、料金も増えます。
僕らの計算です。1ターンごとに履歴が2,000トークンずつ増える会話を50ターン続けるとします。ターン番号をkとすると、そのターンの入力はおよそ2,000×kトークンです。合計は2,000×(1+2+…+50)で、約255万トークンの入力になります。Claude Sonnet 5.5の入力料金(100万トークンあたり2ドル、2026年10月22日確認)で、約5.1ドルです。同じ内容が50回に分けて送られるのではなく、増えた分が毎回また送られるため、合計は階段状に膨らみます。プロンプトキャッシュ(同じ前置きを安く読む仕組み)を使うと変わりますが、ここでは含めていません。
さらに、量だけでなく精度の問題があります。Claudeの文書は、トークン数が増えると正確さと再現(思い出す力)が落ちる現象を「コンテキストロット」と呼んでいます。Anthropicの技術ブログ(2025年9月29日)も、針探し形式のベンチマークの研究で、トークンが増えるほど文脈から正確に思い出す力が落ちることが分かってきた、と書いています。どのモデルでも出るが、落ち方はモデルによって穏やか、とも書いています。長さの研究そのものは、別記事「長いコンテキストの実力」で扱います。
方法1:切る(Claudeのコンテキスト編集)
コンテキスト編集は、履歴の中から特定の内容を、サーバー側のルールで消す機能です(ベータ版。ヘッダー context-management-2025-06-27)。Claudeの文書によると、2種類の戦略があります。
- 道具の結果を消す(
clear_tool_uses_20250919):古い道具の結果を、古いものから順に消します。消した場所には、「消した」と伝える代わりの文字が入ります。標準では結果だけを消し、道具を呼んだ記録(入力)は残します。 - 思考ブロックを消す(
clear_thinking_20251015):拡張思考(AIが考えた過程の記録)を使うときの履歴を整理します。
設定項目は、文書に次のとおりです。
| 設定 | 既定値 | 意味 |
|---|---|---|
trigger |
入力10万トークン | これを超えたら消し始める |
keep |
道具の使用3組 | 消したあとに残す、新しい側の使用の数 |
clear_at_least |
なし | 一度に最低これだけ消す。消せない場合は実行しない |
exclude_tools |
なし | 絶対に消さない道具の名前 |
clear_tool_inputs |
false | trueにすると、道具を呼んだ入力も消す |
Claudeの文書は、編集がサーバー側で、プロンプトがAIに届く前に行われること、手元の完全な履歴はそのまま持ち続けてよいこと(同期しなくてよい)を述べています。
キャッシュとの関係に注意が必要です。 文書は、道具の結果を消すと、プロンプトキャッシュの前置きが無効になる、と書いています。そのため、clear_at_least で「消す価値のある量」をまとめて消すよう勧めています。消すたびにキャッシュの書き込み料金がかかるが、そのあとの要求は新しい前置きを再利用できる、という説明です。
方法2:要約する(圧縮)
Claudeの圧縮(compaction)
圧縮は、古いターンを、サーバー側でClaudeが書いた要約に置き換える機能です。文書は、要約を自分で書くコードが要らず、会話を枠に収め、有効な文脈を小さく保つ、と説明しています。2種類あり、どちらもベータ版です。
| オンデマンド圧縮 | しきい値圧縮 | |
|---|---|---|
| いつ決めるか | アプリが、要約を頼む要求を送ったとき | 入力が設定値に達したとき、APIが自動で |
| ベータヘッダー | compact-2026-09-04 |
compact-2026-01-12 |
| 書くコード | 要約を頼む・差し替える処理 | 通常の要求にパラメーターを1つ足す |
| 直近のターンを原文のまま残す | できる(専用の使い方がある) | 圧縮後に一時停止して、自分で入れ直す |
| 背景で実行 | できる(専用のページがある) | 読んだ範囲では書かれていない(その要求の中で実行される) |
オンデマンド圧縮の対応基盤の一覧には、Amazon Bedrockは入っていません(しきい値圧縮の一覧には入っています)。
しきい値圧縮の主な設定は次のとおりです。
trigger:既定は入力150,000トークン。入力トークンが唯一の種類で、値は最低でも50,000トークン。pause_after_compaction:既定false。要約を作ったあとで一時停止するか。instructions:要約の指示文。書くと、標準の指示文を補うのではなく、完全に置き換えます(文書の記述)。
標準の要約は、続きを進めるための状態、次の手順、学んだことなどを、<summary> の中に書かせる指示だと、文書に載っています。
公式文書のしきい値圧縮の最小例
公式文書の例です。この記事では、実行していません。
client = anthropic.Anthropic()
messages = [{"role": "user", "content": "Help me build a website"}]
response = client.beta.messages.create(
betas=["compact-2026-01-12"],
model="claude-opus-5-5",
max_tokens=4096,
messages=messages,
context_management={"edits": [{"type": "compact_20260112"}]},
)
# 応答(要約のブロックを含む)を履歴に足して続ける
messages.append({"role": "assistant", "content": response.content})
ポイントは、返ってきた応答を、そのまま履歴に足すことです。文書によれば、次の要求では、要約のブロックより前の内容を、APIが自動で捨てます。
OpenAIの圧縮
OpenAIの文書には2つの方法があります。
- サーバー側の圧縮:Responses APIの要求に
context_managementとcompact_thresholdを入れます。トークン数がしきい値を超えると、サーバーが圧縮し、暗号化された圧縮アイテムを同じ流れの中で返します。公式の例では、しきい値は200,000トークンです。このアイテムは、人が読める形ではない(不透明)と書かれています。 - 単独の圧縮窓口(
/responses/compact):全文脈を送ると、圧縮された新しい文脈が返ります。この窓口は状態を持たず、返ってきた窓を、そのまま次の要求に渡します。
どちらでも、「圧縮アイテムは中身が読めない」点が、Claudeの要約(読めるテキスト)と違います。文書はClaudeの圧縮ブロックについて、要約は読めるテキストと署名からなる、と書いています。この違いは、要約の中身を確かめたいか、という運用上の選び方に影響すると思います(見立てです)。
方法3:外に出す(メモリ)
- Claudeのメモリツールは、AIが
/memoriesというディレクトリのファイルに書いて、後から読み戻す仕組みです。文書によれば、このツールはクライアント側で動きます。AIがファイル操作を頼み、アプリが自分の保存先で実行する形です。「必要なときに読み戻す」ことで、一度に抱える量を減らします。 - Anthropicの技術ブログは、同じ考えを「構造化されたメモ」と呼び、
NOTES.mdのようなファイルに進み具合を書く例を挙げています。さらに、役割を分けた小さなエージェント(サブエージェント)に作業をさせ、結果の要約だけを親に返す方法も紹介しています。
選び方の考え方(見立てです)
見立てです。ブログが整理した使い分けを、僕らなりに読み替えたものです。
| 場面 | 向いていそうな手段 |
|---|---|
| やり取りが長く続くチャット | 圧縮(会話の流れを保てる) |
| 道具の結果が大量に積もるエージェント | 道具の結果の編集、または道具の呼び出しの工夫 |
| 区切りのある反復作業(開発など) | メモのファイル、メモリツール |
| 並列に調べる複雑な調査 | サブエージェント |
ブログの対応も、圧縮は会話の流れが大事な作業、メモは節目のある反復的な開発、複数エージェントは並列の探索が効く複雑な調査、という整理でした。
道具の定義や結果が重いときは、Claudeの「Manage tool context」の文書が、4つの手段を挙げています。道具検索(定義を必要時に読み込む)、プログラムによる道具呼び出し(途中結果を履歴に入れない)、プロンプトキャッシュ(払う料金を下げる)、コンテキスト編集(古い結果を消す)です。キャッシュはトークンの数を減らさず、課金を減らすもの、と書かれています。
つまずきやすい点
- 圧縮は要約なので、落ちる情報がある。 Anthropicのブログは、圧縮をやりすぎると、後で重要になる細かい文脈が失われうる、と書いています。要約の指示文は、複雑な作業の記録で調整し、まず取りこぼしを減らす方向で作り、そのあと不要な内容を削る、という順番を勧めています。
- 指示文は置き換え。 Claudeの
instructionsは、標準の指示を補うのではなく置き換えます。標準が持っていた「次の手順を書く」などを、自分で書き直す必要があります。 - キャッシュが切れる。 編集で古い結果を消すと、前置きのキャッシュが無効になります。少しずつ消すより、まとめて消すほうが得になることがあります。
- 思考ブロックの扱い。 新しい世代のモデルでは、思考ブロックの有効性に条件があり、圧縮の組み合わせにも決まりがあります。文書に専用の項目があるので、思考を使う場合は読んでください。
- OpenAIの
previous_response_idを使っているときは、手で履歴を刈り込まない。 文書は、入力を自分で連結している場合は、最新の圧縮アイテムより前の項目を落としてよいが、previous_response_idでつないでいるなら手で刈らないこと、と書いています。
気をつけること
- この記事は、実際に使って確かめた記録ではありません。上記は公式文書の説明です。
- Claudeの圧縮とコンテキスト編集は、文書でベータ版と書かれています。ベータヘッダー名、対応モデル、対応する基盤(AWS、Google Cloud、Microsoft Foundryなど)は、変わりやすい点です。
- OpenAIの圧縮の例のモデル名は、文書内の例(
gpt-5.3-codex、gpt-6-astra)で、すべてのモデルが対応するかは確認できていません。 - 圧縮後の品質、要約でどのくらい情報が落ちるかの具体的な数字は、読んだ文書にはありません。
- 上のターン数と料金の計算は、仮の数字による僕らの試算です。実際の金額ではありません。
- 料金は2026年10月22日の確認で、変わることがあります。
- 圧縮の概要ページ(Compaction overview)は、10月22日に取り直していません。オンデマンド圧縮としきい値圧縮の各ページ(どちらも10月22日に読めました)の記述と食い違いは見つかりませんでしたが、概要ページ自体の記載は10月8日のままです。
出典
- Context windows(Claude Platform Docs、Anthropic、2026年10月22日確認)
- Compaction overview(Claude Platform Docs、Anthropic、2026年10月8日確認)
- Compaction at a token threshold(Claude Platform Docs、Anthropic、2026年10月22日確認)
- Compaction on demand(Claude Platform Docs、Anthropic、2026年10月22日確認)
- Context editing(Claude Platform Docs、Anthropic、2026年10月22日確認)
- Memory tool(Claude Platform Docs、Anthropic、2026年10月22日確認)
- Manage tool context(Claude Platform Docs、Anthropic、2026年10月22日確認)
- Pricing(Claude Platform Docs、Anthropic、2026年10月22日確認)
- Effective context engineering for AI agents(Anthropic Engineering、2025年9月29日、2026年10月22日確認)
- Compaction(OpenAI API docs、OpenAI、2026年10月22日確認)
- Conversation state(OpenAI API docs、OpenAI、2026年10月22日確認)
更新履歴
-
2026年10月25日 書き方を直しました。
- 前:運営者が使っていないと読める書き方 → いま:「この記事は、実際に使って確かめた記録ではありません」。公式の資料を読んでまとめた記事で、使い心地は書いていない、という意味に直した
-
2026年10月22日 公式の資料を読み直して、次の点を直しました。
- 前:Amazon Bedrockでは、オンデマンド圧縮は「利用できない」と書かれている → いま:オンデマンド圧縮の対応基盤の一覧に入っていない(しきい値圧縮の一覧には入っている)
- 前:しきい値圧縮は、背景で実行「できない」 → いま:読んだ範囲では書かれていない(その要求の中で実行される)
- 前:圧縮の概要ページを含め、すべて10月8日に確認 → いま:概要ページだけ10月22日に取り直しておらず、10月8日のまま
- 一部の出典は読めなかったため、その部分は前のままです。
