Cette fonctionnalité est éligible à la Zero Data Retention (ZDR). Lorsque votre organisation dispose d'un accord ZDR, les données envoyées via cette fonctionnalité ne sont pas stockées après le retour de la réponse de l'API.
La réflexion adaptative est la méthode recommandée pour utiliser la réflexion étendue avec Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6 et Claude Sonnet 4.6. Sur Claude Fable 5 et Claude Mythos 5, la réflexion est toujours activée et ne peut pas être désactivée ; la réflexion adaptative est le seul mode de réflexion. Sur Claude Mythos Preview, la réflexion adaptative est le mode par défaut et s'applique automatiquement lorsque thinking n'est pas défini. Au lieu de définir manuellement un budget de tokens de réflexion, la réflexion adaptative permet à Claude de déterminer dynamiquement quand et dans quelle mesure utiliser la réflexion étendue en fonction de la complexité de chaque requête. Sur Claude Opus 4.8 et Claude Opus 4.7, la réflexion adaptative est le seul mode de réflexion pris en charge ; le mode manuel thinking: {type: "enabled", budget_tokens: N} n'est plus accepté.
La réflexion adaptative peut offrir de meilleures performances que la réflexion étendue avec un budget_tokens fixe pour de nombreuses charges de travail, en particulier les tâches bimodales et les flux de travail agentiques à long horizon. Aucun en-tête bêta n'est requis.
Si votre charge de travail nécessite une latence prévisible ou un contrôle précis des coûts de réflexion, la réflexion étendue avec budget_tokens reste fonctionnelle sur Claude Opus 4.6 et Claude Sonnet 4.6, mais elle est obsolète et n'est plus recommandée. Consultez l'avertissement ci-dessous.
La réflexion adaptative est prise en charge sur les modèles suivants :
claude-fable-5) et Claude Mythos 5 (claude-mythos-5), la réflexion adaptative est toujours activée ; thinking: {type: "disabled"} n'est pas pris en chargethinking: {type: "disabled"} n'est pas pris en chargethinking: {type: "adaptive"} dans votre requête ; le mode manuel thinking: {type: "enabled"} est rejeté avec une erreur 400.thinking: {type: "adaptive"} dans votre requête ; le mode manuel thinking: {type: "enabled"} est rejeté avec une erreur 400.thinking.type: "enabled" et budget_tokens sont obsolètes sur Opus 4.6 et Sonnet 4.6 et seront supprimés dans une future version du modèle. Utilisez plutôt thinking.type: "adaptive" avec le paramètre effort. Les configurations budget_tokens existantes restent fonctionnelles mais ne sont plus recommandées ; prévoyez une migration.
Les modèles plus anciens (Sonnet 4.5, Opus 4.5, etc.) ne prennent pas en charge la réflexion adaptative et nécessitent thinking.type: "enabled" avec budget_tokens.
En mode adaptatif, la réflexion est facultative pour le modèle. Claude évalue la complexité de chaque requête et détermine s'il doit utiliser la réflexion étendue et dans quelle mesure. Au niveau d'effort par défaut (high), Claude réfléchit presque toujours. À des niveaux d'effort inférieurs, Claude peut ignorer la réflexion pour les problèmes plus simples.
La réflexion adaptative active également automatiquement la réflexion intercalée. Cela signifie que Claude peut réfléchir 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 requête API :
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive"},
messages=[
{
"role": "user",
"content": "Explain why the sum of two even numbers is always even.",
}
],
)
for block in response.content:
if block.type == "thinking":
print(f"\nThinking: {block.thinking}")
elif block.type == "text":
print(f"\nResponse: {block.text}")Vous pouvez combiner la réflexion adaptative avec le paramètre effort pour orienter la quantité de réflexion effectuée par Claude. Le niveau d'effort agit comme une indication souple pour l'allocation de réflexion de Claude :
| Niveau d'effort | Comportement de réflexion |
|---|---|
max | Claude réfléchit toujours sans contrainte sur la profondeur de réflexion. Disponible sur Claude Fable 5, Claude Mythos 5, Claude Mythos Preview, Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6 et Claude Sonnet 4.6. |
xhigh | Claude réfléchit toujours en profondeur avec une exploration étendue. Disponible sur Claude Fable 5, Claude Mythos 5, Claude Opus 4.8 et Claude Opus 4.7. |
high (par défaut) | Claude réfléchit presque toujours. Fournit un raisonnement approfondi sur les tâches complexes. |
medium | Claude utilise une réflexion modérée. Peut ignorer la réflexion pour les requêtes très simples. |
low | Claude minimise la réflexion. Ignore la réflexion pour les tâches simples où la rapidité est primordiale. |
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
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 réflexion adaptative fonctionne de manière transparente avec le streaming. Les blocs de réflexion sont diffusés via des événements thinking_delta, tout comme en mode de réflexion manuel :
client = anthropic.Anthropic()
with client.messages.stream(
model="claude-opus-4-8",
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 | Configuration | Disponibilité | Quand l'utiliser |
|---|---|---|---|
| Adaptative | thinking: {type: "adaptive"} | Claude Fable 5 (toujours activée), Claude Mythos 5 (toujours activée), Claude Mythos Preview (par défaut), Claude Opus 4.8 (seul mode), Opus 4.7 (seul mode), Opus 4.6, Sonnet 4.6 | Claude détermine quand et dans quelle mesure utiliser la réflexion étendue. Utilisez effort pour orienter. |
| Manuelle | thinking: {type: "enabled", budget_tokens: N} | Tous les modèles sauf Claude Fable 5, Claude Mythos 5, Claude Opus 4.8 et Claude Opus 4.7 (rejeté avec une erreur 400). Obsolète sur Opus 4.6 et Sonnet 4.6 (envisagez plutôt le mode adaptatif). | Lorsque vous avez besoin d'un contrôle précis sur la dépense de tokens de réflexion. |
| Désactivée | Omettez le paramètre thinking ou passez {type: "disabled"} | Tous les modèles sauf Claude Fable 5, Claude Mythos 5 et Claude Mythos Preview | Lorsque vous n'avez pas besoin de réflexion étendue et souhaitez la latence la plus faible. |
La réflexion adaptative est disponible sur Claude Fable 5, Claude Mythos 5, Claude Mythos Preview, Claude Opus 4.8, Claude Opus 4.7, Opus 4.6 et Sonnet 4.6. Sur Claude Fable 5 et Claude Mythos 5, la réflexion adaptative est toujours activée : elle s'applique lorsque thinking n'est pas défini et ne peut pas être désactivée. Sur Mythos Preview, la réflexion adaptative est le mode par défaut et s'applique automatiquement lorsque thinking n'est pas défini. Sur Claude Opus 4.8, la réflexion adaptative est le seul mode pris en charge ; la réflexion est désactivée sauf si vous définissez explicitement thinking: {type: "adaptive"}, et le mode manuel type: "enabled" avec budget_tokens est rejeté avec une erreur 400. Sur Claude Opus 4.7, la réflexion adaptative est le seul mode pris en charge et type: "enabled" avec budget_tokens est rejeté. Les modèles plus anciens ne prennent en charge que type: "enabled" avec budget_tokens. Sur Opus 4.6 et Sonnet 4.6, type: "enabled" avec budget_tokens reste fonctionnel mais est obsolète.
Disponibilité de la réflexion intercalée par mode :
interleaved-thinking-2025-05-14.Lors de l'utilisation de la réflexion adaptative, les tours d'assistant précédents n'ont pas besoin de commencer par des blocs de réflexion. Ceci est plus flexible que le mode manuel, où l'API impose que les tours avec réflexion activée commencent par un bloc de réflexion.
Les requêtes consécutives utilisant la réflexion adaptive préservent les points de rupture du cache de prompts. Cependant, basculer entre les modes de réflexion adaptive et enabled/disabled rompt les points de rupture du cache pour les messages. Les invites système et les définitions d'outils restent mises en cache indépendamment des changements de mode.
Le comportement de déclenchement de la réflexion adaptative peut être influencé par le prompt. Si Claude réfléchit plus ou moins souvent que vous le souhaitez, vous pouvez ajouter des indications à 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.Pour encourager la réflexion à la place, utilisez une phrase comme :
This task involves multi-step reasoning. Think carefully before responding.L'efficacité de l'orientation peut être sensible à la formulation exacte — si une formulation ne produit pas le comportement souhaité, essayez une variante plus directe.
Vous pouvez également orienter la réflexion message par message depuis le tour utilisateur. Ajouter "Please think hard before responding." à un message utilisateur encourage Claude à réfléchir sur ce tour ; "Answer directly without deliberating." la supprime. Cela fonctionne indépendamment de l'invite système et est utile lorsque seules certaines requêtes d'une conversation justifient un raisonnement étendu.
Orienter Claude pour qu'il réfléchisse 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 un ajustement basé sur les prompts en production. Envisagez d'abord de tester avec des niveaux d'effort inférieurs.
Utilisez max_tokens comme limite stricte sur la sortie totale (réflexion + texte de réponse). Le paramètre effort fournit une indication souple supplémentaire sur la quantité de réflexion que Claude alloue. Ensemble, ces paramètres vous donnent un contrôle efficace sur les coûts.
Aux niveaux d'effort high et max, Claude peut réfléchir plus longuement et est 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 de marge au modèle, ou de réduire le niveau d'effort.
Les concepts suivants s'appliquent à tous les modèles qui prennent en charge la réflexion étendue, que vous utilisiez le mode adaptatif ou manuel.
Lorsque la réflexion étendue est activée, l'API Messages pour les modèles Claude 4 renvoie un résumé du processus de réflexion complet de Claude. La réflexion résumée offre tous les avantages d'intelligence de la réflexion étendue, tout en prévenant les utilisations abusives. Il s'agit du comportement par défaut sur les modèles Claude 4 lorsque le champ display de la configuration de réflexion n'est pas défini ou est défini sur "summarized". Sur Claude Fable 5, Claude Mythos 5, Claude Opus 4.8, Claude Opus 4.7 et Claude Mythos Preview, display est défini par défaut sur "omitted" ; vous devez donc définir explicitement display: "summarized" pour recevoir la réflexion résumée.
Voici quelques considérations importantes concernant la réflexion résumée :
Dans les rares cas où vous avez besoin d'accéder à la sortie de réflexion complète pour les modèles Claude 4, contactez l'équipe commerciale d'Anthropic.
Le champ display de la configuration de réflexion contrôle la manière dont le contenu de réflexion est renvoyé dans les réponses de l'API. Il accepte deux valeurs :
"summarized" : les blocs de réflexion contiennent un texte de réflexion résumé. Consultez Réflexion résumée pour plus de détails. Il s'agit de la valeur par défaut sur Claude Opus 4.6, Claude Sonnet 4.6 et les modèles Claude 4 antérieurs."omitted" : les blocs de réflexion sont renvoyés avec un champ thinking vide. Le champ signature contient toujours la réflexion complète chiffrée pour assurer la continuité multi-tours (voir Chiffrement de la réflexion). Il s'agit de la valeur par défaut sur Claude Fable 5, Claude Mythos 5, Claude Opus 4.8, Claude Opus 4.7 et Claude Mythos Preview.Définir display: "omitted" est utile lorsque votre application n'affiche pas le contenu de réflexion aux utilisateurs. Le principal avantage est un délai plus court avant le premier token de texte lors du streaming : le serveur ignore entièrement le streaming des tokens de réflexion et ne transmet que la signature, de sorte que le streaming de la réponse textuelle finale commence plus tôt.
Voici quelques considérations importantes concernant la réflexion omise :
signature pour reconstruire la réflexion d'origine lors de la construction du prompt (voir Préservation des blocs de réflexion). Tout texte que vous placez dans le champ thinking d'un bloc omis renvoyé est ignoré.display n'est pas valide avec thinking.type: "disabled" (il n'y a rien à afficher).thinking.type: "adaptive" et que le modèle ignore la réflexion pour une requête simple, aucun bloc de réflexion n'est produit, quelle que soit la valeur de display.Le champ signature est identique, que display soit défini sur "summarized" ou "omitted". Le changement de valeur de display entre les tours d'une conversation est pris en charge.
Le paramètre display contrôle uniquement la visibilité. Quel que soit le paramètre, la réflexion a lieu et est facturée de la même manière.
La valeur par défaut de thinking.display dépend du modèle :
"omitted". Les blocs de réflexion apparaissent toujours dans le flux de réponse, mais leur champ thinking est vide sauf si vous l'activez explicitement. Il s'agit d'un changement silencieux par rapport à Claude Opus 4.6, où la valeur par défaut était "summarized"."summarized". Le résumé lisible apparaît sans activation explicite.Pour recevoir le texte de réflexion résumé sur les modèles où la valeur par défaut est "omitted", définissez explicitement thinking.display sur "summarized" :
thinking = {
"type": "adaptive",
"display": "summarized",
}Pour des exemples de code et le comportement du streaming avec display: "omitted", consultez Contrôle de l'affichage de la réflexion sur la page de la réflexion étendue. Les exemples y utilisent type: "enabled" ; avec la réflexion adaptative, utilisez :
thinking = {"type": "adaptive", "display": "omitted"}Le contenu complet de la réflexion est chiffré et renvoyé dans le champ signature. Ce champ est utilisé pour vérifier que les blocs de réflexion ont bien été générés par Claude lorsqu'ils sont renvoyés à l'API.
Il n'est strictement nécessaire de renvoyer les blocs de réflexion que lorsque vous utilisez des outils avec la réflexion étendue. Sinon, vous pouvez omettre les blocs de réflexion des tours précédents. Si vous les renvoyez, le fait que l'API les conserve ou les supprime dépend du modèle : Opus 4.5+ et Sonnet 4.6+ les conservent dans le contexte par défaut ; les modèles Opus/Sonnet antérieurs et tous les modèles Haiku les suppriment. Consultez la section édition du contexte pour configurer ce comportement.
Si vous renvoyez des blocs de réflexion, renvoyez tout exactement comme vous l'avez reçu, par souci de cohérence et pour éviter d'éventuels problèmes.
Voici quelques considérations importantes concernant le chiffrement de la réflexion :
signature_delta à l'intérieur d'un événement content_block_delta, juste avant l'événement content_block_stop.signature sont nettement plus longues dans les modèles Claude 4 que dans les modèles précédents.signature est un champ opaque et ne doit pas être interprété ni analysé.signature sont compatibles entre les plateformes (API Claude, Amazon Bedrock et Vertex AI). Les valeurs générées sur une plateforme seront compatibles avec une autre.Sur Claude Fable 5 et Claude Mythos 5, la chaîne de pensée brute n'est jamais renvoyée. Les blocs de réflexion que vous recevez sont des blocs thinking ordinaires, et non des blocs redacted_thinking. Le paramètre thinking.display fonctionne de la même manière que sur les autres modèles :
"summarized" renvoie un résumé lisible du raisonnement."omitted" (la valeur par défaut sur ces modèles) inclut toujours des blocs thinking dans les réponses, mais leur champ thinking est une chaîne vide.Pour la structure de réponse des blocs de réflexion, consultez la référence de l'API Messages.
Lorsque vous poursuivez une conversation sur le même modèle, renvoyez chaque bloc de réflexion à l'API exactement tel que reçu, y compris les blocs dont le champ thinking est vide. Ne les modifiez pas et ne les reconstruisez pas. Lire le texte du résumé pour l'affichage ne pose pas de problème : l'API rejette les blocs dont le contenu a été modifié, pas les blocs que vous avez lus.
Lorsque vous changez de modèle, par exemple après un repli suite à un refus de classificateur, supprimez les blocs thinking et redacted_thinking des tours d'assistant précédents. Les blocs de réflexion sont liés au modèle qui les a produits. Les autres modèles les ignorent silencieusement plutôt que de rejeter la requête, mais les blocs ignorés ajoutent tout de même des tokens d'entrée.
Deux exceptions, couvertes dans Crédit de repli :
fallback issus d'un repli en cours de sortie restent là où ils sont apparus.Pour obtenir une visibilité sur le raisonnement du modèle, lisez les blocs thinking décrits dans cette section plutôt que de demander le raisonnement dans le texte de réponse. Sur Claude Fable 5, une requête qui tente d'obtenir le raisonnement interne du modèle dans le texte de réponse peut être refusée avec stop_details.category: "reasoning_extraction". Consultez Catégories de refus pour la référence des champs et les conseils de gestion.
Pour obtenir des informations complètes sur la tarification, y compris les tarifs de base, les écritures en cache, les lectures depuis le cache et les tokens de sortie, consultez la page de tarification.
Le processus de réflexion entraîne des frais pour :
Lorsque la réflexion étendue est activée, une invite système spécialisée est automatiquement incluse pour prendre en charge cette fonctionnalité.
Lors de l'utilisation de la réflexion résumée :
Lors de l'utilisation de display: "omitted" :
thinking est vide)Le nombre de tokens de sortie facturés ne correspondra pas au nombre de tokens visibles dans la réponse. Vous êtes facturé pour l'intégralité du processus de réflexion, et non pour le contenu de réflexion visible dans la réponse.
Pour connaître le nombre de tokens de sortie facturés consacrés au raisonnement interne, consultez usage.output_tokens_details.thinking_tokens dans la réponse. Cette valeur reflète le raisonnement brut généré par le modèle (et non le texte résumé renvoyé dans le corps de la réponse) et est toujours inférieure ou égale à output_tokens. Soustrayez-la de output_tokens pour obtenir une approximation de la partie de la sortie qui ne relève pas du raisonnement.
{
"usage": {
"input_tokens": 25,
"output_tokens": 348,
"output_tokens_details": {
"thinking_tokens": 312
}
}
}output_tokens reste le total inclusif et faisant autorité utilisé pour la facturation. output_tokens_details est une ventilation en lecture seule destinée à l'observabilité.
La page sur la réflexion étendue couvre plusieurs sujets plus en détail avec des exemples de code spécifiques à chaque mode :
tool_choice lorsque la réflexion est active.adaptive et enabled/disabled rompt les points de rupture du cache pour les messages (les invites système et les définitions d'outils restent mises en cache).max_tokens et les limites de la fenêtre de contexte.En savoir plus sur la réflexion étendue, y compris le mode manuel, l'utilisation d'outils et la mise en cache des prompts.
Contrôlez le niveau de détail des réponses de Claude avec le paramètre effort.
Was this page helpful?