Claudeの「思考(thinking)」まわりの仕様は、この1年で大きく形を変えた。かつての拡張思考(extended thinking)は「思考に使うトークン量を人間が指定する」方式だったが、現行世代では適応的思考(adaptive thinking)——考えるかどうか・どれだけ深く考えるかをモデル自身が決める方式——に置き換わった。さらに Claude Opus 5 からは思考が既定でONになり、その後の Claude Opus 5.5 と Fable の各モデルでは思考を切ること自体ができない。「何も指定しなければ思考なし」という前提は過去のものだ。

この記事では、拡張思考と適応的思考は何がどう違うのか、モデルごとに挙動がどう異なるのか、そしてコード移行時に踏みやすい落とし穴(400エラー・出力切れ・課金の増加)を、Anthropic公式ドキュメントに基づいて整理する。

THINKING: EXTENDED → ADAPTIVE

「人間が深さを決める」から「モデルが決める」へ

思考仕様の世代交代を3ステップで

拡張思考(旧)
budget_tokens: 10000
思考トークン量を人間が指定
適応的思考(現行)
type: "adaptive"
考えるか・どれだけかはモデルが判断
Opus 5 以降
思考が既定でON
深さは effort で調整する時代に
出典:Anthropic公式ドキュメント「Thinking」「Extended thinking」(2026年9月25日時点)

1. 思考(thinking)とは何か

思考とは、Claudeが最終回答を書き始める前に、自分の言葉で問題を解きほぐす工程のことだ。問いを言い直し、複数のアプローチを試し、途中結果を検証し、筋の悪い道を捨てる——その過程が thinking コンテンツブロックとして回答の前に生成される。数学・コーディング・分析・長時間のエージェント作業など、「途中の作業の質」が答えの質を決めるタスクで効果が大きい。

ただしタダではない。Anthropic公式ドキュメント「Thinking」が明記するとおり、思考に使ったトークンは出力トークンとして課金され、max_tokens にも算入される。思考テキストが返ってこない設定でも課金は同じだ(第6章)。つまり思考の設計は、品質の話であると同時にコストとレイテンシの話でもある。

2. 拡張思考の時代——budget_tokensで深さを指定

最初に導入されたのが拡張思考(extended thinking)だ。リクエストに thinking: {"type": "enabled", "budget_tokens": N} を付けると、Claudeはその予算を目安に考えてから回答する。「どれだけ考えるか」を人間が毎回指定する方式で、公式ドキュメントによればルールは次のとおり。

  • 最小1,024トークン。それ未満はAPIがエラーで拒否する
  • max_tokens より小さくする。思考も max_tokens に数えられるため、回答の分を残す必要がある
  • 予算は厳密な上限ではなく目安。実際の使用量はタスク次第で、予算を使い切る前に考え終わることも多い
  • 32,000超の思考予算はタイムアウトの恐れがあるため、公式はバッチ処理を推奨

この方式の問題は素直で、適切な予算はタスクごとに違うのに、人間が事前に当てられないことだ。簡単な質問にも指定した予算ぶんの思考コストがかかりうるし、逆に難問には予算が足りない。予算値を変えるとプロンプトキャッシュも無効化される(公式が実測例つきで説明している)。

3. 適応的思考への転換——モデルが自分で決める

そこで2026年に登場したのが適応的思考(adaptive thinking)だ。指定は thinking: {"type": "adaptive"} の一行だけ。考えるかどうか、どれだけ深く考えるかは、リクエストの難しさを見てClaudeが自分で決める。簡単な入力なら思考をスキップして即答し、難問には深く潜る。

移行は公式ドキュメント「Extended thinking」に明記されたスケジュールで進んだ。Claude Opus 4.6 / Sonnet 4.6 で budget_tokens が非推奨になり(動作はする)、Claude Opus 4.7 以降のモデルでは 400 エラーで拒否される。旧コードをそのまま新モデルに向けると、次のエラーで止まる。

# 旧: 拡張思考(Opus 4.7以降では 400 エラー)
"thinking": {"type": "enabled", "budget_tokens": 10000}
→ 400: "thinking.type.enabled" is not supported ...

# 新: 適応的思考(深さは effort で指定)
"thinking": {"type": "adaptive"},
"output_config": {"effort": "high"}

書き換え自体は小さい——budget_tokens を消して adaptive にし、深さの調整は effort に任せる。ただし公式が注意するとおり、これは構文だけでなく挙動の変化だ。固定予算では毎回必ず考えていたのに対し、適応的思考では低い effort 設定だと簡単な入力で思考をスキップすることがある。

