第4章 · Advanced Claude API

Extended Thinking

Extended Thinking
→ で次のスライド · F でフルスクリーン · N で講師ノート · Esc で終了

重要キーワード

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": "次の問題を解いて..."}],
)
  • budget_tokens は 1024 以上 かつ max_tokens より小さく。思考も max_tokens の中でカウントされるので、答えを書く分の余白を残す

思考内容を読む

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)
出力に思考が混ざるか 混ざる (タグで分離) 別ブロックで自動分離
見せる・隠す 自分で除去 既定で隠れている (要約は取得可)
訓練 一般応答 思考専用に訓練済み

注意

  • 思考も 出力トークンとして課金 されます。effort を上げるほど計算用紙の枚数が増えるイメージ。
  • 思考の要約を そのままユーザーに見せるかは設計次第。長すぎる/誤解を招くこともある。
  • temperature などのサンプリング設定は、最新モデル (Opus 4.7 以降・Claude 5 世代) では 指定すると 400 エラー。「ランダムさを調整する」発想自体が古くなりつつあります。

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 で実演できます (ログインが必要)。

Hands-on Exercise

演習: 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 日は何曜日?ツェラーの公式で計算してください」
▶ Playground を開いて実行

理解度チェック

5 問のクイズで理解度を確認しましょう。

クイズを開く
🎉

まとめ

お疲れ様でした!