Loading...
    • Guide du développeur
    • Référence API
    • MCP
    • Ressources
    • Notes de version
    Search...
    ⌘K
    Premiers pas
    Introduction à ClaudeDémarrage rapide
    Modèles et tarification
    Aperçu des modèlesChoisir un modèleNouveautés dans Claude 4.6Guide de migrationDépréciation des modèlesTarification
    Créer avec Claude
    Aperçu des fonctionnalitésUtiliser l'API MessagesGérer les raisons d'arrêtMeilleures pratiques de prompting
    Gestion du contexte
    Fenêtres de contexteCompactionÉdition du contexte
    Capacités
    Mise en cache des promptsRéflexion étendueRéflexion adaptativeEffortStreaming de messagesTraitement par lotsCitationsSupport multilingueComptage des tokensEmbeddingsVisionSupport PDFAPI FilesRésultats de rechercheSorties structurées
    Outils
    AperçuComment implémenter l'utilisation d'outilsStreaming d'outils granulaireOutil BashOutil d'exécution de codeAppel d'outils programmatiqueOutil Computer useOutil Éditeur de texteOutil Web fetchOutil Web searchOutil MémoireOutil Tool search
    Compétences d'agent
    AperçuDémarrage rapideMeilleures pratiquesCompétences pour l'entrepriseUtiliser les compétences avec l'API
    SDK Agent
    AperçuDémarrage rapideSDK TypeScriptTypeScript V2 (aperçu)SDK PythonGuide de migration
    MCP dans l'API
    Connecteur MCPServeurs MCP distants
    Claude sur les plateformes tierces
    Amazon BedrockMicrosoft FoundryVertex AI
    Ingénierie des prompts
    AperçuGénérateur de promptsUtiliser les modèles de promptsAméliorateur de promptsÊtre clair et directUtiliser des exemples (prompting multi-coups)Laisser Claude réfléchir (CoT)Utiliser les balises XMLDonner un rôle à Claude (prompts système)Enchaîner les prompts complexesConseils pour le contexte longConseils pour la réflexion étendue
    Tester et évaluer
    Définir les critères de succèsDévelopper des cas de testUtiliser l'outil d'évaluationRéduire la latence
    Renforcer les garde-fous
    Réduire les hallucinationsAugmenter la cohérence des résultatsAtténuer les jailbreaksRefus en streamingRéduire les fuites de promptsGarder Claude dans le rôle
    Administration et surveillance
    Aperçu de l'API AdminRésidence des donnéesEspaces de travailAPI d'utilisation et de coûtsAPI Claude Code AnalyticsRétention zéro des données
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Capacités

    Construire avec la réflexion étendue

    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.

    Was this page helpful?

    • Modèles supportés
    • Comment fonctionne la réflexion étendue
    • Comment utiliser la réflexion étendue
    • Réflexion résumée
    • Réflexion en streaming
    • Réflexion étendue avec utilisation d'outils
    • Basculer les modes de réflexion dans les conversations
    • Préservation des blocs de réflexion
    • Réflexion entrelacée
    • Réflexion étendue avec mise en cache des invites
    • Comprendre le comportement de la mise en cache des blocs de réflexion
    • Jetons max et taille de la fenêtre de contexte avec la réflexion étendue
    • La fenêtre de contexte avec la réflexion étendue
    • La fenêtre de contexte avec la réflexion étendue et l'utilisation d'outils
    • Gestion des jetons avec la réflexion étendue
    • Chiffrement de la réflexion
    • Rédaction de la réflexion
    • Différences de réflexion selon les versions de modèle
    • Préservation des blocs de réflexion dans Claude Opus 4.5 et versions ultérieures
    • Tarification
    • Meilleures pratiques et considérations pour la réflexion étendue
    • Travailler avec les budgets de réflexion
    • Considérations de performance
    • Compatibilité des fonctionnalités
    • Directives d'utilisation
    • Prochaines étapes

    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.6, nous recommandons d'utiliser la réflexion adaptative (thinking: {type: "adaptive"}) avec le paramètre d'effort au lieu du mode de réflexion manuel décrit sur cette page. La configuration manuelle thinking: {type: "enabled", budget_tokens: N} est dépréciée sur Opus 4.6 et sera supprimée dans une future version du modèle.

    Modèles supportés

    La réflexion étendue est supportée dans les modèles suivants :

    • Claude Opus 4.6 (claude-opus-4-6) — réflexion adaptative recommandée ; le mode manuel (type: "enabled") est déprécié
    • Claude Opus 4.5 (claude-opus-4-5-20251101)
    • Claude Opus 4.1 (claude-opus-4-1-20250805)
    • Claude Opus 4 (claude-opus-4-20250514)
    • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
    • Claude Sonnet 4 (claude-sonnet-4-20250514)
    • Claude Sonnet 3.7 (claude-3-7-sonnet-20250219) (déprécié)
    • Claude Haiku 4.5 (claude-haiku-4-5-20251001)

    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, voir Différences de réflexion entre les versions de modèles.

    Comment fonctionne la réflexion étendue

    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 inclura des blocs de contenu thinking, suivis de 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, voir la Référence de l'API Messages.

    Comment utiliser la réflexion étendue

    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 à enabled et le budget_tokens à un budget de jetons spécifié pour la réflexion étendue. Pour Claude Opus 4.6, nous recommandons d'utiliser type: "adaptive" à la place — voir Réflexion adaptative pour les détails. Bien que type: "enabled" avec budget_tokens soit toujours supporté sur Opus 4.6, il est déprécié et sera supprimé dans une future version.

    Le paramètre budget_tokens détermine le nombre maximum de jetons 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 jetons de réflexion complète, et non à la sortie résumée. Des budgets plus importants peuvent améliorer la qualité des réponses 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 sera supprimé dans une future version du modèle. Nous recommandons d'utiliser la réflexion adaptative avec le paramètre d'effort pour contrôler la profondeur de réflexion à la place.

    Claude Opus 4.6 supporte jusqu'à 128K jetons de sortie. Les modèles antérieurs supportent jusqu'à 64K jetons de sortie.

    budget_tokens doit être défini à une valeur inférieure à max_tokens. Cependant, lors de l'utilisation de la réflexion entrelacée avec les outils, vous pouvez dépasser cette limite car la limite de jetons devient votre fenêtre de contexte entière (200k jetons).

    Réflexion résumée

    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:

    • You're charged for the full thinking tokens generated by the original request, not the summary tokens.
    • The billed output token count will not match the count of tokens you see in the response.
    • The first few lines of thinking output are more verbose, providing detailed reasoning that's particularly helpful for prompt engineering purposes.
    • As Anthropic seeks to improve the extended thinking feature, summarization behavior is subject to change.
    • Summarization preserves the key ideas of Claude's thinking process with minimal added latency, enabling a streamable user experience and easy migration from Claude Sonnet 3.7 to Claude 4 and later models.
    • Summarization is processed by a different model than the one you target in your requests. The thinking model does not see the summarized output.

    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.

    Réflexion en streaming

    Vous pouvez diffuser en continu les réponses de réflexion étendue en utilisant les événements envoyés par le serveur (SSE).

    Lorsque le streaming est activé pour la réflexion étendue, vous recevez le contenu de réflexion via les événements thinking_delta.

    Pour plus de documentation sur le streaming via l'API Messages, voir Streaming Messages.

    Voici comment gérer le streaming avec la réflexion :

    Try in Console

    Exemple de sortie de streaming :

    event: message_start
    data: {"type": "message_start", "message": {"id": "msg_01...", "type": "message", "role": "assistant", "content": [], "model": "claude-sonnet-4-5", "stop_reason": null, "stop_sequence": null}}
    
    event: content_block_start
    data: {"type": "content_block_start", "index": 0, "content_block": {"type": "thinking", "thinking": ""}}
    
    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"}

    Lors de l'utilisation du streaming avec la réflexion activée, vous pourriez remarquer que le texte arrive parfois en blocs plus importants alternant avec une livraison plus petite, jeton par jeton. C'est un comportement attendu, en particulier pour le contenu de réflexion.

    Le système de streaming 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 streaming. Nous travaillons continuellement à l'amélioration de cette expérience, avec des mises à jour futures axées sur le streaming plus fluide du contenu de réflexion.

    Réflexion étendue avec utilisation d'outils

    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 :

    1. 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.

    2. Préservation des blocs de réflexion : Lors de l'utilisation d'outils, vous devez repasser les blocs thinking à l'API pour le dernier message d'assistant. Incluez le bloc complet non modifié à l'API pour maintenir la continuité du raisonnement.

    Basculer les modes de réflexion dans les conversations

    Vous ne pouvez pas basculer la réflexion au milieu d'un tour d'assistant, y compris lors des boucles d'utilisation d'outils. Le tour d'assistant entier doit fonctionner dans un seul mode de réflexion :

    • Si la réflexion est activée, le tour d'assistant final doit commencer par un bloc de réflexion.
    • Si la réflexion est désactivée, le tour d'assistant final ne doit contenir aucun bloc 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 pas jusqu'à ce que 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 d'API, la boucle d'utilisation d'outils fait conceptuellement partie d'une réponse d'assistant continue.

    Dégradation gracieuse de la réflexion

    Lorsqu'un conflit de réflexion à mi-tour se produit (comme basculer 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 sur la distribution, l'API peut :

    • Supprimer les blocs de réflexion de la conversation lorsqu'ils créeraient une structure de tour invalide
    • Désactiver la réflexion pour la demande actuelle lorsque l'historique de conversation est incompatible avec l'activation de la réflexion

    Cela signifie que tenter de basculer la réflexion à mi-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.

    Conseils pratiques

    Meilleure pratique : Planifiez votre stratégie de réflexion au début de chaque tour plutôt que d'essayer de basculer à mi-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, voir la section Réflexion étendue avec mise en cache des invites.

    Préservation des blocs de réflexion

    Lors de l'utilisation d'outils, vous devez repasser les blocs thinking à l'API, et vous devez inclure le bloc complet non modifié à l'API. C'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 d'assistant précédents, nous suggérons de toujours repasser tous les blocs de réflexion à l'API pour toute conversation multi-tour. L'API va :

    • Filtrer automatiquement les blocs de réflexion fournis
    • Utiliser les blocs de réflexion pertinents nécessaires pour préserver le raisonnement du modèle
    • Facturer uniquement les jetons d'entrée pour les blocs affichés à Claude

    Lors du basculement des modes de réflexion au cours d'une conversation, rappelez-vous que le tour d'assistant entier (y compris les boucles d'utilisation d'outils) doit fonctionner dans un seul mode de réflexion. Pour plus de détails, voir Basculer les modes de réflexion dans les conversations.

    Lorsque Claude invoque des outils, il met en pause la construction d'une réponse pour attendre des informations externes. Lorsque les résultats des outils sont retournés, Claude continuera à 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 :

    1. 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 postez les résultats des outils, inclure la réflexion originale assure que Claude peut continuer son raisonnement à partir de là où il s'était arrêté.

    2. 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 d'API. Pour plus d'informations sur la gestion du contexte, voir notre guide sur les fenêtres de contexte.

    Important : Lors de la fourniture de blocs thinking, la séquence entière 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.

    Réflexion entrelacée

    La réflexion étendue avec utilisation d'outils dans les modèles Claude 4 supporte 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 :

    • Raisonner sur les résultats d'un appel d'outil avant de décider quoi faire ensuite
    • Enchaîner plusieurs appels d'outils avec des étapes de raisonnement entre les deux
    • Prendre des décisions plus nuancées basées sur les résultats intermédiaires

    Pour Claude Opus 4.6, la réflexion entrelacée est automatiquement activée lors de l'utilisation de la réflexion adaptative — aucun en-tête bêta n'est nécessaire.

    Pour les modèles Claude 4, ajoutez l'en-tête bêta interleaved-thinking-2025-05-14 à votre demande d'API pour activer la réflexion entrelacée.

    Voici quelques considérations importantes pour la réflexion entrelacée :

    • Avec la réflexion entrelacée, le 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.
    • La réflexion entrelacée est uniquement supportée pour les outils utilisés via l'API Messages.
    • Pour les modèles Claude 4, la réflexion entrelacée nécessite l'en-tête bêta interleaved-thinking-2025-05-14.
    • Les appels directs à l'API Claude vous permettent de passer interleaved-thinking-2025-05-14 dans les demandes à n'importe quel modèle, sans effet.
    • Sur les plateformes tierces (par exemple, Amazon Bedrock et Vertex AI), si vous passez interleaved-thinking-2025-05-14 à n'importe quel modèle autre que Claude Opus 4.6, Claude Opus 4.5, Claude Opus 4.1, Opus 4, ou Sonnet 4, votre demande échouera.

    Réflexion étendue avec mise en cache des invites

    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 à travers les sessions de réflexion plus longues et les flux de travail multi-étapes.

    Suppression du contexte des blocs de réflexion

    • Les blocs de réflexion des tours précédents sont supprimés du contexte, ce qui peut affecter les points d'arrêt du cache
    • Lors de la continuation des conversations avec utilisation d'outils, les blocs de réflexion sont mis en cache et comptent comme jetons d'entrée lorsqu'ils sont lus à partir du cache
    • Cela crée un compromis : bien que les blocs de réflexion ne consomment pas l'espace de la fenêtre de contexte visuellement, ils comptent toujours vers votre utilisation de jetons d'entrée lorsqu'ils sont mis en cache
    • Si la réflexion devient désactivée et que vous passez du contenu de réflexion dans le tour d'utilisation d'outils actuel, le contenu de réflexion sera supprimé et la réflexion restera désactivée pour cette demande

    Modèles d'invalidation du cache

    • Les modifications des paramètres de réflexion (activé/désactivé ou allocation de budget) invalident les points d'arrêt du cache des messages
    • La réflexion entrelacée amplifie l'invalidation du cache, car les blocs de réflexion peuvent se produire entre plusieurs appels d'outils
    • Les invites système et les outils restent mis en cache malgré les modifications des paramètres de réflexion ou la suppression de blocs

    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 l'utilisation d'outils, en particulier avec la réflexion entrelacée.

    Comprendre le comportement de la mise en cache des blocs de réflexion

    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 :

    Comment cela fonctionne :

    1. La mise en cache ne se produit que lorsque vous effectuez une demande ultérieure qui inclut les résultats des outils
    2. Lorsque la demande ultérieure est effectuée, l'historique de conversation précédent (y compris les blocs de réflexion) peut être mis en cache
    3. Ces blocs de réflexion mis en cache comptent comme des jetons d'entrée dans vos métriques d'utilisation lorsqu'ils sont lus à partir du cache
    4. Lorsqu'un bloc utilisateur non-résultat d'outil est inclus, tous les blocs de réflexion précédents sont ignorés et supprimés du contexte

    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 :

    • Ce comportement de mise en cache se produit automatiquement, même sans marqueurs cache_control explicites
    • Ce comportement est cohérent, que vous utilisiez la réflexion régulière ou la réflexion entrelacée

    Jetons max et taille de la fenêtre de contexte avec la réflexion étendue

    Dans les modèles Claude plus anciens (antérieurs à Claude Sonnet 3.7), si la somme des jetons d'invite et de max_tokens dépassait la fenêtre de contexte du modèle, le système ajusterait automatiquement max_tokens pour s'adapter à 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 jetons d'invite + max_tokens dépassent la taille de la fenêtre de contexte.

    Vous pouvez consulter notre guide sur les fenêtres de contexte pour une plongée plus approfondie.

    La fenêtre de contexte avec la réflexion étendue

    Lors du calcul de l'utilisation de la fenêtre de contexte avec la réflexion activée, il y a quelques considérations à prendre en compte :

    • Les blocs de réflexion des tours précédents sont supprimés et ne comptent pas dans votre fenêtre de contexte
    • La réflexion du tour actuel compte dans votre limite max_tokens pour ce tour

    Le diagramme ci-dessous illustre la gestion spécialisée des jetons lorsque la réflexion étendue est activée :

    Context window diagram with extended thinking

    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)

    Nous recommandons d'utiliser l'API de comptage des jetons pour obtenir des comptages de jetons précis pour votre cas d'usage spécifique, en particulier lorsque vous travaillez avec des conversations multi-tours qui incluent la réflexion.

    La fenêtre de contexte avec la réflexion étendue et l'utilisation d'outils

    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 l'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 jetons pour la réflexion étendue avec l'utilisation d'outils :

    Context window diagram with extended thinking and tool use

    Gestion des jetons avec la réflexion étendue

    Compte tenu du comportement de la fenêtre de contexte et de max_tokens avec la réflexion étendue pour les modèles Claude 3.7 et 4, vous devrez peut-être :

    • Surveiller et gérer plus activement votre utilisation des jetons
    • Ajuster les valeurs max_tokens à mesure que la longueur de votre invite change
    • Potentiellement utiliser les points de terminaison de comptage des jetons plus fréquemment
    • Être conscient que les blocs de réflexion précédents ne s'accumulent pas dans votre fenêtre de contexte

    Ce changement a été apporté pour fournir un comportement plus prévisible et transparent, en particulier à mesure que les limites de jetons maximaux ont augmenté considérablement.

    Chiffrement de la réflexion

    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:

    • When streaming responses, the signature is added via a 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.
    • The 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.

    Rédaction de la réflexion

    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:

    • Be aware that redacted thinking blocks contain encrypted content that isn't human-readable
    • Consider providing a simple explanation like: "Some of Claude's internal reasoning has been automatically encrypted for safety reasons. This doesn't affect the quality of responses."
    • If showing thinking blocks to users, you can filter out redacted blocks while preserving normal thinking blocks
    • Be transparent that using extended thinking features may occasionally result in some reasoning being encrypted
    • Implement appropriate error handling to gracefully manage redacted thinking without breaking your UI

    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.

    Différences de réflexion selon les versions de modèle

    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édaction et de résumé.

    Consultez le tableau ci-dessous pour une comparaison condensée :

    FonctionnalitéClaude Sonnet 3.7Modèles Claude 4 (pré-Opus 4.5)Claude Opus 4.5Claude Opus 4.6 (réflexion adaptative)
    Sortie de réflexionRetourne la sortie de réflexion complèteRetourne la réflexion résuméeRetourne la réflexion résuméeRetourne la réflexion résumée
    Réflexion entrelacéeNon supportéeSupportée avec l'en-tête bêta interleaved-thinking-2025-05-14Supportée avec l'en-tête bêta interleaved-thinking-2025-05-14Automatique avec la réflexion adaptative (pas d'en-tête bêta nécessaire)
    Préservation des blocs de réflexionNon préservée entre les toursNon préservée entre les toursPréservée par défautPréservée par défaut

    Préservation des blocs de réflexion dans Claude Opus 4.5 et versions ultérieures

    À partir de Claude Opus 4.5 (et continuant dans Claude Opus 4.6), les blocs de réflexion des tours d'assistant précédents sont préservés dans le contexte du modèle par défaut. Cela diffère des modèles antérieurs, qui suppriment les blocs de réflexion des tours précédents.

    Avantages de la préservation des blocs de réflexion :

    • Optimisation du cache : Lors de l'utilisation d'outils, les blocs de réflexion préservés permettent les accès au cache car ils sont retournés avec les résultats des outils et mis en cache de manière incrémentale dans le tour d'assistant, ce qui entraîne des économies de jetons dans les flux de travail multi-étapes
    • Aucun impact sur l'intelligence : La préservation des blocs de réflexion n'a aucun effet négatif sur les performances du modèle

    Considérations importantes :

    • Utilisation du contexte : Les conversations longues consommeront plus d'espace de contexte puisque les blocs de réflexion sont conservés dans le contexte
    • Comportement automatique : C'est le comportement par défaut pour les modèles Claude Opus 4.5 et versions ultérieures (y compris Opus 4.6) — aucune modification de code ou en-tête bêta n'est requise
    • Compatibilité rétroactive : Pour tirer parti de cette fonctionnalité, continuez à retourner les blocs de réflexion complets et non modifiés à l'API comme vous le feriez pour l'utilisation d'outils

    Pour les modèles antérieurs (Claude Sonnet 4.5, Opus 4.1, etc.), les blocs de réflexion des tours précédents continuent à être supprimés du contexte. Le comportement existant décrit dans la section Réflexion étendue avec mise en cache d'invite s'applique à ces modèles.

    Tarification

    For complete pricing information including base rates, cache writes, cache hits, and output tokens, see the pricing page.

    The thinking process incurs charges for:

    • Tokens used during thinking (output tokens)
    • Thinking blocks from the last assistant turn included in subsequent requests (input tokens)
    • Standard text output tokens

    When extended thinking is enabled, a specialized system prompt is automatically included to support this feature.

    When using summarized thinking:

    • Input tokens: Tokens in your original request (excludes thinking tokens from previous turns)
    • Output tokens (billed): The original thinking tokens that Claude generated internally
    • Output tokens (visible): The summarized thinking tokens you see in the response
    • No charge: Tokens used to generate the summary

    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.

    Meilleures pratiques et considérations pour la réflexion étendue

    Travailler avec les budgets de réflexion

    • Optimisation du budget : Le budget minimum est de 1 024 jetons. Nous suggérons de commencer par le minimum et d'augmenter le budget de réflexion de manière incrémentale pour trouver la plage optimale pour votre cas d'usage. Des comptages de jetons plus élevés permettent un raisonnement plus complet mais avec des rendements décroissants selon la tâche. L'augmentation du budget peut améliorer la qualité de la réponse au détriment d'une latence accrue. Pour les tâches critiques, testez différents paramètres pour trouver l'équilibre optimal. Notez que le budget de réflexion est une cible plutôt qu'une limite stricte — l'utilisation réelle des jetons peut varier selon la tâche.
    • Points de départ : Commencez avec des budgets de réflexion plus importants (16k+ jetons) pour les tâches complexes et ajustez selon vos besoins.
    • Budgets importants : Pour les budgets de réflexion supérieurs à 32k, nous recommandons d'utiliser le traitement par lots pour éviter les problèmes de réseau. Les demandes poussant le modèle à réfléchir au-dessus de 32k jetons causent des demandes longues qui pourraient se heurter aux délais d'expiration du système et aux limites de connexion ouverte.
    • Suivi de l'utilisation des jetons : Surveillez l'utilisation des jetons de réflexion pour optimiser les coûts et les performances.

    Considérations de performance

    • Temps de réponse : Soyez préparé à des temps de réponse potentiellement plus longs en raison du traitement supplémentaire requis pour le processus de raisonnement. Tenez compte du fait que la génération de blocs de réflexion peut augmenter le temps de réponse global.
    • Exigences de diffusion en continu : Les SDK nécessitent une diffusion en continu lorsque max_tokens est supérieur à 21 333 pour éviter les délais d'expiration HTTP sur les demandes longues. C'est une validation côté client, pas une restriction d'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 Messages de diffusion en continu pour plus de détails. Lors de la diffusion en continu, soyez préparé à gérer les blocs de contenu de réflexion et de texte à mesure qu'ils arrivent.

    Compatibilité des fonctionnalités

    • La réflexion n'est pas compatible avec les modifications de temperature ou top_k ainsi que l'utilisation forcée d'outils.
    • Lorsque la réflexion est activée, vous pouvez définir top_p sur des valeurs entre 1 et 0,95.
    • Vous ne pouvez pas pré-remplir les réponses lorsque la réflexion est activée.
    • Les modifications du budget de réflexion invalident les préfixes d'invite mis en cache qui incluent des messages. Cependant, les messages système mis en cache et les définitions d'outils continueront à fonctionner lorsque les paramètres de réflexion changent.

    Directives d'utilisation

    • Sélection des tâches : Utilisez la réflexion étendue pour les tâches particulièrement complexes qui bénéficient d'un raisonnement étape par étape comme les mathématiques, le codage et l'analyse.
    • Gestion du contexte : Vous n'avez pas besoin de supprimer vous-même les blocs de réflexion précédents. L'API Claude ignore automatiquement les blocs de réflexion des tours précédents et ils ne sont pas inclus lors du calcul de l'utilisation du contexte.
    • Ingénierie d'invite : Consultez nos conseils d'ingénierie d'invite pour la réflexion étendue si vous souhaitez maximiser les capacités de réflexion de Claude.

    Prochaines étapes

    Essayez le livre de recettes de réflexion étendue
    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-sonnet-4-5",
        "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?"
            }
        ]
    }'
    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-sonnet-4-5",
        "max_tokens": 16000,
        "stream": true,
        "thinking": {
            "type": "enabled",
            "budget_tokens": 10000
        },
        "messages": [
            {
                "role": "user",
                "content": "What is the greatest common divisor of 1071 and 462?"
            }
        ]
    }'

    Explorez des exemples pratiques de réflexion dans notre livre de recettes.

    Conseils d'ingénierie d'invite pour la réflexion étendue

    Apprenez les meilleures pratiques d'ingénierie d'invite pour la réflexion étendue.