'ThinkingBlock' object has no attribute 'text'——Claudeのモデルを替えたら応答の先頭が文章でなくなる原因と直し方
Claude APIで使うモデルを新しい版に替えたら、AttributeError: 'ThinkingBlock' object has no attribute 'text' が出る、または応答の文章が空になる。原因は、Claude 5以降のモデルが thinking を書かなくても必要なときに考え、応答の1つ目が考えた過程のブロックになることです。Claude 4系は書かなければ考えなかったので、モデル名を替えるだけで応答の形が変わります。簡単な入力では先頭が文章のままなので、軽い入力の試験は通ってしまいます。この記事では、Anthropicの文書と筆者の環境での4モデルの実測(2026年11月1日)をもとに、原因、文章のブロックを種類で探して読む直し方(Python・TypeScript)、max_tokens で文章が返らないときの対処、考えるのを止められるモデルと止められないモデル、試験で見落とさない手順をまとめます。