できること
必要なときだけ推論
アダプティブシンキングを有効にすると、Claude Opus 4.8 は推論が必要なターンでのみ推論を行います。同じ effort レベルの Claude Opus 4.7 と比べて、無駄な思考トークンを減らします。
effort で深さを制御
Claude Opus 5.5 では thinking フィールドを省略し、effort パラメータで思考の深さを制御します。
思考トークン数の確認
Messages API のレスポンスの usage.output_tokens_details.thinking_tokens で、課金対象の出力トークンのうち拡張思考に使われた数を確認できます。ストリーミング時は、この内訳は最後の message_delta イベントにのみ含まれます。
機能解説
概要
有効にすると、Claude Opus 4.8 は推論が必要なターンでのみ推論を行います。Messages API のレスポンスでは、課金対象の出力トークンのうち拡張思考 (Extended thinking) に使われた数を確認できます。モデルによって思考の既定値や指定できる設定が異なるため、API の利用設計やモデルの切り替えに関わる機能です。
Adaptive thinking は、Claude API で使える思考モードです。モデルによって扱いが異なり、次のモデルでは常時オン、または既定でオンになっています。
- Claude Fable 5 / Claude Mythos 5: 常時オンのアダプティブシンキングをサポートします。
- Claude Sonnet 5: アダプティブシンキングが既定でオンです。
- Claude Opus 5: 思考が既定でオンです。
- Claude Opus 5.5: 常時オンのアダプティブシンキングを備えます。
対象のプランや提供地域は、公式のリリースノートには記載がありません。
モデルごとの思考設定と 400 エラーの条件
思考を無効にする指定や手動の拡張思考バジェットの扱いは、モデルごとに異なります。条件に合わない指定は 400 エラーになります。
- Claude Fable 5 / Claude Mythos 5: アダプティブシンキングが唯一の思考モードです。
thinking: {"type": "disabled"}はサポートされず、手動の拡張思考バジェットとアシスタントのプリフィルも 400 エラーになります。 - Claude Sonnet 5: 手動の拡張思考 (
thinking: {type: "enabled", budget_tokens: N}) は削除され、400 エラーを返します。この指定は Sonnet 4.6 で非推奨になっていました。 - Claude Opus 5: 思考の無効化は effort が high 以下の場合のみ許可されます。effort が xhigh または max で
thinking: {"type": "disabled"}を送ると 400 エラーになります。これは Claude Opus 4.8 からの破壊的変更です。 - Claude Opus 5.5: 思考は無効化できません。
thinking: {"type": "disabled"}とthinking: {"type": "enabled", ...}はいずれも 400 エラーになります。thinking フィールドを省略し、effort パラメータで思考の深さを制御します。 - Claude Sonnet 5.5: 事前の思考をオフにするには、effort が high 以下で、
"disabled"の代わりにthinking: {"type": "between_tools"}を送ります。
思考の表示と thinking ブロックの扱い
- Claude Fable 5 と Claude Mythos 5 では、
thinking.displayの既定値は"omitted"です。Claude Opus 4.8、Claude Opus 4.7、Claude Mythos Preview も同じ既定値です。display: "summarized"を設定すると、読める形の思考の要約を受け取れます。 - 生の思考過程 (chain of thought) は返されません。同じモデルで複数ターンの会話を行う場合は、thinking ブロックを変更せずに送り返します。
- Claude Sonnet 5.5 が生成した thinking ブロックは、生成したアカウント、またはそれに紐づくアカウントでのみ機能します。別のアカウントから送られた場合、API はモデルに渡す前にそのブロックを破棄し、リクエスト自体は成功します。
利用シーン
API の利用量を確認する場面に向いています。thinking_tokens で、課金対象の出力トークンのうち思考に使われた数を把握できます。
モデルを切り替える前に、リクエストの thinking 設定を点検する場面に使えます。モデルによって budget_tokens の指定や思考の無効化が 400 エラーになるためです。
複数ターンの会話を扱うアプリケーションの実装確認に使えます。同じモデルでは thinking ブロックを変更せずに送り返す必要があります。
Claude Fable 5 と Claude Mythos 5 でモデルの処理の経緯を確認したい場面では、display: "summarized" を設定して思考の要約を受け取れます。
ChatGPT・OpenAI の対応する機能
比較の単位となる業務: API でのモデルの思考深度の制御と思考トークンの把握
Codex SDK では、SDK から CLI の設定オーバーライドをそのまま渡し、推論強度として max または ultra を選べます。
Claude API では、Claude Opus 5.5 で thinking フィールドを省略し、effort パラメータで思考の深さを制御します。Claude Opus 5 では、effort の値 (high 以下か、xhigh・max か) によって思考を無効化できるかどうかが変わります。
これまでの変更
Claude Sonnet 5.5 で、事前の思考をオフにする
between_toolsの指定と、thinking ブロックのアカウント単位の扱いが示されました。Claude Opus 5.5 が常時オンのアダプティブシンキングを備え、思考の無効化ができなくなりました。
Claude Opus 5 で思考が既定でオンになり、思考の無効化は effort が high 以下の場合に限られました。
Claude Sonnet 5 でアダプティブシンキングが既定でオンになり、手動の拡張思考は削除されました。
Claude Fable 5 と Claude Mythos 5 が、常時オンのアダプティブシンキングをサポートしました。
Claude Opus 4.8 で、アダプティブシンキングを有効にすると推論が必要なターンでのみ推論を行うようになりました。
Messages API のレスポンスに
usage.output_tokens_details.thinking_tokensが含まれるようになりました。ストリーミング時の内訳は、最後のmessage_deltaイベントにのみ含まれます。