La pensée adaptative est la façon recommandée d'utiliser la pensée étendue avec Claude Opus 4.6. Au lieu de définir manuellement un budget de jetons de pensée, la pensée adaptative permet à Claude de décider dynamiquement quand et combien penser en fonction de la complexité de chaque demande.
La pensée adaptative produit de manière fiable de meilleures performances que la pensée étendue avec un budget_tokens fixe, et nous recommandons de passer à la pensée adaptative pour obtenir les réponses les plus intelligentes d'Opus 4.6. Aucun en-tête bêta n'est requis.
La pensée adaptative est supportée sur les modèles suivants :
claude-opus-4-6)thinking.type: "enabled" et budget_tokens sont dépréciés sur Opus 4.6 et seront supprimés dans une future version du modèle. Utilisez thinking.type: "adaptive" avec le paramètre effort à la place.
Les anciens modèles (Sonnet 4.5, Opus 4.5, etc.) ne supportent pas la pensée adaptative et nécessitent thinking.type: "enabled" avec budget_tokens.
En mode adaptatif, la pensée est optionnelle pour le modèle. Claude évalue la complexité de chaque demande et décide s'il doit penser et combien. Au niveau d'effort par défaut (high), Claude pensera presque toujours. Aux niveaux d'effort inférieurs, Claude peut ignorer la pensée pour les problèmes plus simples.
La pensée adaptative active également automatiquement la pensée entrelacée. Cela signifie que Claude peut penser entre les appels d'outils, ce qui la rend particulièrement efficace pour les flux de travail agentiques.
Définissez thinking.type sur "adaptive" dans votre demande API :
curl https://api.anthropic.com/v1/messages \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data \
'{
"model": "claude-opus-4-6",
"max_tokens": 16000,
"thinking": {
"type": "adaptive"
},
"messages": [
{
"role": "user",
"content": "Explain why the sum of two even numbers is always even."
}
]
}'Vous pouvez combiner la pensée adaptative avec le paramètre effort pour guider la quantité de pensée que Claude fait. Le niveau d'effort agit comme une orientation douce pour l'allocation de pensée de Claude :
| Niveau d'effort | Comportement de pensée |
|---|---|
max | Claude pense toujours sans contraintes sur la profondeur de pensée. Opus 4.6 uniquement — les demandes utilisant max sur d'autres modèles retourneront une erreur. |
high (par défaut) | Claude pense toujours. Fournit un raisonnement profond sur les tâches complexes. |
medium | Claude utilise une pensée modérée. Peut ignorer la pensée pour les requêtes très simples. |
low | Claude minimise la pensée. Ignore la pensée pour les tâches simples où la vitesse est la priorité. |
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-6",
max_tokens=16000,
thinking={
"type": "adaptive"
},
output_config={
"effort": "medium"
},
messages=[{
"role": "user",
"content": "What is the capital of France?"
}]
)
print(response.content[0].text)La pensée adaptative fonctionne de manière transparente avec le streaming. Les blocs de pensée sont diffusés via les événements thinking_delta tout comme le mode de pensée manuel :
import anthropic
client = anthropic.Anthropic()
with client.messages.stream(
model="claude-opus-4-6",
max_tokens=16000,
thinking={"type": "adaptive"},
messages=[{"role": "user", "content": "What is the greatest common divisor of 1071 and 462?"}],
) as stream:
for event in stream:
if event.type == "content_block_start":
print(f"\nStarting {event.content_block.type} block...")
elif event.type == "content_block_delta":
if event.delta.type == "thinking_delta":
print(event.delta.thinking, end="", flush=True)
elif event.delta.type == "text_delta":
print(event.delta.text, end="", flush=True)| Mode | Config | Disponibilité | Quand l'utiliser |
|---|---|---|---|
| Adaptative | thinking: {type: "adaptive"} | Opus 4.6 | Claude décide quand et combien penser. Utilisez effort pour guider. |
| Manuelle | thinking: {type: "enabled", budget_tokens: N} | Tous les modèles. Dépréciée sur Opus 4.6 — utilisez le mode adaptatif à la place. | Quand vous avez besoin d'un contrôle précis sur les dépenses de jetons de pensée. |
| Désactivée | Omettez le paramètre thinking | Tous les modèles | Quand vous n'avez pas besoin de pensée étendue et voulez la latence la plus basse. |
La pensée adaptative est actuellement disponible sur Opus 4.6. Les anciens modèles ne supportent que type: "enabled" avec budget_tokens. Sur Opus 4.6, type: "enabled" avec budget_tokens est toujours accepté mais déprécié — nous recommandons d'utiliser la pensée adaptative avec le paramètre effort à la place.
Lors de l'utilisation de la pensée adaptative, les tours d'assistant précédents n'ont pas besoin de commencer par des blocs de pensée. C'est plus flexible que le mode manuel, où l'API impose que les tours avec pensée activée commencent par un bloc de pensée.
Les demandes consécutives utilisant la pensée adaptive préservent les points d'arrêt du cache d'invite. Cependant, basculer entre les modes de pensée adaptive et enabled/disabled casse les points d'arrêt du cache pour les messages. Les invites système et les définitions d'outils restent en cache indépendamment des changements de mode.
Le comportement de déclenchement de la pensée adaptative est invitable. Si Claude pense plus ou moins souvent que vous le souhaitez, vous pouvez ajouter des conseils à votre invite système :
Extended thinking adds latency and should only be used when it
will meaningfully improve answer quality — typically for problems
that require multi-step reasoning. When in doubt, respond directly.Diriger Claude à penser moins souvent peut réduire la qualité sur les tâches qui bénéficient du raisonnement. Mesurez l'impact sur vos charges de travail spécifiques avant de déployer l'ajustement basé sur les invites en production. Envisagez de tester d'abord avec des niveaux d'effort inférieurs.
Utilisez max_tokens comme limite stricte sur la sortie totale (pensée + texte de réponse). Le paramètre effort fournit une orientation douce supplémentaire sur la quantité de pensée que Claude alloue. Ensemble, ces éléments vous donnent un contrôle efficace sur les coûts.
Aux niveaux d'effort high et max, Claude peut penser plus extensivement et peut être plus susceptible d'épuiser le budget max_tokens. Si vous observez stop_reason: "max_tokens" dans les réponses, envisagez d'augmenter max_tokens pour donner plus d'espace au modèle, ou baissez le niveau d'effort.
Les concepts suivants s'appliquent à tous les modèles qui supportent la pensée étendue, que vous utilisiez le mode adaptatif ou manuel.
With extended thinking enabled, the Messages API for Claude 4 models returns a summary of Claude's full thinking process. Summarized thinking provides the full intelligence benefits of extended thinking, while preventing misuse.
Here are some important considerations for summarized thinking:
Claude Sonnet 3.7 continues to return full thinking output.
In rare cases where you need access to full thinking output for Claude 4 models, contact our sales team.
Full thinking content is encrypted and returned in the signature field. This field is used to verify that thinking blocks were generated by Claude when passed back to the API.
It is only strictly necessary to send back thinking blocks when using tools with extended thinking. Otherwise you can omit thinking blocks from previous turns, or let the API strip them for you if you pass them back.
If sending back thinking blocks, we recommend passing everything back as you received it for consistency and to avoid potential issues.
Here are some important considerations on thinking encryption:
signature_delta inside a content_block_delta event just before the content_block_stop event.signature values are significantly longer in Claude 4 models than in previous models.signature field is an opaque field and should not be interpreted or parsed - it exists solely for verification purposes.signature values are compatible across platforms (Claude APIs, Amazon Bedrock, and Vertex AI). Values generated on one platform will be compatible with another.Occasionally Claude's internal reasoning will be flagged by our safety systems. When this occurs, we encrypt some or all of the thinking block and return it to you as a redacted_thinking block. redacted_thinking blocks are decrypted when passed back to the API, allowing Claude to continue its response without losing context.
When building customer-facing applications that use extended thinking:
Here's an example showing both normal and redacted thinking blocks:
{
"content": [
{
"type": "thinking",
"thinking": "Let me analyze this step by step...",
"signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
},
{
"type": "redacted_thinking",
"data": "EmwKAhgBEgy3va3pzix/LafPsn4aDFIT2Xlxh0L5L8rLVyIwxtE3rAFBa8cr3qpPkNRj2YfWXGmKDxH4mPnZ5sQ7vB9URj2pLmN3kF8/dW5hR7xJ0aP1oLs9yTcMnKVf2wRpEGjH9XZaBt4UvDcPrQ..."
},
{
"type": "text",
"text": "Based on my analysis..."
}
]
}Seeing redacted thinking blocks in your output is expected behavior. The model can still use this redacted reasoning to inform its responses while maintaining safety guardrails.
If you need to test redacted thinking handling in your application, you can use this special test string as your prompt: ANTHROPIC_MAGIC_STRING_TRIGGER_REDACTED_THINKING_46C9A13E193C177646C7398A98432ECCCE4C1253D5E2D82641AC0E52CC2876CB
When passing thinking and redacted_thinking blocks back to the API in a multi-turn conversation, you must include the complete unmodified block back to the API for the last assistant turn. This is critical for maintaining the model's reasoning flow. We suggest always passing back all thinking blocks to the API. For more details, see the Preserving thinking blocks section.
For complete pricing information including base rates, cache writes, cache hits, and output tokens, see the pricing page.
The thinking process incurs charges for:
When extended thinking is enabled, a specialized system prompt is automatically included to support this feature.
When using summarized thinking:
The billed output token count will not match the visible token count in the response. You are billed for the full thinking process, not the summary you see.
La page de pensée étendue couvre plusieurs sujets en plus de détail avec des exemples de code spécifiques au mode :
tool_choice quand la pensée est active.adaptive et enabled/disabled casse les points d'arrêt du cache pour les messages (les invites système et les définitions d'outils restent en cache).max_tokens et les limites de la fenêtre de contexte.En savoir plus sur la pensée étendue, y compris le mode manuel, l'utilisation d'outils et la mise en cache des invites.
Contrôlez la façon dont Claude répond en détail avec le paramètre effort.
Was this page helpful?