Skip to Content
ModèlesClaudeExtended thinking

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 :

ModeÉcritureRemarques
Budget fixe"thinking": {"type": "enabled", "budget_tokens": 2000}budget_tokens vaut au moins 1024 et doit être inférieur à max_tokens
Adaptatif"thinking": {"type": "adaptive"}Le modèle décide de la profondeur du thinking ; ajustable avec "output_config": {"effort": "low"}, etc.
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 content de la réponse, le bloc thinking apparaît d’abord, puis le bloc text. Le bloc thinking comporte une signature, 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énement signature_delta, puis des text_delta.
  • Lorsque le thinking est activé, ne réglez pas temperature (ou réglez-le sur 1), et ne réglez pas top_k.
  • Les tokens consommés par le thinking sont comptés dans output_tokens et 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 le text de 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