Opus 4.7 cache le raisonnement de Claude. Pourquoi c'est un problème
Anthropic a supprimé la visibilité des thinking tokens dans Opus 4.7. On ne peut plus vérifier le raisonnement du modèle, rendant benchmarks et debug opaques. Impacts et solutions.

Anthropic a supprimé la visibilité des thinking tokens dans Opus 4.7. On ne peut plus vérifier le raisonnement du modèle, rendant benchmarks et debug opaques. Impacts et solutions.
Anthropic a silencieusement supprimé la visibilité des thinking tokens dans Opus 4.7.
Impact direct : on ne peut plus vérifier comment le modèle raisonne, et les benchmarks deviennent opaques.
Imaginez un élève qui réussit un examen parfait, mais sans montrer ses calculs. Vous ne saurez jamais s'il a raisonné correctement ou simplement deviné. C'est exactement ce qui se passe avec Claude Opus 4.7, sorti le 16 avril 2026 par Anthropic. Ce modèle phare, acclamé pour ses avancées en raisonnement hybride et en ingénierie logicielle agentique, cache par défaut le raisonnement interne qui était visible dans Opus 4.6. Dans cet article, nous explorons ce changement technique, ses implications pour les développeurs et entreprises, et les workarounds possibles. Préparez-vous à plonger dans une boîte noire qui pourrait freiner l'adoption en production.
Opus 4.7 introduit un raisonnement adaptatif : le modèle ajuste automatiquement la profondeur de sa réflexion selon la complexité de la tâche, sans besoin de prompts explicites. Mais cela se fait au prix de la transparence. Avec Opus 4.6, le paramètre thinking révélait le processus mental brut. Désormais, c'est opaque par défaut.
Opus 4.7 est sorti. Et sous le capot, ce n'est pas le modèle qui a le plus changé , c'est la manière dont il pense.
Avec Opus 4.6, quand on envoyait une requête à l'API Claude avec le paramètre thinking, on recevait deux blocs dans la réponse :
Un bloc thinking contenant le raisonnement brut du modèle , en texte lisible
Un bloc text avec la réponse finale
Concrètement, ça ressemblait à ça :
// Opus 4.6 , thinking visible
{
"type": "thinking",
"thinking": "Understanding: 3x3 magic square, each row/column/diagonal sums to 15. Standard solution: 2 7 6 / 9 5 1 / 4 3 8",
"signature": "EpYCClkIDBgCKkAh4S9m..."
}On voyait exactement ce que le modèle pensait avant de répondre. Ici, il identifie le problème, nomme la solution, et la pose. On peut vérifier qu'il a raisonné correctement avant même de lire sa réponse.
Avec Opus 4.7, le bloc thinking est toujours là dans la structure JSON. Mais son contenu est vide :
// Opus 4.7 , thinking vide
{
"type": "thinking",
"thinking": "",
"signature": "EpwDClkIDBgCKkC/NcX0..."
}Le modèle a raisonné , la signature le prouve. Mais on ne sait pas sur quoi, ni comment. Le raisonnement est une boîte noire.
Ce n'est pas un bug. C'est un choix d'Anthropic pour prioriser l'adaptativité, au détriment de la visibilité.
Trois changements majeurs dans l'API :
thinking a été refonduL'ancien format {type: "enabled", budget_tokens: 10000} ne fonctionne plus et renvoie une erreur 400. Le nouveau format impose un type "adaptive" :
// Ancien (Opus 4.6) , CASSE sur 4.7
thinking: { type: "enabled", budget_tokens: 10000 }
// Nouveau (Opus 4.7)
thinking: { type: "adaptive", display: "summarized" }
output_config: { effort: "high" }On ne contrôle plus le budget de tokens alloués au raisonnement. Le modèle décide lui-même de la profondeur de sa réflexion.
Le paramètre thinking.display passe de "summarized" (Opus 4.6) à "omitted" (Opus 4.7). Si on ne spécifie rien explicitement, le champ thinking est vide ou absent.
Pour récupérer un résumé du thinking (pas le texte brut , un résumé), il faut passer display: "summarized" manuellement à chaque appel. Mais même avec ça, on n'a plus le raisonnement complet. On a un résumé.
Via Claude Code, il n'existe aucun flag pour changer ce comportement. Pas de variable d'environnement, pas de paramètre de configuration. Le thinking est caché et il n'y a rien à faire.
Finies les allocations précises de tokens de réflexion. À la place, un système d'"effort levels" à 5 niveaux (low, medium, high, xhigh, max) qui contrôle la profondeur de raisonnement de manière abstraite. On perd le contrôle granulaire.
On a lancé le même prompt sur Opus 4.6 et Opus 4.7 via Claude Code, en stream-json :
claude --model claude-opus-4-6 --output-format stream-json --verbose \
-p "You are given a 3x3 grid. Place the digits 1-9 so that each row, each column, and both diagonals sum to 15."
claude --model claude-opus-4-7 --output-format stream-json --verbose \
-p "You are given a 3x3 grid. Place the digits 1-9 so that each row, each column, and both diagonals sum to 15."Note importante : sur un prompt trop simple, l'adaptive thinking peut décider de ne même pas créer de bloc thinking (ni sur 4.6 ni sur 4.7). On a utilisé un problème de raisonnement (carré magique 3x3) pour forcer le modèle à penser.
Résultat :
Opus 4.6 | Opus 4.7 | |
|---|---|---|
Bloc thinking | ✅ Présent, texte lisible (47 chars) | ⚠️ Présent, mais contenu vide ( |
Signature | ✅ Présente | ✅ Présente |
Qualité de la réponse | Correcte | Correcte |
Les deux modèles arrivent à la bonne réponse. Mais seul Opus 4.6 montre son travail. Opus 4.7 renvoie un bloc thinking structurellement présent, avec une signature (preuve que le modèle a raisonné), mais dont le contenu est une chaîne vide.
Quand on benchmarke un modèle IA, on ne regarde pas seulement si la réponse est juste. On regarde comment le modèle est arrivé à cette réponse. Est-ce qu'il a considéré les bonnes sources ? Est-ce qu'il a vu le piège dans la question ? Est-ce qu'il a éliminé les mauvaises pistes avant de choisir ?
Avec les thinking tokens, on pouvait répondre à ces questions. Sans eux, on est réduit à évaluer le résultat final , comme si on notait un examen en ne regardant que la réponse sans les calculs intermédiaires. Un étudiant qui devine juste et un étudiant qui raisonne correctement obtiennent la même note.
Dans un contexte de production, c'est un recul majeur. On ne peut plus distinguer une bonne réponse obtenue par le bon raisonnement d'une bonne réponse obtenue par hasard.
Quand un agent IA fait une erreur en production, la première chose qu'on fait, c'est lire son thinking pour comprendre où il s'est trompé. Est-ce qu'il a mal interprété la consigne ? Est-ce qu'il a pris une mauvaise décision à une étape intermédiaire ? Est-ce qu'il a ignoré un contexte important ?
Sans thinking, on doit deviner. On regarde la réponse incorrecte et on fait des hypothèses sur ce qui a pu se passer en interne. C'est du debug à l'aveugle.
L'IA en production, c'est une question de confiance. Quand on déploie un agent qui traite des documents clients ou qui prend des décisions métier, la capacité à auditer son raisonnement n'est pas un luxe. C'est une nécessité.
Anthropic, en cachant les thinking tokens par défaut, réduit cette capacité d'audit. Ce qui est paradoxal : dans un marché où la transparence de l'IA est de plus en plus demandée (régulations EU, exigences enterprise), le principal fournisseur d'IA "sûre" prend la direction inverse.
Il existe une seule parade : rester sur Opus 4.6.
En ajoutant "model": "claude-opus-4-6" dans le settings.json de Claude Code, on retrouve les thinking tokens visibles. C'est ce qu'on fait chez Impulse Lab pour les benchmarks et le debug.
Côté API directe, on peut demander display: "summarized" sur Opus 4.7 pour récupérer un résumé du thinking. Mais un résumé n'est pas le raisonnement brut. On perd le détail, et donc la capacité d'audit granulaire.
Il n'y a pas de "meilleur des deux mondes" aujourd'hui. Les docs Anthropic mentionnent une préservation des blocs de réflexion pour l'optimisation cache, mais sans visibilité par défaut.
Opus 4.7 n'est pas un mauvais modèle. En termes de qualité de réponse, il est au même niveau qu'Opus 4.6, avec des améliorations sur les benchmarks comme SWE-bench Pro (64,3%) et GPQA Diamond (94,2%), un support visuel haute résolution, et un nouveau niveau d'effort "xhigh".
Mais le changement autour des thinking tokens est un choix produit, pas un choix technique. Anthropic a décidé de rendre le raisonnement opaque par défaut pour booster l'adaptativité. Et cette décision a des conséquences directes sur la capacité des développeurs à :
Benchmarker sérieusement
Débugger en production
Auditer le comportement de leurs agents
Faire confiance au modèle autrement que sur parole
Le mot-clé ici, c'est "par défaut". Anthropic n'a pas supprimé le thinking , ils l'ont caché. Ce qui est peut-être pire : ça crée l'illusion que tout fonctionne normalement, alors qu'on a perdu un outil de vérification essentiel.
Si vous construisez des systèmes IA en production et que la traçabilité du raisonnement compte pour vous, gardez Opus 4.6 pour vos benchmarks. Et poussez Anthropic à rendre le display: "summarized" (ou mieux, le texte brut) accessible par défaut, pas en opt-in.

Notre équipe d'experts vous répond rapidement pour comprendre vos besoins et vous proposer la meilleure solution.
Vous avez des questions ? On a les réponses.

Leonard
Co-fondateur