Claude Messages API の圧縮:2 つの beta と署名ブロック、課金の数え方
サンプリングが 1 回増える。圧縮すれば必ず安くなるわけではない
Anthropic は 2026-02-05 に compaction API を beta 化し(閾値に達すると自動要約)、2026-09-14 にオンデマンド圧縮を追加した。トップレベルの compaction パラメータを送ると署名付き compaction ブロックが返る。2 つの経路を同じリクエストに入れることはできない。署名ブロックは messages の先頭に置く必要があり、要約対象のメッセージをブロックの前に残すと公式は 400 と明記している。usage.iterations がそのリクエストの実際の消費量を決める。prompt caching との組み合わせ方も公式が例を示している。
更新日 2026-10-20
Claude・GPT・中国系モデルを 1 つのキーで、トークン単位の課金。利用できるモデルは /models で確認。
- トークン単位の課金・最新単価は /models
- カード(Visa / Mastercard)・Apple Pay・Google Pay・暗号資産で支払い可能
- チャージ後すぐにセルフサービスで開通
4 つの要点
別々の beta ヘッダー
閾値型は compact-2026-01-12 を使い、設定は context_management.edits の中に型 compact_20260112 として書く。オンデマンド型は compact-2026-09-04 とトップレベルの compaction パラメータ。公式は compaction と context_management を同じリクエストに入れないと明記している。
閾値型の既定トリガ
公式パラメータ表:trigger の既定は {"type": "input_tokens", "value": 150000}、トリガ型は input_tokens のみ、value は 50,000 トークン以上。到達すると API が要約を作り compaction ブロックに入れ、圧縮後の文脈で回答を続ける。
署名ブロックの位置違いは 400
オンデマンド型は署名付き compaction ブロックを 1 つ返す。要約対象のメッセージがブロックの前に残っている場合、リクエストは 400 を返し、エラーコードは compaction_block_misplaced である。ブロックは messages の先頭に置き、要約対象のメッセージを削除する。signature を含め、返されたまま保持する。閾値型のブロックは逆に要約対象の後ろに置き、前の内容は公式が削除する。
なぜ別課金になるか
公式の文言:圧縮はサンプリングを 1 回分追加し、この 1 回分も rate limit と課金の対象である。レスポンスの usage.iterations に type が compaction の記録が増え、トップレベルの input_tokens と output_tokens には入らない。実際の消費量を出すには iterations を合計する必要があると公式が書いている。
何をする機能か
サーバー側の圧縮:設定した閾値に達すると、Claude 自身が会話を要約して compaction ブロックに入れて返す。続くリクエストではレスポンスをそのまま付け返し、API はそのブロックより前の content block を自動で捨てて要約から続ける。公式の位置づけはクライアント側の要約コードの代替で、要約はサーバー側で書かれるため、自作する要約コードは不要である。公式が挙げる利用例は 2 つ:同じチャットを長く使い続ける多ターンの会話と、追作業(多くはツール呼び出し)が多くコンテキスト窓を越えうるタスク型プロンプト。
何が起きたか
2 つの日付は公式 API release notes にそのままの形で載っている。2026-02-05:compaction API が beta に入り、サーバー側の文脈要約が提供され、その項目は当時 Opus 4.6 で使えたと記している。2026-09-14:Messages API がオンデマンド圧縮に対応し、beta header は compact-2026-09-04 である。トップレベルの compaction パラメータを送ると署名付き compaction ブロックが返り、以後のリクエストではそのブロックを元のメッセージの位置に置きます。オンデマンド型は署名ブロックを 1 つ生成して応答は作らない(stop_reason は compaction)。要約はバックグラウンドで走らせ、会話は全文のまま続けられ、直近のターンは原文のまま要約後に残せる。
タイムライン
2026-02-05:公式 release notes に compaction API の beta 開始が載り、サーバー側の文脈要約が提供されるとある。その項目は当時 Opus 4.6 で使えたと記している。サーバー側の圧縮が beta に入ったのはこのときです。
2026-09-14:同ページにオンデマンド圧縮(beta ヘッダー compact-2026-09-04)が追加。トップレベル compaction、署名ブロック、バックグラウンド生成、直近ターンの原文保持。
公式の圧縮の総覧、閾値型のページ、オンデマンド型のページと API release notes をこの日に取得し、各パラメータ・既定値・エラーコードを逐字で照合した。オンデマンド型の公式サポートプラットフォームには Google Cloud が含まれ Amazon Bedrock は含まれず、閾値型には Amazon Bedrock も挙がっています。
公式確認 vs 注意
公式確認
公式ドキュメントでそのまま確認できるもの:trigger の既定値は 150000、value は 50,000 以上、トリガ型は input_tokens のみ。instructions に空でない文字列を渡すと既定の要約プロンプトをそのまま置き換える(オンデマンド型は 16,384 文字まで)。pause_after_compaction の既定値は false。圧縮はサンプリングを 1 回分追加し、その 1 回分も rate limit と課金の対象です。トップレベルの使用量に compaction の反復は含まれないため、iterations を合計する必要があります。要約対象のメッセージが署名ブロックの前に残ると 400 が返り、エラーコードは compaction_block_misplaced です。compaction と context_management は同じリクエストに入れられません。token counting エンドポイントは compaction を無視します。要約範囲内の画像、文書、container_upload ブロック、取得済みの URL は、ブロックが置き換えると消えます。
⚠️ 注意
「圧縮すれば逆に高くつく」というコミュニティの言い回しは、そのまま事実として書けない。公式は圧縮がサンプリングを 1 回分追加して課金対象になると書き、同じ文書で Prompt caching の節に圧縮と prompt caching の相性がよいこと、compaction ブロックに cache_control の区切りを置き、システムプロンプト末尾にも区切りを置いてシステムプロンプトのキャッシュを有効なまま保つ使い方が示されている。過去の compaction ブロックを再適用する分は追加の圧縮コストが発生しないとも書かれている。正確には「圧縮にはコストがあり、割安になるかどうかは区切りの置き方で決まる」です。ほか:機能全体が beta のまま。要約に失敗しても応答は 200 のまま content は空で、その呼び出しは課金され iterations に載る。サーバー側の一時的な障害は再試行できる 529 overloaded_error(error.details.error_code が compaction_unavailable)を返す。task budget の remaining は compaction と同じリクエストに送れず、公式はこれを送ると 400 になるとしている。
共通点と差異
共通点
どちらもサーバー側で要約し、compaction ブロックを返し、リクエストで指定したモデルで要約を書く(Current limitations に安いモデルへ差し替えられないと明記)。どちらも追加サンプリングが発生し rate limit と課金に入る。どちらもまだ beta。
差異
起動のしかたが違います:閾値型は API がリクエストの途中で判定してその場で圧縮し、1 リクエスト内で複数回圧縮されることもあります(server tools 併用時は各サンプリング反復の開始時にチェック)。オンデマンド型はどのリクエストで要約を書くか自分で決め、そのリクエストでは応答を作りません。ブロックの位置も違います:閾値型のブロックは要約対象の後ろに置かれ、署名ブロックはその対象メッセージを置き換えます。対応プラットフォームも違い、オンデマンド型の公式サポートには Google Cloud が含まれ Amazon Bedrock は含まれず、閾値型のサポートには Amazon Bedrock も挙がっています。
どう使うか
5 つの手順。1)経路を選ぶ:通常のリクエストの中で API に文脈を管理させたいなら閾値型。圧縮するタイミングを自分で決めたい、要約中に止められない、直近のターンとその思考を残したい場合はオンデマンド型。2)ヘッダーを正しく:要約を頼むリクエストと、その後に署名ブロックを載せるすべてのリクエストに compact-2026-09-04 が必要。要約の側でヘッダーを忘れると、beta ヘッダーの不足を指摘する 400 が返る。ブロックを載せる側で忘れると、compaction が想定の content block 型ではないという検証エラーになり、公式はそのエラーがヘッダー名に触れないと書いている。3)戻す:ブロックを messages の先頭に置き、要約対象のメッセージを削除する。4)課金の数え方を直す:usage.iterations を合計し、トップレベルの 2 つの項目だけで済ませない。5)要約が返らない場合:tools 付きでは内部の要約ステップでツールを呼んでしまい、content が null になることがある。公式の対策は instructions でツール呼び出しを明示的に禁じること。
QCode 上では
圧縮は Messages API 側のパラメータと beta ヘッダーであり、当サイトはそのスイッチを提供しない。パラメータの解釈は Anthropic 側の担当で、当サイトはその動作について何も約束しない。公式の beta 対応一覧にある claude-opus-5、claude-sonnet-5、claude-fable-5、claude-fable-5-1、claude-opus-4-8、claude-sonnet-4-6 はすべて /models の公開一覧に書かれている(2026-10-20 確認)。公式の対応一覧には claude-mythos-5 と claude-mythos-5-1 も並ぶ。あるモデルが圧縮に対応しているかは、beta ヘッダーごとに分かれた公式の Compatibility リストで確認できる。課金はトークン単位で、各モデルの単価は /models に載っている。
よくある質問
2 つの beta を同時に使えますか?
使えません。公式は compaction と context_management を同じリクエストに入れないと明記し、さらに閾値型(compact_20260112)は署名ブロックを載せたリクエストでは動かないと付け加えています。どちらか一方を選んでください。
圧縮すれば節約になりますか?
それ自体ではならない。公式は追加サンプリングが rate limits と billing に効くと書き、トップレベルの input_tokens / output_tokens にそれが入らないので usage.iterations を合計する。後続リクエストの文脈長は減るが、損益はキャッシュ区切りの置き方と、過去のブロック再適用が追加課金なしという事実で決まる。
署名ブロックはどこに置きますか?
messages の先頭に置き、要約対象のメッセージは削除し、ブロックは signature を含め、返されたまま保持する。公式は、要約対象のメッセージが署名ブロックの前に残るとリクエストは 400 を返し、エラーコードは compaction_block_misplaced であるとしている。以降のブロックを伴うリクエストにはすべて compact-2026-09-04 が必要。
ブロックが空で返るのはなぜ?
多くはツール干渉。Current limitations に、tools 付きリクエストでは内部要約ステップでモデルが要約の代わりにツールを呼ぶことがあり、そのとき compaction ブロックの content が null になるとある。対策は instructions でツール呼び出しを禁じテキストだけ出させる。要約失敗でも 200・content 空で、その呼び出しは課金され iterations に載る点も注意。
公式は圧縮に対応するモデルをどの形式で公開していますか?QCode で試せるモデルは?
公式は beta ヘッダーごとにサポートモデルを 2 枚の Compatibility リストに分けている。オンデマンド型と閾値型で 1 枚ずつ、モデル ID はそれぞれのページにそのまま載っている。公式の beta 対応一覧にある claude-opus-5、claude-sonnet-5、claude-fable-5、claude-fable-5-1、claude-opus-4-8、claude-sonnet-4-6 はすべて /models の公開一覧に書かれている(2026-10-20 確認)。公式の対応一覧には claude-mythos-5 と claude-mythos-5-1 も並ぶ。圧縮自体は API のパラメータで、当サイトはスイッチを提供しない。beta は変わり得るので、どのモデルについても長期の支援は約束しない。
安いモデルで要約できますか?
置き換えはできない。公式はリクエストで指定したモデルが要約に使うと書き、別の(たとえばより安い)モデルを要約に使う選択肢はないと明記している。変更できるのは instructions(既定の要約プロンプトをそのまま置き換える独自の要約プロンプト)と trigger の閾値だけである。完全に自分で制御したいなら、サーバー側の圧縮をやめてクライアント側で要約する形に切り替えるが、それは別の設計になる。
出典
Anthropic の圧縮に関する公式ドキュメント 3 ページ:総覧 https://platform.claude.com/docs/en/build-with-claude/compaction(Choose how to compact の対照表とインデックス)、閾値型 https://platform.claude.com/docs/en/build-with-claude/compaction-threshold(Parameters / Understanding usage / Prompt caching / Current limitations の各節)、オンデマンド型 https://platform.claude.com/docs/en/build-with-claude/compaction-on-demand(Request a summary / Errors / Count compaction usage の各節)、および API release notes https://platform.claude.com/docs/en/release-notes/api(2026-02-05 と September 14, 2026 の 2 項目をそのまま引用;その日に公式の .md 形式を取得、HTTP 200)。
関連記事
Context Engineering 完全指南 2026
圧縮はコンテキスト設計の一部。こちらは手法の話で API パラメータは扱わない。
会話の途中でツールを増減する
会話中途の指示とツール変更が要約にどう扱われるかはそちらに詳しい。
effort is not supported when thinking is disabled
思考ブロックと履歴変更のエラー系。保持ターンの思考も前後一致が必要なのは同じ。
暗号資産チャージガイド
9 通貨・56 ネットワーク、手数料 0 で AI コーディング API クレジットを購入。
本ページは Anthropic の公開ドキュメントを転記し、両者に提携関係はありません。パラメータ名、既定値、エラーコード、引用文は 2026-10-20 に取得した版に基づきます。beta の機能は予告なく変わります。圧縮が割安になるかどうかは追加のサンプリング費用とキャッシュ区切りの置き方で決まり、公式ドキュメントが書いているのはその 2 つだけです。QCode は API 接続を提供しますが、Anthropic 側の beta 状態は変えません。