Claude の拡張思考
このページでは、Claude の拡張思考を有効にして思考内容を読み取る方法を説明します。モデル ID とエンドポイントの URL は Claude シリーズの概要を参照してください。
ポイントネイティブ API では thinking を、OpenAI 互換 API では reasoning オブジェクトを渡します。思考を有効にする場合は temperature を設定しないでください。
拡張思考を使うと、モデルは回答の前に推論を行います。数学、コード、多段階の分析に向いています。実測では、次のモデルがデフォルトのプロバイダーで安定して思考内容を返しました:Opus 5.5、Opus 5、Opus 4.8、Opus 4.6、Sonnet 4.6、Haiku 5.5、Haiku 4.5、Fable 5。
Anthropic ネイティブ API
モードは 2 つあります。
Python
claude_thinking.py
import os
import anthropic
client = anthropic.Anthropic(base_url="https://api.ofox.io/anthropic", api_key=os.environ["OFOX_API_KEY"])
message = client.messages.create(
model="anthropic/claude-opus-5.5",
max_tokens=4000,
thinking={"type": "enabled", "budget_tokens": 2000},
messages=[{"role": "user", "content": "バットとボールは合わせて 1.10 ドルで、バットはボールより 1 ドル高い。ボールはいくら?"}],
)
for block in message.content:
if block.type == "thinking":
print("[思考]", block.thinking)
elif block.type == "text":
print("[回答]", block.text)- レスポンスの
contentには、まずthinkingブロック、続いてtextブロックが現れます。thinkingブロックにはsignatureが付いており、複数ターンのツール呼び出しではそのまま送り返す必要があります。 - ストリーミング出力では、思考内容は
thinking_deltaイベントで返され、続いてsignature_deltaイベントが 1 つ届いてからtext_deltaが始まります。 - 思考を有効にする場合は
temperatureを設定しないでください(または 1 に設定)。top_kも設定しないでください。 - 思考で消費したトークンは
output_tokensに含まれ、出力単価で課金されます。
OpenAI 互換 API
reasoning オブジェクトで有効にします。max_tokens が思考の予算になります。
claude_thinking_openai.py
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.ofox.io/v1", api_key=os.environ["OFOX_API_KEY"])
resp = client.chat.completions.create(
model="anthropic/claude-sonnet-4.6",
max_tokens=4000,
extra_body={"reasoning": {"max_tokens": 2000}},
messages=[{"role": "user", "content": "バットとボールは合わせて 1.10 ドルで、バットはボールより 1 ドル高い。ボールはいくら?"}],
)
msg = resp.choices[0].message
details = getattr(msg, "reasoning_details", None) or []
print("[思考]", "".join(d.get("text", "") for d in details))
print("[回答]", msg.content)- 非ストリーミングのレスポンスでは、思考内容は
message.reasoning_detailsにあります。各要素のtextを順に連結してください。 - ストリーミングのレスポンスでは、思考内容は
delta.reasoning_contentにあります。
その他のエラーはよくあるエラーを参照してください。
最終更新日