Anthropic Extended Thinking(アンソロピックエクステンデッドシンキング)
AnthropicのClaude 3.7 Sonnet以降で利用可能な拡張推論機能。APIパラメータ`thinking`を有効化することで、モデルが回答前に最大数万トークンの内部思考プロセスを実行し、複雑な問題への精度を向上させる。
Anthropic Extended Thinking とは
AnthropicのExtended Thinkingは、ClaudeモデルがAPIを通じて利用できる拡張推論機能だ。Claude 3.7 Sonnetで初めて導入され、通常の回答生成前に「thinking」フェーズを設けることで、複雑な問題に対する精度を大幅に向上させる。
基本的な仕組み
Extended Thinkingが有効な場合、Claudeは以下のプロセスを実行する:
- 問題分析: 入力されたプロンプトを多角的に分解
- 仮説生成: 複数の解法・アプローチを内部で展開
- 検証と修正: 各仮説の妥当性を自己評価
- 回答統合: 最も信頼性の高い回答を最終出力として生成
この思考プロセスはAPIレスポンスにthinkingフィールドとして含まれ、開発者はモデルの推論過程を確認できる。
API 実装方法
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-3-7-sonnet-20250219",
max_tokens=16000,
thinking={
"type": "enabled",
"budget_tokens": 10000 # 最大思考トークン数
},
messages=[{
"role": "user",
"content": "この微分方程式を解いてください: dy/dx = x^2 + y"
}]
)
# 思考プロセスと最終回答を分離
for block in response.content:
if block.type == "thinking":
print(f"思考: {block.thinking}")
elif block.type == "text":
print(f"回答: {block.text}")
Thinking Budget の設定
budget_tokensパラメータで思考に使用するトークン上限を設定できる:
- 最小: 1,024トークン
- 推奨: 5,000〜10,000トークン(一般的なタスク)
- 最大: 100,000トークン(最も複雑な推論)
budget_tokensが大きいほど精度は上がるが、コストとレイテンシも増加する。
Interleaved Thinking
2025年5月に追加されたinterleaved-thinking-2025-05-14ベータでは、thinking blocksとtext blocksが交互に現れる「インターリーブ思考」が可能になった:
response = client.messages.create(
model="claude-3-7-sonnet-20250219",
betas=["interleaved-thinking-2025-05-14"],
...
)
これにより段階的な推論と出力が可能となり、長い問題での精度が向上する。
Claude Code での活用
Claude CodeではOption+T(macOS)でExtended Thinkingをトグル可能。有効にすると複雑なリファクタリング・設計問題・デバッグで精度が向上する。MAX_THINKING_TOKENS環境変数でbudgetを制御できる。
競合比較
| 機能 | Anthropic Extended Thinking | OpenAI o1 | DeepSeek R1 |
|---|---|---|---|
| 思考可視性 | ✅ APIで公開 | ❌ 非公開 | ✅ <think>タグ |
| Budget制御 | ✅ トークン数指定 | ❌ 非対応 | ❌ 非対応 |
| OSS | ❌ | ❌ | ✅ |
まとめ
Extended Thinkingは既存のClaude APIに推論能力を追加する実用的な機能だ。thinking budgetの柔軟な制御と思考プロセスの透明性が特徴で、複雑なタスクでのClaude活用を大幅に拡張する。