4. モデル別の思考の扱い早見表

ややこしいのは、「既定でONかどうか」「OFFにできるかどうか」がモデルごとに違うことだ。公式ドキュメントの記載を1枚にまとめる。2026年9月29日時点で公式のモデル一覧の先頭に並ぶのは Fable 5.1・Opus 5.5・Sonnet 5.5・Haiku 4.5 の4つで、Opus 5 と Sonnet 5 は Legacy として引き続き使える。新しいモデルが出たら、公式の「Thinking」のトラブルシューティングにあるモデル別の表で同じ3点を確かめればよい。

モデル 何も指定しないと 思考OFF(disabled) budget_tokens
Claude Fable 5.1 / Fable 5 / Mythos 5.1 / Mythos 5 思考ON(常時) 不可(400) 不可(400)
Claude Opus 5.5 思考ON(常時) 不可(400。effort に関係なく) 不可(400)
Claude Sonnet 5.5 思考ON(adaptive) 不可(400)
代わりに between_tools で最初の思考(up-front thinking)だけ切れる(effort high 以下)
不可(400)
Claude Opus 5(Legacy) 思考ON(adaptive) effort high 以下でのみ可
xhigh / max との併用は 400
不可(400)
Claude Sonnet 5(Legacy) 思考ON(adaptive) 可 不可(400)
Claude Opus 4.8 / 4.7 思考なし(adaptive を明示して有効化) 可 不可(400)
Claude Opus 4.6 / Sonnet 4.6 思考なし(adaptive を明示して有効化) 可 非推奨(動作はする)
Haiku 4.5 / Sonnet 4.5 / Opus 4.5 思考なし —(そもそも既定OFF) 必須(唯一の思考方式。adaptive は 400)

出典:Anthropic「Thinking」・「Extended thinking」・「Troubleshooting thinking」(2026年9月29日時点)

実務上の要点は2つ。①Opus 5 世代から「既定=思考ON」に反転し、Opus 5.5 では OFF にもできなくなった——Opus 4.8 で思考OFFのまま安く回していた処理をモデルIDだけ変えると、思考ぶん出力トークンが増えて回答が max_tokens で切れたり請求が増えたりする(Opus 5の破壊的変更の解説で詳述)。Opus 5.5 で思考の量を抑える手段は effort だけだ。②拡張思考だけに対応するモデルは budget_tokens を使い続ける——Haiku 4.5・Sonnet 4.5・Opus 4.5 がそれにあたる。これらを使う限り書き換えは要らないが、Sonnet 4.5 は Claude API で2026年11月30日に提供が終わる(9月30日に告知、後継は Sonnet 5.5。公式の提供終了の一覧)。Sonnet 4.5 を使っている処理はそれまでに Sonnet 5.5 へ乗り換え、そのときに適応的思考へまとめて書き換える。

5. 深さの調整はeffortで

「予算」が消えた代わりに、思考の深さは output_config: {"effort": ...} で調整する。low / medium / high / xhigh / max の5段階で、APIの既定は多くのモデルで high、Opus 5.5 だけ medium(effort を省くと Opus 5 より1段低く動く)。effort は思考の深さだけでなく、ツール呼び出しの統合度や前置きの量などトークン消費全体に効く。

low / medium

定型処理・分類・サブエージェント。簡単な入力では思考をスキップすることがある=速くて安い

high 〜 xhigh

難しい推論・コーディング・エージェント向け——どこから始めるかはモデルごとに違うので、公式はモデルを替えたら設定を持ち越さず、自分の評価で段階を試すよう勧めている

max

正しさがコストより重要な難問向け。常に最良とは限らないので固定しない

effort の5段階の意味・Claude Code 側のスライダー設定・保存方法はeffort(工数)設定の解説記事にまとめてある。なお公式ドキュメントによれば、adaptive モードではeffort の値もプロンプトに描画されるため、変更するとプロンプトキャッシュが無効化される。拡張思考時代の「budget を変えるとキャッシュが飛ぶ」と同じ構図なので、会話の途中で頻繁に切り替えないのが基本だ。例外として、Fable 5.1・Opus 5.5・Opus 5 などでは、会話の途中のメッセージで effort を変える方法(ベータ)なら、それより前のキャッシュが保たれる。

6. 思考は見えなくても課金される——displayの話

