Was this page helpful?
This feature is eligible for Zero Data Retention (ZDR). When your organization has a ZDR arrangement, data sent through this feature is not stored after the API response is returned.
La réflexion étendue donne à Claude des capacités de raisonnement améliorées pour les tâches complexes, tout en fournissant différents niveaux de transparence dans son processus de réflexion étape par étape avant de livrer sa réponse finale.
Pour Claude Opus 4.7 et les modèles ultérieurs, utilisez la réflexion adaptative (thinking: {type: "adaptive"}) avec le paramètre d'effort. La réflexion étendue manuelle (thinking: {type: "enabled", budget_tokens: N}) n'est plus prise en charge sur Claude Opus 4.7 ou les modèles ultérieurs et retourne une erreur 400. Pour Claude Opus 4.6 et Claude Sonnet 4.6, la réflexion adaptative est également recommandée ; la configuration manuelle est toujours fonctionnelle sur ces modèles mais est dépréciée et sera supprimée dans une future version du modèle.
La réflexion étendue manuelle (thinking: {type: "enabled", budget_tokens: N}) est prise en charge sur tous les modèles Claude actuels sauf Claude Opus 4.7 et les modèles ultérieurs, où elle n'est plus acceptée et retourne une erreur 400. Quelques modèles ont un comportement spécifique au mode :
claude-opus-4-7) et modèles ultérieurs : la réflexion étendue manuelle n'est plus prise en charge. Utilisez plutôt la réflexion adaptative (thinking: {type: "adaptive"}) avec le paramètre d'effort.thinking: {type: "enabled", budget_tokens: N} est également accepté. thinking: {type: "disabled"} n'est pas pris en charge, et display prend par défaut la valeur "omitted" plutôt que de retourner le contenu de la réflexion. Passez display: "summarized" pour recevoir des résumés.claude-opus-4-6) : la réflexion adaptative est recommandée ; le mode manuel (type: "enabled") est déprécié mais toujours fonctionnel.claude-sonnet-4-6) : la réflexion adaptative est recommandée ; le mode manuel (type: "enabled") avec le mode entrelacé est déprécié mais toujours fonctionnel.Le comportement de l'API diffère entre Claude Sonnet 3.7 et les modèles Claude 4, mais les formes d'API restent exactement les mêmes.
Pour plus d'informations, consultez Différences de réflexion entre les versions de modèles.
Lorsque la réflexion étendue est activée, Claude crée des blocs de contenu thinking où il produit son raisonnement interne. Claude intègre les insights de ce raisonnement avant de formuler une réponse finale.
La réponse de l'API inclut les blocs de contenu thinking, suivis des blocs de contenu text.
Voici un exemple du format de réponse par défaut :
{
"content": [
{
"type": "thinking",
"thinking": "Let me analyze this step by step...",
"signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
},
{
"type": "text",
"text": "Based on my analysis..."
}
]
}Pour plus d'informations sur le format de réponse de la réflexion étendue, consultez la Référence de l'API Messages.
Voici un exemple d'utilisation de la réflexion étendue dans l'API Messages :
Pour activer la réflexion étendue, ajoutez un objet thinking, avec le paramètre type défini sur enabled et le budget_tokens défini sur un budget de tokens spécifié pour la réflexion étendue. Pour Claude Opus 4.6 et Claude Sonnet 4.6, utilisez plutôt type: "adaptive". Consultez Réflexion adaptative pour plus de détails. Bien que type: "enabled" avec budget_tokens soit toujours fonctionnel sur ces modèles, il est déprécié et sera supprimé dans une future version.
Le paramètre budget_tokens détermine le nombre maximum de tokens que Claude est autorisé à utiliser pour son processus de raisonnement interne. Dans Claude 4 et les modèles ultérieurs, cette limite s'applique aux tokens de réflexion complète, et non à la sortie résumée. Des budgets plus importants peuvent améliorer la qualité de la réponse en permettant une analyse plus approfondie pour les problèmes complexes, bien que Claude ne puisse pas utiliser l'intégralité du budget alloué, en particulier pour les plages supérieures à 32k.
budget_tokens est déprécié sur Claude Opus 4.6 et Claude Sonnet 4.6 et sera supprimé dans une future version du modèle. Utilisez la réflexion adaptative avec le paramètre d'effort pour contrôler la profondeur de la réflexion à la place.
Claude Mythos Preview, Claude Opus 4.7 et Claude Opus 4.6 prennent en charge jusqu'à 128k tokens de sortie. Claude Sonnet 4.6 et Claude Haiku 4.5 prennent en charge jusqu'à 64k. Consultez l'aperçu des modèles pour les limites des modèles hérités. Sur l'API Message Batches, l'en-tête bêta output-300k-2026-03-24 augmente la limite de sortie à 300k pour Opus 4.7, Opus 4.6 et Sonnet 4.6.
budget_tokens doit être défini sur une valeur inférieure à max_tokens. Cependant, lors de l'utilisation de la réflexion entrelacée avec des outils, vous pouvez dépasser cette limite car la limite de tokens devient votre fenêtre de contexte entière.
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. This is the default behavior on Claude 4 models when the display field on the thinking configuration is unset or set to "summarized". On Claude Opus 4.7 and Claude Mythos Preview, display defaults to "omitted" instead, so you must set display: "summarized" explicitly to receive summarized thinking.
Here are some important considerations for summarized thinking:
In rare cases where you need access to full thinking output for Claude 4 models, contact our sales team.
The display field on the thinking configuration controls how thinking content is returned in API responses. It accepts two values:
"summarized": Thinking blocks contain summarized thinking text. See Summarized thinking for details. This is the default on Claude Opus 4.6, Claude Sonnet 4.6, and earlier Claude 4 models."omitted": Thinking blocks are returned with an empty thinking field. The signature field still carries the encrypted full thinking for multi-turn continuity (see Thinking encryption). This is the default on Claude Opus 4.7 and Claude Mythos Preview.Setting display: "omitted" is useful when your application doesn't surface thinking content to users. The primary benefit is faster time-to-first-text-token when streaming: The server skips streaming thinking tokens entirely and delivers only the signature, so the final text response begins streaming sooner.
Here are some important considerations for omitted thinking:
signature to reconstruct the original thinking for prompt construction (see Preserving thinking blocks). Any text you place in the thinking field of a round-tripped omitted block is ignored.display is invalid with thinking.type: "disabled" (there is nothing to display).thinking.type: "adaptive" and the model skips thinking for a simple request, no thinking block is produced regardless of display.The signature field is identical whether display is "summarized" or "omitted". Switching display values between turns in a conversation is supported.
Sur Claude Mythos Preview, display prend par défaut la valeur "omitted". Les exemples de cette section passent display explicitement pour qu'ils s'appliquent à tous les modèles, mais sur Mythos Preview, vous pouvez le laisser non défini et recevoir le même comportement. Pour recevoir la réflexion résumée sur Mythos Preview, définissez explicitement display: "summarized".
Les pipelines automatisés qui ne présentent jamais le contenu de la réflexion aux utilisateurs finaux peuvent ignorer la surcharge de la réception des tokens de réflexion sur le fil. Les applications sensibles à la latence obtiennent la même qualité de raisonnement sans attendre que le texte de réflexion soit diffusé en continu avant que la réponse finale ne commence.
Lorsque display: "omitted" est défini, la réponse contient des blocs thinking avec un champ thinking vide :
{
"content": [
{
"type": "thinking",
"thinking": "",
"signature": "EosnCkYICxIMMb3LzNrMu..."
},
{
"type": "text",
"text": "The answer is 12,231."
}
]
}Lors de la diffusion en continu avec display: "omitted", aucun événement thinking_delta n'est émis ; consultez Réflexion en diffusion ci-dessous pour la séquence d'événements.
Vous pouvez diffuser en continu les réponses de réflexion étendue en utilisant les événements envoyés par le serveur (SSE).
Lorsque la diffusion en continu est activée pour la réflexion étendue, vous recevez le contenu de réflexion via les événements thinking_delta.
Lorsque display: "omitted" est défini, aucun événement thinking_delta n'est émis. Voir Contrôle de l'affichage de la réflexion.
Pour plus de documentation sur la diffusion en continu via l'API Messages, voir Streaming Messages.
Voici comment gérer la diffusion en continu avec la réflexion :
Exemple de sortie de diffusion en continu :
event: message_start
data: {"type": "message_start", "message": {"id": "msg_01...", "type": "message", "role": "assistant", "content": [], "model": "claude-sonnet-4-6", "stop_reason": null, "stop_sequence": null}}
event: content_block_start
data: {"type": "content_block_start", "index": 0, "content_block": {"type": "thinking", "thinking": "", "signature": ""}}
event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "I need to find the GCD of 1071 and 462 using the Euclidean algorithm.\n\n1071 = 2 × 462 + 147"}}
event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "\n462 = 3 × 147 + 21\n147 = 7 × 21 + 0\n\nSo GCD(1071, 462) = 21"}}
// Additional thinking deltas...
event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "signature_delta", "signature": "EqQBCgIYAhIM1gbcDa9GJwZA2b3hGgxBdjrkzLoky3dl1pkiMOYds..."}}
event: content_block_stop
data: {"type": "content_block_stop", "index": 0}
event: content_block_start
data: {"type": "content_block_start", "index": 1, "content_block": {"type": "text", "text": ""}}
event: content_block_delta
data: {"type": "content_block_delta", "index": 1, "delta": {"type": "text_delta", "text": "The greatest common divisor of 1071 and 462 is **21**."}}
// Additional text deltas...
event: content_block_stop
data: {"type": "content_block_stop", "index": 1}
event: message_delta
data: {"type": "message_delta", "delta": {"stop_reason": "end_turn", "stop_sequence": null}}
event: message_stop
data: {"type": "message_stop"}Lorsque display: "omitted" est défini, le bloc de réflexion s'ouvre, un seul signature_delta arrive, et le bloc se ferme sans aucun événement thinking_delta. La diffusion en continu du texte commence immédiatement après :
event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"thinking","thinking":"","signature":""}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"signature_delta","signature":"EosnCkYICxIMMb3LzNrMu..."}}
event: content_block_stop
data: {"type":"content_block_stop","index":0}
event: content_block_start
data: {"type":"content_block_start","index":1,"content_block":{"type":"text","text":""}}Lors de l'utilisation de la diffusion en continu avec la réflexion activée, vous pourriez remarquer que le texte arrive parfois en blocs plus importants alternant avec une livraison plus petite, token par token. C'est un comportement attendu, en particulier pour le contenu de réflexion.
Le système de diffusion en continu doit traiter le contenu par lots pour des performances optimales, ce qui peut entraîner ce modèle de livraison « fragmentée », avec des délais possibles entre les événements de diffusion en continu. Anthropic travaille continuellement à l'amélioration de cette expérience, avec des mises à jour futures axées sur la diffusion en continu plus fluide du contenu de réflexion.
La réflexion étendue peut être utilisée aux côtés de l'utilisation d'outils, permettant à Claude de raisonner sur la sélection des outils et le traitement des résultats.
Lors de l'utilisation de la réflexion étendue avec l'utilisation d'outils, soyez conscient des limitations suivantes :
Limitation du choix d'outil : L'utilisation d'outils avec réflexion ne supporte que tool_choice: {"type": "auto"} (la valeur par défaut) ou tool_choice: {"type": "none"}. L'utilisation de tool_choice: {"type": "any"} ou tool_choice: {"type": "tool", "name": "..."} entraînera une erreur car ces options forcent l'utilisation d'outils, ce qui est incompatible avec la réflexion étendue.
Préservation des blocs de réflexion : Lors de l'utilisation d'outils, vous devez renvoyer les blocs thinking à l'API pour le dernier message de l'assistant. Incluez le bloc complet non modifié à l'API pour maintenir la continuité du raisonnement.
Vous ne pouvez pas basculer la réflexion au milieu d'un tour d'assistant, y compris lors de boucles d'utilisation d'outils. L'intégralité du tour d'assistant doit fonctionner dans un seul mode de réflexion :
Du point de vue du modèle, les boucles d'utilisation d'outils font partie du tour d'assistant. Un tour d'assistant ne se termine que lorsque Claude termine sa réponse complète, qui peut inclure plusieurs appels d'outils et résultats.
Par exemple, cette séquence fait partie d'un seul tour d'assistant :
User: "What's the weather in Paris?"
Assistant: [thinking] + [tool_use: get_weather]
User: [tool_result: "20°C, sunny"]
Assistant: [text: "The weather in Paris is 20°C and sunny"]Bien qu'il y ait plusieurs messages API, la boucle d'utilisation d'outils fait conceptuellement partie d'une seule réponse d'assistant continue.
Lorsqu'un conflit de réflexion en milieu de tour se produit (comme le basculement de la réflexion activée ou désactivée lors d'une boucle d'utilisation d'outils), l'API désactive automatiquement la réflexion pour cette demande. Pour préserver la qualité du modèle et rester dans la distribution, l'API peut :
Cela signifie que tenter de basculer la réflexion en milieu de tour ne causera pas d'erreur, mais la réflexion sera silencieusement désactivée pour cette demande. Pour confirmer si la réflexion était active, vérifiez la présence de blocs thinking dans la réponse.
Meilleure pratique : Planifiez votre stratégie de réflexion au début de chaque tour plutôt que de tenter de basculer en milieu de tour.
Exemple : Basculer la réflexion après avoir complété un tour
User: "What's the weather?"
Assistant: [tool_use] (thinking disabled)
User: [tool_result]
Assistant: [text: "It's sunny"]
User: "What about tomorrow?"
Assistant: [thinking] + [text: "..."] (thinking enabled - new turn)En complétant le tour d'assistant avant de basculer la réflexion, vous vous assurez que la réflexion est réellement activée pour la nouvelle demande.
Basculer les modes de réflexion invalide également la mise en cache des invites pour l'historique des messages. Pour plus de détails, consultez la section Réflexion étendue avec mise en cache des invites.
Lors de l'utilisation d'outils, vous devez transmettre les blocs thinking à l'API, et vous devez inclure le bloc complet non modifié à l'API. Ceci est critique pour maintenir le flux de raisonnement du modèle et l'intégrité de la conversation.
Bien que vous puissiez omettre les blocs thinking des tours assistant antérieurs, transmettez toujours tous les blocs de réflexion à l'API pour toute conversation multi-tours. L'API :
Lorsque vous basculez les modes de réflexion lors d'une conversation, n'oubliez pas que l'intégralité du tour d'assistant (y compris les boucles d'utilisation d'outils) doit fonctionner dans un seul mode de réflexion. Pour plus de détails, consultez Basculer les modes de réflexion dans les conversations.
Lorsque Claude invoque des outils, il met en pause la construction de sa réponse pour attendre des informations externes. Lorsque les résultats des outils sont renvoyés, Claude continue à construire cette réponse existante. Cela nécessite de préserver les blocs de réflexion lors de l'utilisation d'outils, pour quelques raisons :
Continuité du raisonnement : Les blocs de réflexion capturent le raisonnement étape par étape de Claude qui a conduit aux demandes d'outils. Lorsque vous publiez les résultats des outils, inclure la réflexion originale garantit que Claude peut continuer son raisonnement à partir du point où il s'est arrêté.
Maintenance du contexte : Bien que les résultats des outils apparaissent comme des messages utilisateur dans la structure de l'API, ils font partie d'un flux de raisonnement continu. Préserver les blocs de réflexion maintient ce flux conceptuel à travers plusieurs appels API. Pour plus d'informations sur la gestion du contexte, consultez le guide sur les fenêtres de contexte.
Important : Lorsque vous fournissez des blocs thinking, l'intégralité de la séquence de blocs thinking consécutifs doit correspondre aux résultats générés par le modèle lors de la demande originale ; vous ne pouvez pas réorganiser ou modifier la séquence de ces blocs.
La réflexion étendue avec utilisation d'outils dans les modèles Claude 4 prend en charge la réflexion entrelacée, qui permet à Claude de réfléchir entre les appels d'outils et de faire un raisonnement plus sophistiqué après avoir reçu les résultats des outils.
Avec la réflexion entrelacée, Claude peut :
Support du modèle :
interleaved-thinking-2025-05-14 est déprécié sur Opus 4.6 et est ignoré en toute sécurité s'il est inclus.interleaved-thinking-2025-05-14 avec réflexion étendue manuelle (thinking: {type: "enabled"}) est toujours fonctionnel mais déprécié.Voici quelques considérations importantes pour la réflexion entrelacée :
budget_tokens peut dépasser le paramètre max_tokens, car il représente le budget total à travers tous les blocs de réflexion dans un tour d'assistant.interleaved-thinking-2025-05-14 dans les demandes à n'importe quel modèle, sans effet (sauf Opus 4.7 et Opus 4.6, où c'est déprécié et ignoré en toute sécurité).interleaved-thinking-2025-05-14 à n'importe quel modèle autre que Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 4.6, Claude Opus 4.5, Claude Opus 4.1, Opus 4 (déprécié), Sonnet 4.5, ou Sonnet 4 (déprécié), votre demande échouera.La mise en cache des invites avec réflexion a plusieurs considérations importantes :
Les tâches de réflexion étendue prennent souvent plus de 5 minutes pour se terminer. Envisagez d'utiliser la durée de cache d'1 heure pour maintenir les accès au cache lors de sessions de réflexion plus longues et de flux de travail multi-étapes.
Suppression du contexte des blocs de réflexion
Modèles d'invalidation du cache
Bien que les blocs de réflexion soient supprimés pour la mise en cache et les calculs de contexte, ils doivent être préservés lors de la continuation des conversations avec utilisation d'outils, en particulier avec la réflexion entrelacée.
Lors de l'utilisation de la réflexion étendue avec l'utilisation d'outils, les blocs de réflexion présentent un comportement de mise en cache spécifique qui affecte le comptage des jetons :
Fonctionnement :
Flux d'exemple détaillé :
Demande 1 :
User: "What's the weather in Paris?"Réponse 1 :
[thinking_block_1] + [tool_use block 1]Demande 2 :
User: ["What's the weather in Paris?"],
Assistant: [thinking_block_1] + [tool_use block 1],
User: [tool_result_1, cache=True]Réponse 2 :
[thinking_block_2] + [text block 2]La demande 2 écrit un cache du contenu de la demande (pas la réponse). Le cache inclut le message utilisateur original, le premier bloc de réflexion, le bloc d'utilisation d'outil et le résultat de l'outil.
Demande 3 :
User: ["What's the weather in Paris?"],
Assistant: [thinking_block_1] + [tool_use block 1],
User: [tool_result_1, cache=True],
Assistant: [thinking_block_2] + [text block 2],
User: [Text response, cache=True]Pour Claude Opus 4.5 et versions ultérieures (y compris Claude Opus 4.6), tous les blocs de réflexion précédents sont conservés par défaut. Pour les modèles plus anciens, parce qu'un bloc utilisateur non-résultat d'outil a été inclus, tous les blocs de réflexion précédents sont ignorés. Cette demande sera traitée de la même manière que :
User: ["What's the weather in Paris?"],
Assistant: [tool_use block 1],
User: [tool_result_1, cache=True],
Assistant: [text block 2],
User: [Text response, cache=True]Points clés :
cache_control explicitesDans les anciens modèles Claude (antérieurs à Claude Sonnet 3.7), si la somme des tokens d'invite et de max_tokens dépassait la fenêtre de contexte du modèle, le système ajustait automatiquement max_tokens pour tenir dans la limite de contexte. Cela signifiait que vous pouviez définir une grande valeur max_tokens et le système la réduirait silencieusement selon les besoins.
Avec les modèles Claude 3.7 et 4, max_tokens (qui inclut votre budget de réflexion lorsque la réflexion est activée) est appliqué comme une limite stricte. Le système retournera maintenant une erreur de validation si les tokens d'invite + max_tokens dépassent la taille de la fenêtre de contexte.
Vous pouvez consulter le guide sur les fenêtres de contexte pour une analyse plus approfondie.
Lors du calcul de l'utilisation de la fenêtre de contexte avec la réflexion activée, il y a certaines considérations à connaître :
max_tokens pour ce tourLe diagramme ci-dessous montre la gestion spécialisée des tokens lorsque la réflexion étendue est activée :
La fenêtre de contexte effective est calculée comme :
context window =
(current input tokens - previous thinking tokens) +
(thinking tokens + encrypted thinking tokens + text output tokens)Utilisez l'API de comptage des tokens pour obtenir des comptages de tokens précis pour votre cas d'usage spécifique, en particulier lorsque vous travaillez avec des conversations multi-tours qui incluent la réflexion.
Lors de l'utilisation de la réflexion étendue avec l'utilisation d'outils, les blocs de réflexion doivent être explicitement préservés et retournés avec les résultats des outils.
Le calcul de la fenêtre de contexte effective pour la réflexion étendue avec utilisation d'outils devient :
context window =
(current input tokens + previous thinking tokens + tool use tokens) +
(thinking tokens + encrypted thinking tokens + text output tokens)Le diagramme ci-dessous illustre la gestion des tokens pour la réflexion étendue avec utilisation d'outils :
Compte tenu du comportement de la fenêtre de contexte et de max_tokens avec la réflexion étendue sur les modèles Claude 3.7 et 4, vous devrez peut-être :
max_tokens à mesure que la longueur de votre invite changeCe changement a été apporté pour fournir un comportement plus prévisible et transparent, en particulier à mesure que les limites de tokens maximaux ont augmenté considérablement.
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. If you pass them back, whether the API keeps or strips them depends on the model: Opus 4.5+ and Sonnet 4.6+ keep them in context by default; earlier Opus/Sonnet models and all Haiku models strip them. See context editing to configure this.
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.signature values are compatible across platforms (Claude APIs, Amazon Bedrock, and Vertex AI). Values generated on one platform will be compatible with another.En plus des blocs thinking réguliers, l'API peut retourner des blocs redacted_thinking. Un bloc redacted_thinking contient du contenu de réflexion chiffré dans un champ data, sans résumé lisible :
{
"type": "redacted_thinking",
"data": "..."
}Le champ data est opaque et chiffré. Comme le champ signature sur les blocs de réflexion réguliers, vous devez repasser les blocs redacted_thinking à l'API inchangés lors de la continuation d'une conversation multi-tours avec des outils.
Si votre code filtre les blocs de contenu par type (par exemple, block.type == "thinking") lors du renvoi des réponses avec utilisation d'outils, incluez également les blocs redacted_thinking. Le filtrage sur block.type == "thinking" seul supprime silencieusement les blocs redacted_thinking et casse le protocole multi-tours décrit ci-dessus.
Les blocs redacted_thinking sont un type de bloc de contenu distinct retourné par l'API lorsque des portions de réflexion sont masquées pour des raisons de sécurité. Ceci est distinct de l'option display: "omitted", qui retourne des blocs thinking réguliers avec un champ thinking vide.
L'API Messages gère la réflexion différemment selon les modèles Claude Sonnet 3.7 et Claude 4, principalement dans le comportement de résumé.
Consultez le tableau ci-dessous pour une comparaison condensée :
| Fonctionnalité | Claude Sonnet 3.7 | Claude 4 Models (pré-Opus 4.5) | Claude Opus 4.5 | Claude Sonnet 4.6 | Claude Opus 4.6 (adaptive thinking) | Claude Mythos Preview (adaptive thinking) |
|---|---|---|---|---|---|---|
| Sortie de réflexion | Retourne la sortie de réflexion complète | Retourne la réflexion résumée | Retourne la réflexion résumée | Retourne la réflexion résumée | Retourne la réflexion résumée | Omis par défaut ; définissez display: "summarized" pour recevoir la réflexion résumée. Les tokens de réflexion bruts ne sont jamais retournés. |
| Réflexion entrelacée | Non supportée | Supportée avec l'en-tête bêta interleaved-thinking-2025-05-14 | Supportée avec l'en-tête bêta interleaved-thinking-2025-05-14 |
À partir de Claude Opus 4.5 (et continuant dans Claude Opus 4.6), les blocs de réflexion des tours d'assistant précédentes sont préservés dans le contexte du modèle par défaut. Ceci diffère des modèles antérieurs, qui suppriment les blocs de réflexion des tours précédentes.
Avantages de la préservation des blocs de réflexion :
Considérations importantes :
Pour les modèles antérieurs (Claude Sonnet 4.5, Opus 4.1, etc.), les blocs de réflexion des tours précédentes continuent à être supprimés du contexte. Le comportement existant décrit dans la section Réflexion étendue avec mise en cache des invites s'applique à ces modèles.
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:
When using display: "omitted":
thinking field is empty)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 thinking content visible in the response.
max_tokens est supérieur à 21 333 pour éviter les délais d'expiration HTTP sur les demandes longues. Ceci est une validation côté client, pas une restriction API. Si vous n'avez pas besoin de traiter les événements de manière incrémentale, utilisez .stream() avec .get_final_message() (Python) ou .finalMessage() (TypeScript) pour obtenir l'objet Message complet sans gérer les événements individuels. Consultez Streaming Messages pour plus de détails. Lors du streaming, soyez préparé à gérer les blocs de contenu de réflexion et de texte à mesure qu'ils arrivent.display: "omitted" sur la configuration de réflexion pour réduire le temps jusqu'au premier token de texte. Consultez Contrôle de l'affichage de la réflexion.temperature ou top_k ainsi qu'avec l'utilisation forcée d'outils.top_p sur des valeurs entre 1 et 0,95.client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=16000,
thinking={"type": "enabled", "budget_tokens": 10000},
messages=[
{
"role": "user",
"content": "Are there an infinite number of prime numbers such that n mod 4 == 3?",
}
],
)
# The response contains summarized thinking blocks and text blocks
for block in response.content:
if block.type == "thinking":
print(f"\nThinking summary: {block.thinking}")
elif block.type == "text":
print(f"\nResponse: {block.text}")client = anthropic.Anthropic()
with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=16000,
thinking={"type": "enabled", "budget_tokens": 10000},
messages=[
{
"role": "user",
"content": "What is the greatest common divisor of 1071 and 462?",
}
],
) as stream:
thinking_started = False
response_started = False
for event in stream:
if event.type == "content_block_start":
print(f"\nStarting {event.content_block.type} block...")
# Reset flags for each new block
thinking_started = False
response_started = False
elif event.type == "content_block_delta":
if event.delta.type == "thinking_delta":
if not thinking_started:
print("Thinking: ", end="", flush=True)
thinking_started = True
print(event.delta.thinking, end="", flush=True)
elif event.delta.type == "text_delta":
if not response_started:
print("Response: ", end="", flush=True)
response_started = True
print(event.delta.text, end="", flush=True)
elif event.type == "content_block_stop":
print("\nBlock complete.")interleaved-thinking-2025-05-14Supportée avec l'en-tête bêta interleaved-thinking-2025-05-14 ou automatique avec adaptive thinking |
| Automatique avec adaptive thinking (en-tête bêta non supporté) |
| Automatique avec adaptive thinking (en-tête bêta non supporté). Le raisonnement inter-outils se déplace dans les blocs de réflexion sur ce modèle. |
| Préservation des blocs de réflexion | Non préservée entre les tours | Non préservée entre les tours | Préservée par défaut | Préservée par défaut | Préservée par défaut | Préservée par défaut. Les blocs sont supprimés lors de la continuation de la conversation sur un modèle qui ne supporte pas le format de réflexion Mythos. |
Apprenez les meilleures pratiques d'ingénierie des invites pour la réflexion étendue.