AI時短ラボ
プロダクト· 約12

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`に別立てで課金される。

Anthropic公式ドキュメントの圧縮(compaction)フロー図
執筆・編集:
目次

2026年9月18日未明・日本時間時点の情報です。 AnthropicのClaude APIに、会話の圧縮(compaction)を開発者が任意のタイミングで頼める方式がベータで加わった。リリースノートの日付は9月14日。長いエージェント作業でコンテキストが埋まる問題への「サーバー側の要約」は以前からあったが、今回は「いつ要約するか」「要約中に会話を止めるか」「直近の会話を原文で残すか」を開発者が決められる。OpenAIが9月10日のAgents APIで「圧縮はハーネスがやる」と打ち出したのと同じ週に、Anthropicは「圧縮の主導権を開発者に返す」形で出している。本記事は公式ドキュメントの記述を、方式の違い・手順・課金・失敗時の順に整理する。

3行まとめ

  1. 2方式になった。 従来のしきい値型compact-2026-01-12ベータ)は、入力トークンが設定値(5万以上)に達すると要求の途中でAPIが自動要約する。新しいオンデマンド型compact-2026-09-04ベータ)は、好きな要求にcompaction: {"type": "summarize"}を付けると、返事は生成せず署名付きの要約ブロックだけstop_reason: "compaction"で返る。
  2. 3つできるようになる。 ①要約する時点を自分で決める ②要約要求をバックグラウンドで走らせ、届いたら差し替える(会話は全履歴のまま続く)③直近のターンを原文のまま残す(要約要求に古いターンだけを送る)。思考を保持するモデルでは、残したターンの思考が要約後も有効なまま続くための条件が明記されている。
  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.iterationscompactionとして別立てで計上・課金される。トップレベルの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に文脈管理を任せたいならしきい値型。いつ圧縮するかをアプリが制御する必要がある、要約の間に止まれない、要約後も直近のターンとその思考を残したいならオンデマンド型」。

手順──要約を頼み、差し替え、以後は先頭に置く

  1. 要約を頼む。 会話をそのまま送り、"compaction": {"type": "summarize"}を付け、ヘッダanthropic-beta: compact-2026-09-04を付ける。APIは送られたすべてのメッセージを1回要約し、返事は生成せず、compactionブロック(contentに要約文、signatureに署名)をstop_reason: "compaction"で返す。systemtools・思考の設定・max_tokensは要求のものが使われ、要約器はツール定義を読むが実行はしない
  2. 差し替える。 履歴のうち要約要求に送ったメッセージを、返ってきたassistantメッセージ(署名ごとそのまま)に置き換える。以後の要求では、このブロックをmessagesの先頭に置き、毎回ベータヘッダを付ける
  3. 原文で残したいターンは送らない。 APIは送られたものを全部要約するので、古いターンだけを送り、返ったブロックを残したターンの前に置く
  4. バックグラウンドで走らせた場合。 要約中に会話が進んでいたら、要約要求に送った件数ぶんだけ履歴の先頭から落とし、ブロックを置き、それ以降に足したものは残す。要約要求を送ってから差し替えるまで履歴を編集せず、ブロックが届いた最初の要求で差し替える──そうすると要約中に生成された思考が有効なまま残る

ドキュメントの規則を写す。ブロックは先頭(単独のassistantメッセージか、最初のメッセージの最初のブロック)に置く。要約済みのメッセージがブロックより前に残っていると400エラー(compaction_block_misplaced)、後ろに残っているとエラーにはならないがモデルにもう一度送られる。ブロックは要求ごとにちょうど1つ。既にブロックで始まる会話をもう一度圧縮すると、新しいブロックが古い要約とその後を全部まとめ、以後は最新のブロックだけを送る。

思考を残す条件

思考を保持するモデル(preserved thinking)では、要約後に残したターンの思考ブロックが有効なままになる条件が2つ書かれている。①残したターンが要約したメッセージの直後に続いていること ②systemと、defer_loading: trueでないツールが要約要求から変わっていないこと。①は「最後に要約したメッセージと同じroleの先頭メッセージ」やrole: "system"のメッセージが先頭に来る場合を除外する。モデルやsystemtoolsを後で変えてもブロック自体は受け付けられるが、残したターンの思考は無効になりうる、とある。

課金と、要約が返ってこないとき

要約の呼び出しは追加のサンプリングで、レート制限と課金の対象。応答のusage.iterations{"type": "compaction", ...}として別立てで載り、トップレベルのinput_tokensoutput_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の新しい発表を、出典付きで整理して届けます。

関連記事

Claude APIが2026年8月に踏んだ変更点まとめ──Python SDK v1.0の破壊的変更を中心にの記事画像
プロダクト09.03読了14

Claude APIが2026年8月に踏んだ変更点まとめ──Python SDK v1.0の破壊的変更を中心に

出典 ─ Anthropic公式
Our framework for reporting model misalignment(OpenAI公式の画像)
研究09.18読了19

OpenAI、モデルの「不整合」を公開報告する枠組みを発表──「業界は最高速度で拡大を続けられるほどアライメントを解いていない」、初回6件は漏れたAPIキーの無断使用・数字の捏造・要約に埋めた「隠せ」の指示

出典 ─ OpenAI公式(2026-09-16)
Claude APIが会話の途中でツールセットを変えられるようになった──プロンプトキャッシュを保ったままの記事画像
プロダクト09.01読了18

Claude APIが会話の途中でツールセットを変えられるようになった──プロンプトキャッシュを保ったまま

出典 ─ Claude Developer Platform公式ドキュメント
Claude Codeがアイドルになったら1回だけ通知してくれるように──notify_when_idleの仕組みの記事画像
検証09.07読了18

Claude Codeがアイドルになったら1回だけ通知してくれるように──notify_when_idleの仕組み

出典 ─ anthropics/claude-code(GitHub公式リリースノート)
Claude発の「Skills」がベンダー中立の標準規格になっていた──agentskills.ioを実際に開いて確認するの記事画像
検証09.06読了10

Claude発の「Skills」がベンダー中立の標準規格になっていた──agentskills.ioを実際に開いて確認する

出典 ─ Agent Skills Overview(
Claude Codeの/goalコマンド──「続けて」を打ち続ける代わりに完了条件を渡すの記事画像
活用09.06読了10

Claude Codeの/goalコマンド──「続けて」を打ち続ける代わりに完了条件を渡す

出典 ─ Keep Claude working to
Claude APIの「computer use」がベータを卒業──新設の「browser use」との違いを公式リリースノートで切り分けるの記事画像
検証09.05読了12

Claude APIの「computer use」がベータを卒業──新設の「browser use」との違いを公式リリースノートで切り分ける

出典 ─ Claude Developer Platf
SendMessage/ListAgentsの中身──Claude Codeのセッション同士は何をどこまで送り合えるかの記事画像
活用09.04読了13

SendMessage/ListAgentsの中身──Claude Codeのセッション同士は何をどこまで送り合えるか

出典 ─ Message your other Cla