Claude API の思考機能には extended thinking(拡張思考)と adaptive thinking(適応型思考)の2種類があります。名称が似ているため混同しやすいですが、設定方法も動作も異なります。
extended thinking とは
extended thinking は、トークン予算を数値で明示する方式です。thinking: {type: "enabled", budget_tokens: N} のように上限トークン数を指定します。
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=16000,
thinking={
"type": "enabled",
"budget_tokens": 10000,
"display": "summarized", # "summarized" または "omitted"
},
messages=[{"role": "user", "content": "この数式を証明してください。..."}],
)
display フィールドは思考内容をどう返すかを指定します。"summarized" は要約テキストを返し、"omitted" はストリーミング時の TTFT(最初のトークンまでの時間)を削減しますが、いずれも課金は生成された生の思考トークン全体に対して発生します。
この方式は古いモデル(Opus 4.5 以前)で唯一利用できた方法です。現在は Opus 4.6 / Sonnet 4.6 でも動作しますが、非推奨扱いとなっています。Opus 4.8 / 4.7 では type: "enabled" を指定すると 400 エラーが返ります。
adaptive thinking とは
adaptive thinking は、Claude 自身がリクエストの複雑さに応じて「いつ・どれだけ思考するか」を判断する方式です。thinking: {type: "adaptive"} と指定するだけで有効になります。
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive"},
output_config={"effort": "high"}, # 思考の深さをガイドするオプション
messages=[{"role": "user", "content": "..."}],
)
adaptive thinking ではインターリーブ思考(ツール呼び出しの間でも思考できる機能)が自動で有効になります。extended thinking でインターリーブを使うにはベータヘッダー interleaved-thinking-2025-05-14 が必要でしたが、adaptive ではその手間が不要です。エージェントがツール結果を受け取ったあと、次のアクションに進む前に再度推論できるため、複数ツールを使うワークフローの品質が向上します。
effort パラメータとの関係
effort パラメータは「adaptive thinking の深さに対するガイド」であり、思考モードそのものではありません。output_config: {"effort": "medium"} のように指定すると、Claude が思考量・ツール呼び出し回数・出力の詳細さを調整します。
budget_tokens が思考だけに影響するのに対し、effort はテキスト出力やツール呼び出し回数も含めたすべてのトークン消費に影響します。effort は adaptive thinking なしでも使えます。
モデル別対応表
| モデル | extended thinking | adaptive thinking |
|---|---|---|
| Fable 5 / Mythos 5 | ❌(400エラー) | ✅ 常にオン |
| Opus 4.8 / 4.7 | ❌(400エラー) | ✅(明示設定必要) |
| Opus 4.6 / Sonnet 4.6 | ⚠️ 非推奨・動作する | ✅ 推奨 |
| Opus 4.5 以前 | ✅(唯一の方法) | ❌ |
Fable 5 / Mythos 5 は「常に思考する」世代であり、thinking: {type: "disabled"} 自体がエラーになります。思考は無効化できず、API の設計上も「思考するかどうか」ではなく「どれくらい思考するか」だけを制御するモデルです。
Opus 4.8 / 4.7 への移行
Opus 4.8 / 4.7 に移行する際は、budget_tokens の指定を削除し、thinking: {type: "adaptive"} に置き換えます。思考の深さを制御したい場合は output_config: {"effort": "xhigh"} などで調整します。合わせて max_tokens も 64,000 以上に引き上げることが推奨されます(xhigh 以上の effort では長い出力が生成される場合があるため)。
まとめ
- extended thinking:トークン予算を手動指定。古いモデル向け、現在は非推奨
- adaptive thinking:Claude が自己判断。最新モデルの推奨方式
- effort:adaptive thinking の深さを制御するガイド。思考以外のトークンにも影響する
- Opus 4.8 / 4.7 では extended thinking は 400 エラーになるため、adaptive thinking への移行が必須です
- Fable 5 / Mythos 5 では思考は常にオンで無効化できない