'ThinkingBlock' object has no attribute 'text'——换了新版 Claude 模型后响应开头不再是文本的原因与修复方法
把 Claude API 使用的模型换成新版后,出现 AttributeError: 'ThinkingBlock' object has no attribute 'text',或者响应的文本变成空的。原因是 Claude 5 及以后的模型即使不写 thinking 也会在需要时思考,响应的第一个块变成了思考块。Claude 4 系列不写就不思考,所以只换模型名,响应的形式就会改变。输入简单时第一个块仍是文本,所以轻量输入的测试会通过。本文根据 Anthropic 的文档和我在自己环境中对 4 个模型的实测(2026 年 11 月 1 日),整理了原因、按类型查找文本块并读取的修复方法(Python、TypeScript)、因 max_tokens 而没有返回文本时的处理、能关闭思考与不能关闭思考的模型,以及在测试中不漏掉的步骤。