思考の「見え方」は display フィールドで制御する。値は2つ。

  • "summarized"——思考の要約テキストが thinking ブロックに入って返る。Opus 4.6 / Sonnet 4.6 以前の既定
  • "omitted"——thinking ブロックは返るが中身は空文字列。Fable 5.1 / Fable 5 / Mythos 5.1 / Mythos 5 / Opus 5.5 / Opus 5 / Sonnet 5.5 / Sonnet 5 / Opus 4.8 / 4.7 の既定

ここに罠が2つある。第一に、新しいモデルほど既定が「見せない」側なので、ストリーミングでユーザーに推論過程を見せていたアプリを新モデルに移すと、「長い沈黙のあと突然回答が出る」体験に変わる。見せたければ thinking: {"type": "adaptive", "display": "summarized"} を明示する。第二に、display は表示だけの設定で、課金は変わらない。公式は「omitted でも思考トークン全額が課金される。減るのはレイテンシであってコストではない」と明記している。そもそもどの設定でも生の思考過程(raw chain of thought)は返らない——summarized で見えるのは要約だ。

コストの実測方法:思考にいくら使ったかは、レスポンスの usage.output_tokens_details.thinking_tokens で確認できる。ストリーミング時は最後の message_delta イベントにだけ載る。「思考が見えない=使っていない」ではないので、移行後は必ずここを見る。

もうひとつ実務で重要なのがthinkingブロックの取り扱いだ。複数ターンの会話やツール使用時は、前の応答の thinking ブロックを一切書き換えずにそのまま次のリクエストへ渡す。編集すると 400 エラーになる——Claude Code 利用者が遭遇する「invalid signature in thinking block エラー」はまさにこの仕組みに起因する。

7. 思考OFFの落とし穴

「うちは速さ優先だから思考は切りたい」という判断はありうる。ただし、Opus 5.5 と Fable の各モデルは思考を切れない(disabled は 400 エラー)。切れるのは Sonnet 5 や Opus 4.8 以前などで、Opus 5 で思考を切るのは条件付きだ。公式ドキュメントによれば、Opus 5 では:

✅ 通る

思考OFF + effort low / medium / high

❌ 400 エラー

思考OFF + effort xhigh / max(リクエストごとに判定)

🔧 推奨

切らずに effort を low / medium に下げる

さらに、400 にならず通った場合でも副作用がある。公式は、思考を切った Opus 5 がツール呼び出しを本文テキストとして書いてしまうことがある(ツールは実行されないのに処理は「成功」して見える)、内部XMLタグが出力に漏れることがある、と明記している。エージェントを組んでいるなら思考はONのまま effort を下げるのが安全で、コスト削減効果もほぼ同じ方向に働く。

