Le texte de sortie « Extended Thinking » de Claude Code n’est pas le raisonnement réel
(patrickmccanna.net)- Claude Code enregistre les sessions sur le disque, mais dans les thinking blocks des logs locaux, il ne restait qu’une
signaturede 600 caractères au lieu du texte du raisonnement réel - Le raisonnement de Claude est chiffré via une signature, et la clé est détenue par Anthropic sans être transmise à l’appareil de l’utilisateur
- La valeur renvoyée par l’API n’est pas le texte original du raisonnement, mais un résumé du raisonnement ; pour obtenir la totalité du thinking output, un enterprise agreement est nécessaire
- La sortie extended-thinking visible avec
ctrl+on’est elle aussi qu’un résumé du processus de réflexion de Fable/Opus, et non le raisonnement lui-même qui a directement piloté le comportement du modèle pendant la session - Si l’on veut utiliser une session Claude Code comme piste d’audit, il faut partir du principe que la logique réelle de l’agent ne peut pas être reconstituée à partir des seuls fichiers locaux, entrées-sorties et logs d’activité
Ce qui reste dans les logs locaux n’est pas le texte original du raisonnement
- Claude Code enregistre chaque session sur le disque, et ces logs contiennent des thinking blocks correspondant au travail du modèle
- En essayant de consulter ce raisonnement en local, on ne trouve pas le texte réel mais seulement une
signaturede 600 caractères - La documentation d’Anthropic sur extended thinking décrit cette structure ainsi
- Claude chiffre son raisonnement dans cette signature
- La clé est détenue par Anthropic
- L’appareil de l’utilisateur ne reçoit pas la clé
- L’API renvoie non pas le raisonnement lui-même, mais un reasoning summary
- Pour obtenir la totalité du thinking output, un enterprise agreement est requis
- Le billet de Matt Green propose des observations plus détaillées sur le bloc de signature
Les limites de la sortie Extended Thinking
- La sortie extended-thinking visible via
ctrl+odans Claude Code est un résumé du thinking de Fable/Opus - Cette sortie n’est pas le thinking lui-même qui a réellement piloté le comportement du modèle pendant la session, mais le résultat d’une compression de la logique de raisonnement
- La transformation en résumé implique une perte de données ; le texte original compare cela à une situation où des informations se perdent lors de la conversion d’un format de fichier
- Points d’attention lorsqu’on a besoin d’une trace de la logique utilisée par l’agent dans une session Claude Code
- Les seuls fichiers locaux ne permettent pas de reproduire cette logique
- Les logs de raisonnement présents dans le système ne sont pas accessibles à l’utilisateur sous une forme exploitable
- Les entrées, sorties et le comportement de Claude Code pendant l’exécution peuvent être récupérés et enregistrés séparément
- Mais ces logs ne correspondent pas non plus au raisonnement qui a réellement piloté le comportement de l’agent
- La formulation de la documentation, « extended thinking returns a summary of Claude’s full thinking process », est indirecte et peut laisser croire, à tort, qu’elle renvoie le full thinking réel
1 commentaires
Commentaires sur Hacker News
Ce n’est pas un problème propre à Anthropic : presque toutes les grandes entreprises d’IA, y compris OpenAI et Google, cachent le véritable processus de raisonnement de leurs modèles
parce que publier le raisonnement brut révélerait tel quel la manière dont l’IA traite l’information, et ces entreprises dépensent d’énormes budgets de R&D pour construire de meilleurs processus de pensée que leurs concurrents
divulguer ce mécanisme de pensée à la concurrence ruinerait l’objectif même de cette dépense, donc elles ne le feront jamais ; c’est un peu comme donner sa position exacte à quelqu’un qui vous poursuit
Le post-traiter sous forme de résumé, par exemple, le rend moins utile pour les concurrents
Donc c’est encore pire
La métaphore disant que « ce n’est pas une vraie pensée mais un résumé de la logique de pensée ; c’est comme enregistrer un jpeg en .bmp, modifier le .bmp puis le présenter à nouveau comme un .jpeg ; il y a une perte de données dans la conversion » est à l’envers
.bmp est un format sans perte, et .jpeg est un format avec perte
Je ne compte ni utiliser ni recommander des modèles à raisonnement caché, et tous les modèles américains entrent dans cette catégorie
Le risque est trop élevé et l’optimisation de prompt devient aussi plus difficile
C’est risqué parce qu’un attaquant peut injecter un objectif secret dans la chaîne de raisonnement via une injection de prompt, puis le masquer dans le résumé et la sortie
C’est encore plus risqué quand raisonnement et appels de fonctions sont mélangés, car le modèle peut appeler des fonctions pendant une étape de raisonnement cachée
Dans ce cas, même si un attaquant exfiltre des données, le résumé du raisonnement peut le cacher à l’utilisateur
On ne peut pas non plus savoir si le modèle est tombé dans une boucle infinie pendant le raisonnement et gaspille des tokens ; Gemini a cette tendance, et on l’a déjà constaté lors de fuites de raisonnement caché
Quand les modèles seront de l’AGI et deviendront sûrs face aux injections de prompt, ça m’importera peut-être moins, mais d’ici là je veux savoir exactement comment un modèle réagit aux prompts et ce qu’un agent fait exactement à ma place
Lecture complémentaire : Fooling around with encrypted reasoning blobs
https://blog.cryptographyengineering.com/2026/05/29/fooling-...
Pour évaluer un appel de fonction côté client, il faudrait bien à un moment déchiffrer ce flux de pensée côté client, et alors tout l’intérêt de cette obfuscation disparaît
Si tu veux dire que les appels de fonctions peuvent avoir lieu côté serveur, alors tant qu’on utilise une API de raisonnement, il n’y a aucun moyen d’empêcher le serveur de le faire en le cachant
Pour l’instant, il ne fonctionne qu’en Rust : https://github.com/Kapperchino/agent-joe
Sinon, comment le client pourrait-il les exécuter ?
On sait ça depuis longtemps, et les entreprises ne cherchent pas vraiment à le cacher
Elles font ça pour empêcher les concurrents d’entraîner des modèles sur la chaîne de pensée (CoT)
Il me semble que c’était déjà le cas depuis Opus 4.6
Je me souviens clairement que ce changement a eu lieu vers janvier ou février, et que la raison donnée était explicitement la prévention de la distillation
Sonnet n’a pas cette limitation
Ce qui est amusant, c’est qu’en revenant à la méthode d’il y a deux ans et en ajoutant explicitement un prompt CoT, tout le prompt de pensée réapparaît
Il suffit donc de désactiver complètement la fonctionnalité de pensée, puis d’inclure la réflexion directement dans le prompt normal, comme ceci
« Avant de répondre, réfléchis étape par étape. Par exemple :
L’utilisateur me demande de …
Je dois réfléchir à blah blah. D’abord faire foo the bar, puis faire blah blah
Réponse : »
Et là, tada.wav, la CoT remarche comme à l’époque de GPT-3
Je ne pense pas que les blocs de raisonnement de chaîne de pensée correspondent vraiment au raisonnement au sens où les humains l’entendent
Il suffit de voir le « raisonnement difficile à lire » de la section 6.2.2 de la system card Fable/Mythos, ainsi que les questions soulevées par l’article d’Apple « The illusion of thinking »
Je pensais qu’ils masquaient les blocs de raisonnement parce que les utilisateurs seraient surpris de voir ce qui s’y passe réellement
Je serais probablement moi aussi surpris de voir ce qui se passe réellement dans la tête de mes collègues
À l’inverse, il y a aussi des cas où la réponse finale omet quelque chose alors que des idées utiles étaient bien présentes à l’intérieur
J’avais déjà laissé une petite note disant que DeepSeek R1 produisait ce genre de traces de pensée
“(Dimethyl(oxo)-lambda6-sulfa雰囲idine)methane donate a CH2rola group occurs in reaction, Practisingproduct transition vs adds this.to productmodule. Indeed"come tally said Frederick would have 10 +1 =11 carbons. So answer q Edina is11.”
Et il en tirait comme conclusion la « bonne » réponse à un problème de chimie
Dans ce cas, la trace de pensée peut donc apparaître au lecteur comme une chaîne de caractères assez dénuée de sens, mais je ne sais pas encore bien si c’est une bizarrerie de ce modèle ou une propriété générale des LLM
J’en avais parlé avec l’auteur à l’époque, mais comme l’article devait paraître quelque part comme NeurIPS, j’ai oublié de vérifier la suite ; si quelqu’un le retrouve, ce serait bien de le partager
0: https://wiki.roshangeorge.dev/w/Blog/2025-10-12/Word_Magic#I...?
1: J’imagine que c’est au sens de croyance vraie
Oui, plusieurs modèles « pensent » sous une forme de jargon technique étrange
Voici un exemple de trace de pensée de Mythos quand il joue au solitaire : https://www.lesswrong.com/posts/wCSEpT3dTGz4N86Wi/even-illeg...
“7♣-removal-IS-the-prerequisite-for-10♠/9♥!!)-⟹-OVERLAP-(ii)+(iv):-{6♠ J♦ 9♥ 2♣}-=-FOUR--—-UNLESS-7♣'s-seat-8♥-...-and-2♣-drains-only-at-crack-:-⟹-2♣-celled-+-9♥-celled-simultaneously-UNAVOIDABLE-in-t8-dig--—-BREAK:-9♥”
Là, on dirait qu’on est à un stade où le modèle cesse de penser en anglais et se rapproche un peu du neuralese, c’est-à-dire d’un raisonnement dans son espace vectoriel interne
Comme c’est sérialisé en texte, ce n’est pas du vrai neuralese, mais on va dans cette direction
Quand j’écris du code, il y a aussi dans mon propre raisonnement interne beaucoup d’étapes intermédiaires qu’il est difficile de formuler en anglais, donc j’ai une certaine empathie pour les modèles
Je me demande si ce n’est pas simplement du bruit de tokens venant d’une implémentation cassée ou d’une quantification du modèle
J’ai déjà vu un modèle sortir ce genre de non-sens, et à chaque fois c’était soit un bug de llama.cpp, soit un
.ggufcorrompuSur HN, l’anthropomorphisme est tabou, mais cela vaut quand même la peine de mentionner que certains pensent aussi que les humains font de la rationalisation a posteriori
https://www.patheos.com/blogs/tippling/2013/11/14/post-hoc-r...
https://www.researchgate.net/publication/316045349_Post_Hoc_...
On pense d’abord de façon non verbale, puis on verbalise après coup une justification plausible
Je ne sais pas vraiment si cela s’applique aussi à l’écriture discursive
Quand on écrit, on utilise fondamentalement des règles logiques pour orienter le récit ; les heuristiques non verbales continuent sans doute d’agir, mais comme elles sont contraintes, ce n’est probablement pas entièrement a posteriori
C’est amer de voir qu’Anthropic cache ainsi ses propres données tout en aspirant toutes les vôtres, et que beaucoup de gens les lui donnent volontiers
Puis l’entreprise fabrique son produit, grignote le marché et concurrence les autres
Anthropic cache ses tokens de raisonnement parce qu’elle pense que c’est son fossé défensif et que cela donnerait un avantage aux autres laboratoires
Si elle croit vraiment que c’est là son avantage compétitif, elle risque d’avoir une surprise
Je me demande très précisément quel produit ils sont censés avoir « aspiré »
Tu veux quand même dire que le contenu de
reasoning_summaryest bien un résumé ?À noter qu’OpenAI fait exactement la même chose, donc ce n’est ni très surprenant ni particulièrement malveillant
Ils font tant d’efforts pour cacher la pensée, mais Opus 4.8 commence à laisser fuiter sa pensée après 100 000 à 200 000 tokens
C’est vraiment comique
Surtout que d’habitude c’est pendant que je le jailbreak pour des raisons de sécurité, donc c’est encore plus étrange
Il sort pendant plusieurs pages des phrases du genre « l’utilisateur demande quelque chose en lien avec la cybersécurité, et cela pourrait facilement être détourné à des fins offensives, donc il faut être prudent », puis au final il me donne volontiers ce que je voulais