拡張思考(Extended Thinking)は、Claudeが最終的な回答を出す前に、段階的な推論を「思考ブロック」として出力できる機能です。数学・コーディング・複雑な分析など、じっくり考えるほど精度が上がるタスクで有効です。この記事ではAPIでの有効化方法と、思考ブロックの扱い方を解説します。
概要
拡張思考を有効にすると、Claudeは回答本文の前に、内部的な推論プロセスを thinking という種類のコンテンツブロックとして返します。これにより、複雑な問題を分解しながら考えるため、通常より高品質な回答が得られやすくなります。対応モデル(Claude Opus / Sonnet 系)でサポートされ、Messages API のパラメータで制御します。
拡張思考は万能ではありません。単純な事実応答や短い変換タスクでは、思考トークンを消費するだけで効果が薄いこともあります。「難しい推論を要するタスク」に絞って使うのが基本方針です。
拡張思考とは
Claudeが最終回答に至るまでの中間的な思考を可視化する仕組みです。人間が下書きやメモを取りながら考えるのに近く、Claudeは与えられた「思考予算(budget)」の範囲でステップを踏んで検討します。思考ブロックの内容は最終回答とは区別され、レスポンス内で thinking ブロックと text ブロックに分かれて返されます。
思考トークンも課金対象の出力トークンに含まれます。予算を大きくするほど深く考えられますが、コストとレイテンシは増えます。タスクの難易度に応じて予算を調整するのが実務上のコツです。
APIでの有効化
Messages API のリクエストに thinking パラメータを追加します。type を "enabled" にし、budget_tokens に思考に割り当てる最大トークン数を指定します。budget_tokens は最低 1024 以上で、かつ max_tokens より小さい値にする必要があります。
curl https://api.anthropic.com/v1/messages \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data '{
"model": "claude-opus-4-8",
"max_tokens": 16000,
"thinking": { "type": "enabled", "budget_tokens": 8000 },
"messages": [
{ "role": "user", "content": "40個のリンゴを3人で分け、余りを最も公平に配る方法は?" }
]
}'
Python SDK でも同様に、client.messages.create(...) の引数に thinking={"type": "enabled", "budget_tokens": 8000} を渡します。ストリーミングにも対応しており、思考ブロックは thinking_delta として順次届きます。
thinkingブロックの扱い
レスポンスの content 配列には、thinking ブロックと最終回答の text ブロックが含まれます。ツール使用(tool use)を伴う複数ターンの会話では、直前のアシスタント応答に含まれる thinking ブロックを、次のリクエストにそのまま含めて返す必要があります。思考ブロックを削除して送ると、モデルの推論の連続性が失われるため注意してください。
安全性の観点から内容が伏せられた redacted_thinking ブロックが返ることもあります。中身は暗号化されて読めませんが、これも会話を継続する際はそのまま送り返します。表示用途では thinking ブロックをユーザーに見せるかどうかをアプリ側で選べます。
ベストプラクティス
- 難しいタスクに絞る: 数学、アルゴリズム設計、多段の論理推論、コードのデバッグなど、深く考えるほど正確になるタスクで使う。
- 予算はタスクに応じて調整: まずは小さめ(例: 数千トークン)から始め、精度が不足するなら増やす。むやみに大きくしない。
- 思考ブロックを保持する: ツール使用を挟む会話では、前ターンの thinking / redacted_thinking を必ず次のリクエストに含める。
- プロンプトで手順を強制しすぎない: 「まずステップを書け」等を細かく指示するより、拡張思考に任せた方が良い結果になることが多い。
最新の対応モデルやパラメータの詳細は、公式APIドキュメントを確認してください。本ページは非公式の日本語まとめです。