メッセージコンテキスト管理
コンパクションの概要
コンパクションの機能、オンデマンドコンパクションとトークンしきい値でのコンパクションの違い、そしてタスクに応じて参照すべきページについて説明します。
「compaction」(コンパクション)は、会話の古いターンを、Claudeがサーバー上で作成した要約に置き換えます。そのため、独自の要約コードは必要ありません。コンパクションにより、長い会話やエージェントタスクを「context window」(コンテキストウィンドウ)内に収められます。また、会話が長くなるにつれて応答品質が低下するため、アクティブなコンテキストを小さく保つ役割も果たします。
この概要を読み飛ばしたい場合は、オンデマンドのコンパクションから始めて、アプリケーションにコンパクションを追加してください。これとトークンしきい値でのコンパクションはどちらもベータ版ですが、オンデマンドのコンパクションの方がより一般的なユースケースをカバーしています。古いツール結果や古い思考ブロックを要約するのではなくルールに基づいてクリアするには、コンテキスト編集を参照してください。
コンパクション方法の選択
オンデマンドコンパクションが利用可能な場合は、常にそちらを使用してください。
| オンデマンドのコンパクション | トークンしきい値でのコンパクション | 独自の要約器(クライアントでのコンパクション) | |
|---|---|---|---|
| 実行タイミングを決めるのは誰か | あなた(リクエストを送信することで) | API(入力トークンが設定したトリガーに達したとき) | あなた |
| 記述するコード | 要約をリクエストして差し替えるコンパクションループ | 通常のリクエストに追加する1つのパラメーター | 要約の呼び出し、そのプロンプト、および履歴の書き換え |
| その後に送り返すもの | 返されたブロックを、それが要約するメッセージの代わりにmessagesの先頭に配置 | 通常どおりレスポンスを追加。ブロックより前の内容はAPIが破棄します | 独自のメッセージとしての要約 |
| 最近のターンが一字一句そのまま保持される | はい:最近のターンを保持するコンパクション | はい、コンパクション後の一時停止を行い、それらを再挿入することで可能 | はい |
| バックグラウンドで実行 | はい:バックグラウンドでのコンパクション | いいえ:しきい値に達したリクエストの中で実行されます | はい(独自のコード内で) |
| 保持されたターンがその思考を維持する(保持された思考を持つモデルの場合) | はい、コンパクションと保持された思考に記載の条件下で | いいえ:再挿入するターンから思考を取り除くか、prefix_mismatch_behavior: "drop_block"でAPIに破棄させます(しきい値コンパクションの例を参照) | いいえ:その思考はプレフィックスチェックに失敗します |
| ベータヘッダー、パラメーター、プラットフォーム | compact-2026-09-04とトップレベルのcompactionパラメーター。プラットフォーム:オンデマンドのAPIサポートのセクションを参照 | しきい値のAPIサポートのセクションおよび基本的な使い方を参照 | なし。独自のコード内で実行されます |
| これを選ぶべき場合 | アプリケーションがコンパクションの実行タイミングを制御する必要がある場合、要約の作成中に一時停止できない場合、または直近のターンとその思考を保持する必要がある場合 | 通常のリクエストの中でAPIにコンテキストを管理させたい場合 | すでに独自の要約器を運用しており、それが履歴全体を要約で置き換える場合 |
オンデマンドコンパクションのオプション
オンデマンドコンパクションでは、アプリケーションが待機している間に会話全体を要約するループを紹介しています。このリストの最初の2つのページは、そのループの実行方法を変更するもので、組み合わせて使用できます。3つ目のページは、思考ブロックを送り返し、かつそのいずれかを行う場合に該当します。
- 直近のターンを保持するコンパクション:最後の数ターンを一字一句そのままClaudeに渡す必要がある場合。要約の対象は古いターンのみになります。
- バックグラウンドでのコンパクション:要約のために会話を一時停止できない場合。作業を続けている間にリクエストが実行され、ブロックが届いた時点で差し替えます。
- コンパクションと思考の保持:思考の保持に対応したモデルで思考ブロックを送り返し、かつ直近のターンを保持するか、バックグラウンドでコンパクションを行う場合。それ以外の場合は読み飛ばしてください。
- 独自の要約プロンプトを作成する:デフォルトの要約では、後のターンで必要な情報が失われる場合。独自のプロンプトがデフォルトのプロンプトに置き換わります。
- 再度コンパクションする:すでにコンパクションブロックで始まっている会話が、再び長くなった場合。
以下のトピックは他のページにあります:
- 要約をリクエストするは、オンデマンドのコンパクションのページにあります。
- 要約から続行するは、オンデマンドのコンパクションのページにあります。保持するターンで思考を有効に保つための条件は、コンパクションと思考の保持にあります。
- 要約が返されない場合:オンデマンドのコンパクションのページにある要約の欠落またはエラーへの対処を参照してください。
- API の他の部分との関係:オンデマンドのコンパクションのページにある制限と他の機能との相互作用を参照してください。
- 使用量の理解:オンデマンドのコンパクションについてはコンパクションの使用量のカウントを、しきい値コンパクションについては使用量の理解を参照してください。
- 互換性:それぞれの種類に独自のベータヘッダーがあるため、各ページにそれぞれのセクションがあります:オンデマンドのコンパクションのAPIサポートおよびしきい値コンパクションのAPIサポート。
しきい値コンパクションには専用のページがあります:トークンしきい値でのコンパクション。
このページは役に立ちましたか?