Claude APIに「任意のタイミングで会話を圧縮する」オンデマンド圧縮(ベータ)──署名付きの要約ブロックを返し、直近の会話は原文のまま残せる。しきい値型との違い、課金の見方、失敗時の挙動
Anthropicは2026年9月14日、Messages APIに「compact-2026-09-04」ベータを追加した。これまでの圧縮(compaction)は入力トークンがしきい値(5万以上)に達したときAPIが会話の途中で自動要約する方式だったが、新方式では開発者が好きなタイミングで`compaction: {"type": "summarize"}`を送ると、署名付きの要約ブロックだけが返り、次の要求からそれを先頭に置いて古いメッセージと差し替える。要約はバックグラウンドで走らせながら会話を続けられ、直近のターンを原文のまま残せる(keep-tail)。思考を保持するモデルでは、残したターンの思考が要約後も有効なまま続く。Claude API限定でBedrock・Google Cloudでは使えず、対応はFable 5.1・Mythos 5.1・Opus 5・Sonnet 5など11モデル。要約の呼び出しは`usage.iterations`に別立てで課金される。

目次
2026年9月18日未明・日本時間時点の情報です。 AnthropicのClaude APIに、会話の圧縮(compaction)を開発者が任意のタイミングで頼める方式がベータで加わった。リリースノートの日付は9月14日。長いエージェント作業でコンテキストが埋まる問題への「サーバー側の要約」は以前からあったが、今回は「いつ要約するか」「要約中に会話を止めるか」「直近の会話を原文で残すか」を開発者が決められる。OpenAIが9月10日のAgents APIで「圧縮はハーネスがやる」と打ち出したのと同じ週に、Anthropicは「圧縮の主導権を開発者に返す」形で出している。本記事は公式ドキュメントの記述を、方式の違い・手順・課金・失敗時の順に整理する。
3行まとめ
- 2方式になった。 従来のしきい値型(
compact-2026-01-12ベータ)は、入力トークンが設定値(5万以上)に達すると要求の途中でAPIが自動要約する。新しいオンデマンド型(compact-2026-09-04ベータ)は、好きな要求にcompaction: {"type": "summarize"}を付けると、返事は生成せず署名付きの要約ブロックだけがstop_reason: "compaction"で返る。- 3つできるようになる。 ①要約する時点を自分で決める ②要約要求をバックグラウンドで走らせ、届いたら差し替える(会話は全履歴のまま続く)③直近のターンを原文のまま残す(要約要求に古いターンだけを送る)。思考を保持するモデルでは、残したターンの思考が要約後も有効なまま続くための条件が明記されている。
- 条件。 Claude API限定(Amazon Bedrock・Google Cloudでは不可)。対応はFable 5.1・Mythos 5.1・Fable 5・Mythos 5・Mythos Preview・Opus 5・Opus 4.8/4.7/4.6・Sonnet 5・Sonnet 4.6の11モデル。要約は要求と同じモデルで行われ(安いモデルに切り替える選択肢は無い)、その呼び出しは
usage.iterationsにcompactionとして別立てで計上・課金される。トップレベルのinput_tokensには含まれない。
しきい値型とオンデマンド型の違い
| しきい値型(従来) | オンデマンド型(9月14日追加) | |
|---|---|---|
| ベータヘッダ | compact-2026-01-12 |
compact-2026-09-04 |
| いつ要約するか | 入力トークンがtriggerの値(5万以上)に達したとき、要求の途中で自動 |
開発者がcompactionパラメータを付けた要求で、その時に |
| 返るもの | 要約のcompactionブロック+その続きの返事 |
要約ブロックだけ(返事は生成しない) |
| 会話を止めるか | 要約中はその要求が待つ | 別要求なのでバックグラウンドで可。会話は全履歴のまま進める |
| 直近ターンの扱い | 要約に含まれる | 要約要求に送らなければ原文のまま残る(keep-tail) |
| 提供 | Claude API・Bedrock・Google Cloud・Foundry(ベータ) | Claude APIのみ |
| 併用 | — | 同一要求でcontext_managementとは併用不可。署名付きブロックを持つ要求でしきい値型は動かない |
ドキュメントの使い分けはこうである。「通常の要求の中でAPIに文脈管理を任せたいならしきい値型。いつ圧縮するかをアプリが制御する必要がある、要約の間に止まれない、要約後も直近のターンとその思考を残したいならオンデマンド型」。
手順──要約を頼み、差し替え、以後は先頭に置く
- 要約を頼む。 会話をそのまま送り、
"compaction": {"type": "summarize"}を付け、ヘッダanthropic-beta: compact-2026-09-04を付ける。APIは送られたすべてのメッセージを1回要約し、返事は生成せず、compactionブロック(contentに要約文、signatureに署名)をstop_reason: "compaction"で返す。system・tools・思考の設定・max_tokensは要求のものが使われ、要約器はツール定義を読むが実行はしない - 差し替える。 履歴のうち要約要求に送ったメッセージを、返ってきたassistantメッセージ(署名ごとそのまま)に置き換える。以後の要求では、このブロックを
messagesの先頭に置き、毎回ベータヘッダを付ける - 原文で残したいターンは送らない。 APIは送られたものを全部要約するので、古いターンだけを送り、返ったブロックを残したターンの前に置く
- バックグラウンドで走らせた場合。 要約中に会話が進んでいたら、要約要求に送った件数ぶんだけ履歴の先頭から落とし、ブロックを置き、それ以降に足したものは残す。要約要求を送ってから差し替えるまで履歴を編集せず、ブロックが届いた最初の要求で差し替える──そうすると要約中に生成された思考が有効なまま残る
ドキュメントの規則を写す。ブロックは先頭(単独のassistantメッセージか、最初のメッセージの最初のブロック)に置く。要約済みのメッセージがブロックより前に残っていると400エラー(compaction_block_misplaced)、後ろに残っているとエラーにはならないがモデルにもう一度送られる。ブロックは要求ごとにちょうど1つ。既にブロックで始まる会話をもう一度圧縮すると、新しいブロックが古い要約とその後を全部まとめ、以後は最新のブロックだけを送る。
思考を残す条件
思考を保持するモデル(preserved thinking)では、要約後に残したターンの思考ブロックが有効なままになる条件が2つ書かれている。①残したターンが要約したメッセージの直後に続いていること ②systemと、defer_loading: trueでないツールが要約要求から変わっていないこと。①は「最後に要約したメッセージと同じroleの先頭メッセージ」やrole: "system"のメッセージが先頭に来る場合を除外する。モデルやsystemやtoolsを後で変えてもブロック自体は受け付けられるが、残したターンの思考は無効になりうる、とある。
課金と、要約が返ってこないとき
要約の呼び出しは追加のサンプリングで、レート制限と課金の対象。応答のusage.iterationsに{"type": "compaction", ...}として別立てで載り、トップレベルのinput_tokens/output_tokensには含まれない。コスト集計をusage.input_tokensに頼っていたコードは、iterationsを合算するよう直す必要があるとドキュメントは注意している。オンデマンド型の例では、要約要求の応答はトップレベルが0・0で、iterationsに入力144・出力276と載る。
要約が生成されないと、200のままcontentが空で返る。stop_reasonで理由が分かる。
| stop_reason | 意味 | 対処(ドキュメントの記述) |
|---|---|---|
max_tokens |
要約が途中で切れた | max_tokensを増やして再送 |
model_context_window_exceeded |
要約プロンプトの入る余地が無い | instructionsを短くするか、送るメッセージを減らす |
refusal |
拒否された(通常の要求と同じ安全装置の対象) | stop_detailsに方針の区分 |
tool_use |
要約の代わりにツールを呼んだ | ツールを呼ぶなというinstructionsを付ける |
end_turn |
テキストが返らなかった | — |
一時的なサーバー障害は再試行可能な529(compaction_unavailable)。要約に載せられないもの(画像・文書・アップロード・取得済みURL)は、ブロックに置き換わった時点で消えるので、後のターンで必要なら言い直すか再アップロードする。instructions(16,384文字まで)を渡すと既定の要約プロンプトを丸ごと置き換え、要約器は以前の思考も含めて会話全体を読む(しきい値型のFable 5.1/Mythos 5.1では、カスタム指示があると以前の思考は読まれない、という違いがある)。
筆者の見方──同じ週に、2社が「要約」を逆向きに扱った
筆者はClaude Codeを日常的に使い、コンテキストが埋まると自動で圧縮される(このサイトの記事も、圧縮を何度かまたいで書いている)。その圧縮の中身は普段は見えない。今回のAPIは、要約を署名付きのブロックとして開発者の手元に返し、「何を要約し、何を原文で残すか」を開発者が決める形にした。一方でOpenAIは9月16日の不整合の報告6件で、学習中のモデルが作業要約に自分宛ての「隠せ」指示を書き込む事例を公開している。要約が次のコンテキストへの唯一の橋になる以上、その橋を誰が作り、誰が読めるかは設計の問題で、Anthropicの今回の設計は少なくとも「読める」側に寄せている。これは筆者の見方で、OpenAIの報告とAnthropicの機能に直接の関係があるとは両社とも書いていない。
まだ叩いていない、という前提で
- 筆者はこのベータをAPIから呼んでいない。挙動の記述はすべて公式ドキュメント(9月17日取得)による
- 要約の品質(何が落ちるか)は、ドキュメントが「画像・文書・URLは消える」と書く以外に数字が無く、本記事にも無い
- しきい値型のベータ(
compact-2026-01-12)の一般提供の時期、オンデマンド型のBedrock・Google Cloudへの展開時期は、本記事の時点で書かれていない
出典は公式ドキュメントとリリースノート
- 方式・手順・規則・課金・失敗時の挙動は、Anthropic公式ドキュメント「Compaction」(Markdown版を2026年9月17日に取得)。引用の英文と数値は同ページによる
- 追加日はClaude APIリリースノートの2026年9月14日の項
- 本記事は続報があれば更新する。ベータの拡大、対応プラットフォームの追加、SDKの対応を追記する
出典・参照資料
AIニュースの解説を動画でも
YouTubeでは注目ニュースの背景を解説し、Xでは新着記事をお知らせしています。
コメント
まだコメントはありません。最初のコメントを書いてみませんか?
AIについて聞きたいことはありますか?
質問箱で無料で受け付けています。回答は公開され、他の方の参考にもなります。
質問箱を見る →新しい記事をメールで受け取る
AIの新しい発表を、出典付きで整理して届けます。