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

Extended Thinking

Extended Thinking · 約 10 分

重要キーワード

English日本語説明
Extended Thinking 拡張思考 回答前に長い内部推論を行うモード
Adaptive Thinking 適応思考 考えるか・どれだけ考えるかを Claude 自身が決める現行方式。人間は effort で頑張り度だけ指定する
budget_tokens 思考予算 (旧方式) 思考に使えるトークン上限を数字で指定する旧方式。Haiku 4.5 などで使用。Opus 4.7 以降・Claude 5 世代では 400 エラー
Reasoning Trace 推論トレース 内部思考の連鎖

Extended Thinking (拡張思考)

Claude には、回答する前に 頭の中でじっくり考える モードがあります。これを Extended Thinking (拡張思考) と呼びます。 難問に対する正答率が上がる代わりに、トークン (= 料金) と待ち時間が増えます。

📝 たとえるなら「計算用紙」 試験で難しい問題を解くとき、いきなり答えを書かずに 計算用紙で途中式を書きますよね。 Extended Thinking は、Claude に計算用紙を渡してから答えさせる仕組みです。 計算用紙に書いた分も「書いた量」としてカウントされる (= 課金される) 点も、実はそっくりです。

2026 年の書き方: adaptive thinking (適応思考)

以前は「計算用紙を何枚まで使ってよいか」を人間が 数字 (budget_tokens) で決めていました。 今は Claude 自身が「この問題は用紙が要るか・何枚要るか」を判断 します。これを adaptive thinking (適応思考) と呼びます。 人間が決めるのは effort (頑張り度) だけです (→ ch4-l8)。

res = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=16000,
    thinking={"type": "adaptive", "display": "summarized"},  # 思考の要約を見たいとき
    output_config={"effort": "high"},                        # 頑張り度: low〜max
    messages=[{"role": "user", "content": "次の問題を解いて..."}],
)

モデルごとの違い (ここだけ押さえれば OK)

モデル thinking を書かなかったら? 備考
Fable 5.1 / Opus 5.5 常に考える (オフにできない) 深さは effort だけで調整
Opus 5 / Sonnet 5 考える (adaptive が既定)
Opus 4.8 / 4.7 考えない 使うなら {"type": "adaptive"} を明示
Haiku 4.5 考えない 旧方式 budget_tokens で有効化 (下記)

🧭 budget_tokens 方式は Opus 4.7 以降と Claude 5 世代では 400 エラー になります。ネットの古い記事のコードをコピペするときは要注意です。

旧方式 (Haiku 4.5 など): budget_tokens

Haiku 4.5 のように adaptive に対応していないモデルでは、今も「計算用紙の枚数」を数字で渡します。

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

思考内容を読む

content に thinking ブロックが返ります。

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

👀 最近のモデルは「思考を見せない」が既定です。Fable / Opus 5 / Sonnet 5 などでは、何も指定しないと thinking ブロックの中身は 空文字 で返ります (考えてはいるし、課金もされている)。 中身を読みたいときは display: "summarized" を付けると 要約 が読めます。生の思考そのものは返ってきません。 画面に「考え中…」を出すアプリでは、これを付けないと 長い沈黙に見えてしまう ので注意。

いつ使うか

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

❌ 使うべきでない (effort を low にする or 思考オフにできるモデルならオフ): - 単純な Q&A や生成 - レイテンシが厳しい UI - 大量バッチで合計コストを抑えたいとき

通常 CoT との違い

プロンプト CoT Extended Thinking
制御 プロンプトで指示 API パラメータ (thinking / effort)
出力に思考が混ざるか 混ざる (タグで分離) 別ブロックで自動分離
見せる・隠す 自分で除去 既定で隠れている (要約は取得可)
訓練 一般応答 思考専用に訓練済み

注意

Tool Use と組み合わせる

Extended Thinking 中に ツールを呼ぶ計画 を立てさせることも可能です。 最近のモデルは「考える → ツールを使う → 結果を見てまた考える」を 1 回の応答の中で繰り返せます (interleaved thinking)。 複雑なエージェントワークフローでは強力な組み合わせです。

試す

簡単な推論問題で見比べましょう。「ステップを示して」と頼むのは プロンプト CoT (計算用紙を答案用紙に書かせる方式) です。

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

🎪 本物の Extended Thinking の「計算用紙」を見てみたい人は、wow ツアーのステーション 4 で実演できます (ログインが必要)。

演習問題

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

次の 3 問について、thinking 無しと有りで 5 回ずつ 実行し、正答率を比較してください。Haiku 4.5 なら thinking={"type": "enabled", "budget_tokens": 4000}、Sonnet 5 なら思考オン (既定) のまま effort を low と high で比べると違いが見えます。

  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
  4. Sonnet 5 や Opus 5 で思考ブロックの中身が空っぽで返ってきました。考えた内容の要約を読むにはどうする?
    1. temperature を 1.0 にする
    2. thinking に display: "summarized" を付ける
    3. budget_tokens を増やす
    4. 要約は読めない
  5. Extended Thinking を「計算用紙」にたとえたとき、adaptive thinking の説明として正しいのは?
    1. 人間が計算用紙の枚数を毎回数字で指定する
    2. 計算用紙が要るか・何枚使うかを Claude 自身が判断し、人間は頑張り度 (effort) だけ伝える
    3. 計算用紙を一切使わせない
    4. 計算用紙の内容をそのまま答案に書き写す
解答と解説を見る
  1. A — `thinking` パラメータで設定します。最新モデルは `{"type": "adaptive"}` (深さは effort で調整)、Haiku 4.5 などの旧方式は `{"type": "enabled", "budget_tokens": ...}` です。
  2. C — 簡単なタスクや低レイテンシ要件ではコスト・遅延が無駄になります。
  3. B — `content` の中に `type="thinking"` のブロックとして返ります。
  4. B — 最新モデルは思考の中身を既定で見せません (考えてはいて、課金もされる)。`display: "summarized"` を付けると要約が返ります。生の思考そのものは返りません。
  5. B — 枚数を数字で決めるのは旧方式 (budget_tokens)。adaptive では Claude が必要量を判断し、人間は effort でどのくらい本気を出すかだけを伝えます。