原典: Compaction / 日本語版
一行要約
サーバ側で会話の古いターンを要約に置き換える仕組みの概要ページで、要求時・閾値・自前の要約器の3方式を比べ、使えるなら要求時(on-demand)を使えと推す。
要点
Compaction replaces the older turns of a conversation with a summary that Claude writes on the server, so you need no summarization code of your own. It keeps a long conversation or agent task inside the context window, and it keeps the active context small, because response quality degrades as a conversation grows.
compaction は、会話の古いターンを、Claude がサーバ側で書いた要約に置き換える。だから要約のコードを自分で書く必要はない。長い会話やエージェントのタスクを context window の中に収め、アクティブな context を小さく保つ。会話が大きくなるにつれて応答の質が落ちるからである。
目的は窓に収めることだけではない。 窓に収まっていても、context が大きいほど質が落ちる。
Use on-demand compaction wherever it is available.
使えるところでは、要求時 compaction を使え。
以前の原典は閾値方式が主で、要求時方式は後から足された節だった。 以前の取得では推奨が要求時方式に移っている。
3方式の比較
| 要求時(compaction-on-demand) | 閾値(compaction-threshold) | 自前の要約器 | |
|---|---|---|---|
| いつ要約するかを決めるのは | 自分(リクエストを送って) | API(input が設定した閾値に達したとき) | 自分 |
| 書くコード | 要約を取りに行き、差し替えるループ | 普段のリクエストにパラメータ1つ | 要約の呼び出し・プロンプト・履歴の書き換え |
| 後で送り返すもの | 返ったブロックを messages の先頭に、要約した範囲の代わりに置く | 応答をいつもどおり追記する。ブロックより前は API が捨てる | 自分の要約を自分のメッセージとして |
| 直近のターンを原文のまま残せるか | 残せる | 残せる(要約後に止めて差し戻す) | 残せる |
| 裏で走らせられるか | 走らせられる | 走らせられない(閾値に達したリクエストの中で走る) | 自分のコードで |
| 残したターンの thinking を保てるか(preserved thinking のモデル) | 条件つきで保てる(3条件。compaction-thinking-blocks) | 保てない。Fable 5.1・Opus 5.5・Sonnet 5.5 では差し戻すターンの thinking を外すか捨てる(Sonnet 5.5 で between_tools なら外す) | 保てない(検査に落ちる) |
| beta header | compact-2026-09-04(トップレベルの compaction パラメータ) | compact-2026-01-12(context_management.edits) | 無し |
| 選ぶ場面 | いつ compact するかを制御したい/要約を待って止まれない/直近のターンとその thinking を残したい | 普段のリクエストの中で API に context を任せたい | すでに自前の要約器があり、履歴全体を要約に置き換えている |
規則で古いツール結果や thinking を消すだけなら、要約ではなく context-editing を使う。
要求時方式の上に載る3つの変え方(子ページ)
要求時方式の基本は「会話全体を要約し、その間アプリは待つ」ループ。原典はこれを変える子ページを3本挙げる(取り込んだのは3本目だけ)。
- 直近のターンを原文のまま残す(keep recent turns)—— 要約は古いターンだけを覆う
- 裏で要約する(background)—— 要約を書いている間も会話を進め、届いたらブロックを差し替える
- preserved thinking との組み合わせ(compaction-thinking-blocks)—— thinking ブロックを送り返すモデルで、上の2つのどちらかをやる場合だけ読めばよい
そのまま使える具体例
どちらを選ぶかの判断だけ(コードは各子ページの要約にある):
要約のタイミングを自分で決めたい / 待てない / 直近の thinking を残したい → compaction-on-demand
普段のリクエストに1パラメータ足して任せたい → compaction-threshold
古いツール結果や thinking を規則で消したいだけ → context-editing原典で言及されている関連文書
- compaction-on-demand — 要求時 compaction(推奨される側)
- compaction-threshold — 閾値 compaction(旧ページの本文の移り先)
- context-editing — 要約せず、規則で古いツール結果や thinking を消す
- compaction-thinking-blocks — compaction と preserved thinking