'ThinkingBlock' object has no attribute 'text' : pourquoi un modèle Claude plus récent ne commence plus sa réponse par du texte, et comment corriger
Vous avez fait passer vos appels à l'API Claude sur un modèle plus récent, et vous obtenez maintenant AttributeError: 'ThinkingBlock' object has no attribute 'text', ou le texte de la réponse revient vide. La cause : les modèles Claude 5 et suivants réfléchissent quand c'est nécessaire même si vous ne définissez pas thinking, si bien que le premier bloc de la réponse devient un bloc de réflexion. Les modèles Claude 4 ne réfléchissaient pas sans ce réglage : changer seulement le nom du modèle change donc la forme de la réponse. Avec des entrées simples, le premier bloc reste du texte, donc les tests qui utilisent des entrées légères passent. À partir de la documentation d'Anthropic et de mes propres tests sur quatre modèles (1er novembre 2026), cet article présente la cause, la correction qui consiste à chercher les blocs de texte par type (Python et TypeScript), que faire quand max_tokens vous laisse sans texte, quels modèles permettent ou non de désactiver la réflexion, et comment ne pas le rater en test.