Extended thinking de Claude
Cette page explique comment activer l’extended thinking de Claude et lire le contenu du thinking. Les ID de modèle et les adresses d’endpoint figurent dans la présentation de la famille Claude.
L'essentielAvec l’API native, passez thinking ; avec l’API compatible OpenAI, passez un objet reasoning. Ne réglez pas temperature lorsque le thinking est activé.
L’extended thinking permet au modèle de raisonner avant de répondre ; il convient aux mathématiques, au code et aux analyses en plusieurs étapes. Lors de nos tests, les modèles suivants renvoient de façon fiable le contenu du thinking avec le fournisseur par défaut : Opus 5.5, Opus 5, Opus 4.8, Opus 4.6, Sonnet 4.6, Haiku 5.5, Haiku 4.5, Fable 5.
API native Anthropic
Deux modes :
Python
claude_thinking.py
import os
import anthropic
client = anthropic.Anthropic(base_url="https://api.ofox.ai/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": "Une batte et une balle coûtent 1,10 dollar au total, et la batte coûte 1 dollar de plus que la balle. Combien coûte la balle ?"}],
)
for block in message.content:
if block.type == "thinking":
print("[Thinking]", block.thinking)
elif block.type == "text":
print("[Réponse]", block.text)- Dans le
contentde la réponse, le blocthinkingapparaît d’abord, puis le bloctext. Le blocthinkingcomporte unesignature, qu’il faut renvoyer telle quelle lors des appels d’outils sur plusieurs tours. - En streaming, le contenu du thinking arrive par des événements
thinking_delta, suivis d’un événementsignature_delta, puis destext_delta. - Lorsque le thinking est activé, ne réglez pas
temperature(ou réglez-le sur 1), et ne réglez pastop_k. - Les tokens consommés par le thinking sont comptés dans
output_tokenset facturés au prix unitaire de sortie.
API compatible OpenAI
Activez-le avec un objet reasoning, dont max_tokens est le budget de thinking :
claude_thinking_openai.py
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.ofox.ai/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": "Une batte et une balle coûtent 1,10 dollar au total, et la batte coûte 1 dollar de plus que la balle. Combien coûte la balle ?"}],
)
msg = resp.choices[0].message
details = getattr(msg, "reasoning_details", None) or []
print("[Thinking]", "".join(d.get("text", "") for d in details))
print("[Réponse]", msg.content)- Dans une réponse non streamée, le contenu du thinking se trouve dans
message.reasoning_details; concaténez letextde chaque élément dans l’ordre. - Dans une réponse streamée, le contenu du thinking se trouve dans
delta.reasoning_content.
Les autres erreurs sont décrites dans Erreurs courantes.
Dernière mise à jour le