← レッスンに戻る
第4章 · Claude API応用

Extended Thinking

Extended Thinking · 約 10 分

重要キーワード

English日本語説明
Extended Thinking 拡張思考 回答前に長い内部推論を行うモード
budget_tokens 思考予算 Extended Thinking 内部で使えるトークン上限
Reasoning Trace 推論トレース 内部思考の連鎖

Extended Thinking (拡張思考)

Claude Opus / Sonnet 4 系 には、回答前に長い思考連鎖を行う Extended Thinking モードがあります。 難問に対する正答率が向上しますが、トークンとレイテンシが増えます。

有効化

res = client.messages.create(
    model="claude-opus-4-7",
    max_tokens=8000,
    thinking={
        "type": "enabled",
        "budget_tokens": 4000,   # 思考に使えるトークン上限
    },
    messages=[{"role": "user", "content": "次の問題を解いて..."}],
)

思考内容を読む

contentthinking ブロックが返ります。

for block in res.content:
    if block.type == "thinking":
        print("[内部思考]", block.thinking)
    elif block.type == "text":
        print("[最終回答]", block.text)

いつ使うか

使うべき: - 数学・パズル・複雑な推論 - バグの根本原因分析 - マルチステップの計画立案 - 安全性の高い判断 (拒否すべきか吟味) - 多変数の最適化問題

使うべきでない: - 単純な Q&A や生成 - レイテンシが厳しい UI - 大量バッチで合計コストを抑えたいとき

通常 CoT との違い

プロンプト CoT Extended Thinking
制御 プロンプトで指示 API パラメータ
出力に思考が混ざるか 混ざる (タグで分離) 別ブロックで自動分離
隠蔽 自分で除去 既定で隠蔽されている
訓練 一般応答 思考専用に訓練済み

注意

Tool Use と組み合わせる

Extended Thinking 中に ツールを呼ぶ計画 を立てさせることも可能です。 複雑なエージェントワークフローでは強力な組み合わせ。

試す

簡単な推論問題で見比べましょう。

▶ 難問を Opus で
ある工場で、3 つの機械 A・B・C が部品を作っています。A は 2 分に 1 個、B は 3 分に 1 個、C は 5 分に 1 個作ります。3 台同時に稼働して 60 分で何個できますか?ステップを示してから答えてください。

演習問題

演習 1: Extended Thinking 有無で正答率比較

次の 3 問について、thinking 無しと有り (budget_tokens=4000) で 5 回ずつ 実行し、正答率を比較してください。

  1. 「24 を 2 つ以上の素数の和で表す全パターンを列挙」
  2. 「100 から 1 までで、3 でも 5 でも割れる数の総和」
  3. 「2026 年 5 月 5 日は何曜日?ツェラーの公式で計算してください」
スタータープロンプト:
ツェラーの公式を使って 2026 年 5 月 5 日が何曜日か計算してください。計算過程を段階的に示してください。
ヒントを見る

Playground UI からは Extended Thinking の有効化はできないので、この演習は API スクリプトで行ってください。

理解度チェック

  1. Extended Thinking を有効化するパラメータ名は?
    1. thinking
    2. reasoning
    3. cot
    4. deep_mode
  2. Extended Thinking を使うべきでない場面は?
    1. 複雑な推論
    2. 難問数学
    3. シンプルな Q&A・低レイテンシ要件
    4. バグの根本分析
  3. 思考内容は API レスポンスのどこに含まれる?
    1. text ブロック
    2. thinking ブロック
    3. usage
    4. metadata
解答と解説を見る
  1. A — `thinking={"type": "enabled", "budget_tokens": ...}` で有効化します。
  2. C — 簡単なタスクや低レイテンシ要件ではコスト・遅延が無駄になります。
  3. B — `content` の中に `type="thinking"` のブロックとして返ります。