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