Qu'est-ce que la réflexion ?
Certaines tâches nécessitent plus qu'une réponse rapide. Claude peut travailler sur un problème avant de répondre — une fonctionnalité appelée réflexion étendue. Dans cette leçon, nous allons examiner ce qu'est la réflexion, comment elle fonctionne, et quand elle aide réellement.
Voici le mode d'échec que nous essayons d'éviter. Posez à un modèle une question à plusieurs étapes et demandez-lui de répondre immédiatement, et il peut se tromper avec assurance :

Qu'est-ce que la réflexion étendue ?
La réflexion étendue permet à Claude de raisonner étape par étape avant de produire une réponse finale. Lorsqu'elle est activée, Claude génère des tokens de raisonnement interne — souvent appelés chaîne de pensée — puis livre la réponse. Sur Claude Opus 5, le texte de réflexion reste caché à moins que le paramètre thinking de votre requête n'inclue "display": "summarized", comme le fait l'exemple ci-dessous. Dans ce cas, un résumé du raisonnement de Claude revient dans la réponse aux côtés du texte final.
Réflexion adaptative sur Claude Opus 5
Sur Opus 5, la réflexion est adaptative et activée par défaut. Il n'y a pas de budget de tokens à choisir : Claude décide dynamiquement quand réfléchir et dans quelle mesure.
Pour contrôler la quantité de réflexion de Claude, utilisez le paramètre effort. Un piège à noter : il se trouve à l'intérieur de output_config, et non à côté du bloc thinking. Les niveaux sont :
lowmediumhigh(par défaut)xhigh(extra élevé)max
Quand l'utiliser (et quand s'en passer)
La réflexion étendue aide pour :
- Les mathématiques et la logique à plusieurs étapes
- Le débogage de code
- L'analyse réglementaire
- Tout ce qui implique des compromis ou la comparaison d'options

Évitez-la pour la classification simple, l'extraction, ou les tâches répétitives. Pour ces tâches, elle ne fait qu'ajouter de la latence et des coûts sans réellement améliorer les résultats.
La réflexion en action
Voyons-la fonctionner. Voici une boucle d'agent avec un seul outil météo, et nous allons demander à Claude de planifier un road trip au départ de San Francisco — deux arrêts, en pesant la météo et le temps de trajet. C'est un véritable compromis, le genre de question où la réflexion fait ses preuves.
import anthropic
client = anthropic.Anthropic()
weather_tool = {
"name": "get_weather",
"description": "Get the current weather for a city.",
"input_schema": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "City name"}
},
"required": ["city"],
},
}
response = client.messages.create(
model="claude-opus-5",
max_tokens=16000,
thinking={"type": "adaptive", "display": "summarized"}, # summarized = return the reasoning text
output_config={"effort": "high"}, # low | medium | high | xhigh | max
tools=[weather_tool],
messages=[
{
"role": "user",
"content": "Plan a road trip out of San Francisco with two stops, "
"weighing weather and drive time.",
}
],
)Lorsque vous exécutez ceci, la sortie est plus intéressante que d'habitude. Vous verrez des blocs de réflexion où Claude travaille sur les compromis, suivis d'appels d'outils pour vérifier chaque ville, et enfin un bloc de texte avec la recommandation réelle.
Le raisonnement est visible — c'est tout l'intérêt.
Pourquoi cela compte en production
Dans une application en production, c'est la différence entre un agent qui trouve des problèmes un par un et un agent qui les relie entre eux. Prenez une application de revue de conformité : activer la réflexion adaptative sur l'appel d'auto-révision permet à l'agent de raisonner à travers les sections du rapport — en repérant des choses comme une spécification de charge de vent dans la section trois qui entre en conflit avec la spécification de matériau ailleurs dans le document.

Récapitulatif
- La réflexion étendue donne à Claude l'espace nécessaire pour raisonner avant de répondre. Sur Opus 5, la réponse ne porte un résumé de ce raisonnement que lorsque vous le demandez.
- Sur Opus 5, la réflexion adaptative est activée par défaut — aucun budget de tokens n'est nécessaire. Ajoutez
"display": "summarized"pour voir le raisonnement dans la réponse. - Ajustez la profondeur avec le paramètre effort à l'intérieur de
output_config:low,medium,high(par défaut),xhigh, oumax. - Utilisez-la pour les problèmes difficiles et riches en compromis. Évitez-la pour les problèmes simples — là, elle ne fait que coûter de la latence et des tokens.