3行でいうと

  • 履歴が長くなるのを放っておくと、上限に近づくだけでなく、精度も下がると公式が書いている。
  • Claudeには、要約に置き換える「圧縮」、古い道具の結果などを消す「コンテキスト編集」、外のファイルに書く「メモリツール」がある。
  • OpenAIは、しきい値を超えると自動で圧縮する機能と、自分で呼ぶ圧縮の窓口を用意している。
  • 圧縮はどの会社でも、何を残すかをAIの要約に任せるため、大事な細部が落ちることがある。

この記事は、実際に使って確かめた記録ではありません。この記事は公式の文書を読んでまとめたものです。ここに出てくる機能の多くは、ベータ版(試験提供)と書かれています。内容は2026年10月22日に確認したもの(圧縮の概要ページだけ、10月8日のまま)で、変わることがあります。

先に結論

手段 何をするか 失うもの
切る(編集) 古い道具の結果などを、ルールで消す 消した内容そのもの
要約する(圧縮) 古い履歴を、AIが書いた要約に置き換える 要約に入らなかった細部
外に出す(メモリ) 大事なことをファイルに書き、必要なときに読み戻す 読み戻し忘れ、書き忘れ

前提:なぜ長くなると困るのか

僕らの計算です。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種類の戦略があります。

設定項目は、文書に次のとおりです。

設定 既定値 意味
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は入っていません(しきい値圧縮の一覧には入っています)。

しきい値圧縮の主な設定は次のとおりです。

標準の要約は、続きを進めるための状態、次の手順、学んだことなどを、<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つの方法があります。

どちらでも、「圧縮アイテムは中身が読めない」点が、Claudeの要約(読めるテキスト)と違います。文書はClaudeの圧縮ブロックについて、要約は読めるテキストと署名からなる、と書いています。この違いは、要約の中身を確かめたいか、という運用上の選び方に影響すると思います(見立てです)。

方法3:外に出す(メモリ)

選び方の考え方(見立てです)

見立てです。ブログが整理した使い分けを、僕らなりに読み替えたものです。

場面 向いていそうな手段
やり取りが長く続くチャット 圧縮(会話の流れを保てる)
道具の結果が大量に積もるエージェント 道具の結果の編集、または道具の呼び出しの工夫
区切りのある反復作業(開発など) メモのファイル、メモリツール
並列に調べる複雑な調査 サブエージェント

ブログの対応も、圧縮は会話の流れが大事な作業、メモは節目のある反復的な開発、複数エージェントは並列の探索が効く複雑な調査、という整理でした。

道具の定義や結果が重いときは、Claudeの「Manage tool context」の文書が、4つの手段を挙げています。道具検索(定義を必要時に読み込む)、プログラムによる道具呼び出し(途中結果を履歴に入れない)、プロンプトキャッシュ(払う料金を下げる)、コンテキスト編集(古い結果を消す)です。キャッシュはトークンの数を減らさず、課金を減らすもの、と書かれています。

つまずきやすい点

気をつけること

出典

更新履歴