Claude APIAnthropic の機能

FEATURE

Preserved thinking

Preserved thinking は、新しい Claude モデルが持つ性質で、蒸留 (distillation) を防ぐためのものです。

提供中公式発表と照合済み
初出未調査
ページ更新
提供状態提供中
公式の記載で確認できた環境公式に記載なし
提供を確認できたプラン公式に記載なし
目次 CONTENTS
  1. できること
  2. 機能解説
  3. 使い方
  4. 利用シーン
  5. ChatGPT・OpenAI の対応する機能
  6. これまでの変更
  7. 出典
CAN DO

できること

POINT 01

思考ブロックの再利用判定

前のターンから送り返した思考ブロックを、現在のモデルが使えるかどうかが決まります。読めないブロックは、エラーにならずにそのリクエストから破棄されます。

POINT 02

履歴の変更を検知

ブロックより前の system・tools・messages が生成時と異なると、そのブロックと以降の思考ブロックは prefix チェックに失敗します。ベータヘッダーを付けると、失敗したブロックを拒否するか破棄するかを選べます。

POINT 03

破棄の内容を確認

ベータヘッダーの下では、思考に対応したモデルのすべてのレスポンスに input_transformations が付き、対象の思考ブロックの path と reason が分かります。

GUIDE

機能解説

概要

前のターンで生成された思考ブロックをリクエストに含めて送り返したとき、モデルがそのブロックを使えるかどうかを決めます。現在のモデルが読めない思考ブロックは、API がエラーを出さずにそのリクエストから破棄します。思考ブロックを含む会話履歴を再送するマルチターンの連携を作る場面に関わる機能です。

モデルとアカウントによる制限

思考ブロックが使えるかどうかは、生成したモデルとアカウントによって決まります。

  • Claude Fable 5.1 と Claude Mythos 5.1 が生成した思考ブロックは、生成したモデルかそれより新しいモデルに対してだけ保持されます。それより前のモデルは読めず、前のモデルに再送されたブロックは API が破棄します。
  • Claude Fable 5.1 は、Claude Opus 5、Claude Fable 5、Claude Mythos 5 およびそれ以前の Claude モデルの思考ブロックを受け付けます。
  • Claude Sonnet 5.5 と Claude Haiku 5.5 が生成した思考ブロックは、生成したアカウントか、それに紐付いたアカウントでだけ機能します。別のアカウントが Claude Sonnet 5.5 のブロックを送ると、API はモデルが見る前にそのブロックを破棄し、リクエストは成功します。このアカウント単位の制限は、それより前のモデルのブロックには影響しません。

API は messages 配列を編集しないため、読めないモデルに対して破棄されたブロックも履歴には残ります。同じ履歴を Claude Fable 5.1 に戻すと、そのブロックは再び読めます。

prefix チェックの対象

prefix は、ブロックより前にある最上位の system プロンプト、tools、messages です。これがブロック生成時と異なると、そのブロックと以降のすべての思考ブロックが prefix チェックに失敗します。

  • effort・max_tokens・output_config・tool_choice・metadata など、この 3 つ以外のリクエストパラメータと、cache_control マーカーはチェックの対象外です。
  • 思考ブロックは、最も古いもの、最も新しいもの、またはすべてを取り除けます。途中の 1 つを取り除くと、それより後の思考ブロックが無効になります。
  • 各レスポンスの content 配列を保存し、thinking フィールドが空の thinking ブロックも含めて、受け取った順のまま assistant ターンとして送り返します。
  • system プロンプトを作り直す代わりに、セッション開始時に system を固定し、変更が生じた時点の messages に role: "system" のメッセージを追加する方法があります。
  • サーバー側のコンパクションやコンテキスト編集は、送ったとおりの会話を比較するため、編集とは見なされません。
  • 会話全体を 1 つの user メッセージに要約し、次の指示と一緒に送るシンプルなコンパクションでは、以前の思考が再送されないため、チェックに失敗する思考が残りません。

preserved thinking に対応したモデルでは、オンデマンドのコンパクション後に逐語で残したターンの思考が有効なまま保たれる場合があります。

無効なブロックの扱いとエラーへの対処

