'ThinkingBlock' object has no attribute 'text': почему новая модель Claude больше не начинает ответ с текста и как это исправить
Вы переключили вызовы Claude API на более новую модель — и получили AttributeError: 'ThinkingBlock' object has no attribute 'text', или текст ответа приходит пустым. Причина в том, что модели Claude 5 и новее рассуждают, когда нужно, даже если thinking не задан, и первым блоком ответа становится блок рассуждений. Модели Claude 4 без настройки не рассуждали, поэтому смена одного лишь имени модели меняет форму ответа. На простых запросах первый блок остаётся текстовым, поэтому тесты с лёгкими запросами проходят. На основе документации Anthropic и моей проверки четырёх моделей (1 ноября 2026) в статье разобраны причина, исправление через поиск текстовых блоков по типу (Python и TypeScript), что делать, когда из-за max_tokens текст не возвращается, какие модели позволяют отключить рассуждения, а какие нет, и как не пропустить это в тестах.