Sonnet 5.5 は disabled を受け付けない(400 エラー)。いちばん弱い設定は thinking: {"type": "between_tools"} で、回答の前の思考(up-front thinking)だけを切る。ツール呼び出しの合間に書く短い進捗メモは thinking ブロックで返り続け、ツールを使わないリクエストなら Sonnet 5 の disabled と同じく本文だけが返る。使えるのは effort high 以下だけで、xhigh / max と組み合わせると 400 になる(公式「What's new in Claude Sonnet 5.5」)。

8. ツールの合間も考える——interleaved thinking

思考は「回答の前に1回」だけではない。interleaved thinking(交互思考)では、Claudeがツール呼び出しの合間にも思考し、ツールの結果を吟味してから次の一手を決める。検索結果を見て計画を修正する、コマンド出力を読んでから次のコマンドを選ぶ——エージェント的な動きの質を支える仕組みだ。

ここにも世代差がある。旧世代の拡張思考では interleaved-thinking-2025-05-14 というベータヘッダを付ける必要があったが、適応的思考では自動で有効になり、ヘッダは不要(公式ドキュメントは「adaptive thinking interleaves automatically」と明記し、移行後はヘッダを外してよいとしている)。適応的思考への移行は、この設定を1つ減らせるという意味でもコードを単純にする。

9. 速さが欲しいときは fast mode

「考える品質は欲しい、でも待ち時間を減らしたい」場合の選択肢が fast mode だ。Claude Code公式ドキュメント「Fast mode」によれば、fast mode は別モデルへの格下げではなく、同じ Claude Opus を速度優先の構成で動かすもの。出力は最大約2.5倍速になり、単価は2倍(2026年9月25日時点で Opus 5.5 は入力$8/出力$40、Opus 5 / Opus 4.8 は入力$10/出力$50)になる。対応は Opus 5.5・Opus 5・Opus 4.8 の3つで、Opus 4.7 の fast mode は2026年7月24日に提供終了した。

Claude Code では /fast

CLIで /fast と打つとオン/オフを切り替えられる(VS Code拡張では、対応モデルを選んでいるときに「Toggle fast mode」コマンドが出る)。対話的な高速イテレーションではオン、コスト重視の長作業ではオフ、が公式の使い分け。

API ではリサーチプレビュー

Claude API 限定で、Amazon Bedrock・Google Cloud・Microsoft Foundry では使えない。速度の切り替えはプロンプトキャッシュを無効化する点にも注意。

思考・effort・fast mode は役割が違う。思考=考えるかどうかの仕組み、effort=どれだけ深く考えるか、fast mode=同じ思考をどれだけ速く出すか。「遅いから思考を切る」の前に、effort を下げる・fast mode を使う、の2枚のカードがあることを覚えておきたい。

まとめ

  • 拡張思考(budget_tokens)は旧方式。Opus 4.6 / Sonnet 4.6 で非推奨、Opus 4.7 以降は 400 エラー。拡張思考だけに対応するモデル(Haiku 4.5 / Sonnet 4.5 / Opus 4.5)では今も唯一の思考方式
  • 適応的思考(adaptive)が現行方式。考えるか・どれだけ考えるかはモデルが判断し、深さは effort(5段階・既定は多くのモデルで high、Opus 5.5 は medium)で調整する
  • Opus 5 以降・Sonnet 5 以降・Fable は思考が既定でON。Opus 5.5 と Fable はOFF不可、Opus 5 は effort high 以下でのみOFF可、Sonnet 5 はOFF可、Sonnet 5.5 は disabled の代わりに between_tools(最初の思考だけOFF・effort high 以下)
  • 思考は見えなくても課金される。新世代の既定は display: "omitted"(空の思考ブロック)。実測は usage.output_tokens_details.thinking_tokens で
  • 思考OFFには副作用(ツール呼び出しのテキスト化・タグ漏れ)。切るより effort を下げるのが安全
  • interleaved thinking は adaptive なら自動。ベータヘッダは不要になった
  • 速度が要るなら fast mode(約2.5倍速・単価2倍・Opus 5.5/5/4.8・Claude Code は /fast)

FAQ

Q. budget_tokens を指定したら 400 エラーになりました。

A. Opus 4.7 以降のモデル(Opus 5.5 / Opus 5 / Sonnet 5.5 / Sonnet 5 / Fable 含む)は thinking: {"type": "enabled", "budget_tokens": N} を受け付けません。thinking: {"type": "adaptive"} に書き換え、深さの調整は output_config: {"effort": ...} で行ってください。Haiku 4.5 や Sonnet 4.5 のように拡張思考だけに対応するモデルでは、逆に adaptive が 400 になるので書き換えないでください。

Q. 適応的思考にしたら回答が途中で切れるようになりました。

A. 思考トークンは max_tokens に算入されます。とくに Opus 5 以降は思考が既定ONなので、旧モデル向けに max_tokens を小さく絞っていたコードは思考に予算を食われて回答が切れがちです。max_tokens に余裕を持たせるか、effort を下げてください。

Q. 思考の中身が空で返ってきます。壊れていますか?

A. 仕様です。Opus 5.5 / Opus 5 / Sonnet 5.5 / Sonnet 5 / Fable / Opus 4.8 / 4.7 では display の既定が "omitted"(空の思考ブロック)になっています。要約を見たい場合は thinking: {"type": "adaptive", "display": "summarized"} を明示してください。どちらでも課金額は同じです。

Q. 思考をOFFにすればその分安くなりますか?

A. 思考トークンが減る分は安くなります。ただし Opus 5.5 と Fable はそもそも思考を切れず(400 エラー)、Opus 5 では effort xhigh/max と併用できず(400 エラー)、通った場合もツール呼び出しがテキスト化される・内部タグが漏れるといった副作用が公式に報告されています。エージェント用途では思考ONのまま effort を low / medium に下げる方が、安全にコストを削れます。

Q. Claude Code(チャットアプリ)でも思考の設定は要りますか?

A. Claude Code や claude.ai では思考の管理はアプリ側が行うため、APIパラメータの指定は不要です。ユーザーが触れるのは effort(工数)設定と /fast(fast mode の切り替え)の2つで、思考そのものの ON/OFF を意識する必要はありません。

※ 本記事の仕様・数値は、Anthropic公式ドキュメント「Thinking」・「Extended thinking」・Claude Code公式ドキュメント「Fast mode」(いずれも2026年8月時点)に基づく。仕様は変更されることがあるため、実装前に公式ドキュメントで最新の記載を確認してほしい。