thinking-binding-controls-2026-08-01 ベータヘッダーを付けると、thinking.block_binding.prefix_mismatch_behavior で動作を選べます。

  • "error": 最初に失敗したブロックを示す 400 invalid_request_error でリクエストを拒否します。
  • "drop_block": 失敗したブロックとそれ以降のすべての思考ブロックを破棄し、リクエストは成功します。

Claude Fable 5.1 では、2026 年 8 月 31 日以降に作成されたアカウントの場合、system プロンプト・tools・それより前のメッセージが変わった後にブロックを再送すると 400 エラーが返ります。ベータヘッダーを付けている場合、それより前に作成され prefix_mismatch_behavior が未設定のアカウントからのリクエストのようにチェックが強制されないリクエストでは、失敗したブロックが input_transformations に thinking_mismatch_allowed として示されます。このブロックは変更されずにモデルに届き、課金の対象になります。

400 エラーを受けたときは、同じ本文を再送しません。応急の対処としてベータヘッダーと prefix_mismatch_behavior: "drop_block" を付けて 1 回だけ再試行し、その選択をセッションに保存して、再起動後も含めて以降のリクエストで送ります。そのうえで、不一致の原因になった編集を修正します。ベータヘッダーや block_binding を送れない場合は、エラーが示したブロックとそれ以降の thinking・redacted_thinking ブロックを取り除いて続行できます。なお、Claude Sonnet 5.5 と Claude Haiku 5.5 では、block_binding は thinking: {"type": "adaptive"} の場合だけ機能します。

HOW TO USE

使い方

連携コードが prefix を書き換えていないかを手動で確認する流れです。

  1. コンパクションやツールの変更を含む通常のターンを数回実行し、連携が送るリクエスト本文を記録します。
  2. 連続する 2 つのリクエストごとに、system・tools・共有している messages を比べます。新たに追加されたターンの手前までは同一である必要があります。
  3. thinking-binding-controls-2026-08-01 ベータヘッダーを付け、prefix_mismatch_behavior を "drop_block" に設定して、claude-fable-5-1 で通常のマルチターンのセッションを連携経由で実行します。
  4. 連携のすべてのターンで input_transformations をログに記録します。
  5. reason が "prefix_binding_mismatch" のエントリがあれば、そのターンまでの system・tools・messages の差分を取るか、"error" でリクエストを再送します。返る 400 エラーは、多くの場合、何が変わったかを示す文で終わります。
公式ヘルプを開く ↗
USE CASES

利用シーン

CASE 01

思考ブロックを含む履歴を再送する既存の連携コードが、prefix を書き換えていないかを点検する場面に向いています。

CASE 02

会話の途中でモデルを切り替える連携で、思考ブロックがどう扱われるかを設計時に確認する場面に使えます。

CASE 03

長くなった会話のコンテキストを縮める方式 (サーバー側のコンパクションかシンプルなコンパクションか) を選ぶ場面に向いています。

CASE 04

複数のアカウントで同じ会話履歴を扱う運用で、Claude Sonnet 5.5 の思考ブロックの扱いを確認する場面に使えます。

COMPARISON

ChatGPT・OpenAI の対応する機能

公式リリースノートでは、対応する発表を確認できていません (2026-11-03 時点)。 これは、対応する機能が存在しないことを示すものではありません。

TIMELINE

これまでの変更

  1. Claude Sonnet 5.5 の思考ブロックがモデルと会話に結び付けられ、生成したアカウントかそれに紐付いたアカウントでだけ機能するようになりました。

  2. input_transformations に 2 つ目のエントリ種別 thinking_mismatch_allowed が追加されました。preserved thinking に対応したモデルでは、オンデマンドのコンパクション後に逐語で残したターンの思考が有効なまま保たれる場合があります。

  3. Claude Fable 5.1 と Claude Mythos 5.1 の思考ブロックを生成モデルかそれより新しいモデルに限って保持する仕組みと、Claude Fable 5.1 での prefix チェックが示されました。2026 年 8 月 31 日以降に作成されたアカウントでは、変更後の再送が 400 エラーになります。thinking-binding-controls-2026-08-01 ベータヘッダーによる input_transformations での報告と、拒否・破棄の選択も加わりました。

SOURCES

出典

出典 4 件を表示