原典: 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 headercompact-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

原典で言及されている関連文書