О том, как «zero data retention» (нулевое хранение данных), или ZDR, применяется к этой функции, см. API и хранение данных.
Эта страница охватывает наиболее распространённые сбои при настройке мышления или при круговой передаче блоков мышления (отправке возвращённых блоков мышления обратно в последующих запросах). Первый раздел сопоставляет каждую модель с поддерживаемыми ею конфигурациями мышления и теми, которые она отклоняет; каждый из последующих разделов начинается с наблюдаемого вами симптома, чтобы вы могли сопоставить сообщение об ошибке или неожиданный ответ непосредственно с его причиной и исправлением. О том, как работает мышление, см. обзор Мышление.
Большинство ошибок конфигурации мышления — это несоответствие между значением thinking.type в запросе и тем, что поддерживает модель. На текущих моделях мышление работает как thinking: {type: "adaptive"}, а на новейших оно включено по умолчанию. Некоторые более ранние модели вместо этого используют extended thinking (расширенное мышление) — устаревший ручной режим, настраиваемый как thinking: {type: "enabled", budget_tokens: N}.
Extended thinking (расширенное мышление) (thinking.type: "enabled" с budget_tokens) объявлено устаревшим в моделях Claude 4.6 (запросы с его использованием по-прежнему выполняются успешно). Claude 4.7 и более поздние модели не поддерживают его и отклоняют запросы, которые его используют, возвращая ошибку 400. В моделях Claude 4.5 и более ранних, поддерживающих мышление, расширенное мышление является единственным доступным режимом мышления. Claude Mythos Preview поддерживает оба режима. Там, где доступны оба режима, используйте вместо этого адаптивное мышление.
В таблице перечислено, что поддерживает каждая модель, что используется по умолчанию и какие значения thinking.type она отклоняет с ошибкой 400; любое значение, не указанное как отклоняемое, принимается.
| Модель | Типы мышления | По умолчанию | Отклоняется с 400 |
|---|---|---|---|
| Claude Fable 5 | Только адаптивное | Всегда включено | "enabled", "disabled" |
| Claude Mythos 5 | Только адаптивное | Всегда включено | "enabled", "disabled" |
| Claude Mythos Preview | Адаптивное, расширенное | Всегда включено | "disabled" |
| Claude Opus 5 | Только адаптивное | Включено | "enabled", "disabled"2 |
| Claude Opus 4.8 | Только адаптивное | Выключено | "enabled" |
| Claude Opus 4.7 | Только адаптивное | Выключено | "enabled" |
| Claude Sonnet 5 | Только адаптивное | Включено | "enabled" |
| Claude Opus 4.6 | Адаптивное, расширенное (устарело)1 | Выключено | Нет |
| Claude Sonnet 4.6 | Адаптивное, расширенное (устарело)1 | Выключено | Нет |
| Claude Opus 4.5 | Только расширенное | Выключено | "adaptive" |
| Claude Haiku 4.5 | Только расширенное | Выключено | "adaptive" |
| Claude Sonnet 4.5 | Только расширенное | Выключено | "adaptive" |
| Claude Opus 4.1 (устарела) | Только расширенное | Выключено | "adaptive" |
1 enabled и budget_tokens всё ещё работают на этих моделях, но устарели; используйте вместо них адаптивное мышление.
2 Claude Opus 5 принимает "disabled" при effort high или ниже; сочетание его с effort xhigh или max возвращает ошибку 400. Это ограничение применяется к Claude Opus 5 и более поздним моделям и проверяется при каждом запросе.
Модели, отмеченные как «Всегда включено», не могут отключить мышление. Модели, отмеченные как «Включено», по умолчанию используют мышление, но принимают thinking: {type: "disabled"}.
Более ранние модели Claude 4 (Claude Sonnet 4 и Claude Opus 4) поддерживают только расширенное мышление; см. устаревание моделей для информации об их доступности. Claude Fable 5 и Claude Mythos 5 недоступны при нулевом хранении данных.
"thinking.type.enabled" не поддерживаетсяЗапрос завершается ошибкой 400 со следующим сообщением:
"thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.Это происходит потому, что запрошенная вами модель удалила расширенное мышление (см. Конфигурации, которые отклоняет каждая модель).
Переключите запрос на thinking: {type: "adaptive"} и управляйте глубиной мышления с помощью effort вместо budget_tokens. Миграция на адаптивное мышление подробно описывает преобразование.
"thinking.type.disabled" не поддерживаетсяЗапрос завершается ошибкой 400 со следующим сообщением:
"thinking.type.disabled" is not supported for this model. Thinking defaults to adaptive mode when not specified; use "thinking.type.enabled" with "budget_tokens" for extended thinking.Это происходит на моделях, где мышление всегда включено: Claude Fable 5, Claude Mythos 5 и Claude Mythos Preview отклоняют "disabled". На Claude Fable 5 и Claude Mythos 5 предложение из текста ошибки использовать "thinking.type.enabled" также не применимо: эти модели отклоняют и его.
Опустите параметр thinking; эти модели думают без какой-либо конфигурации. Если вашей целью было исключить текст мышления из ответов, используйте display: "omitted" вместо отключения мышления; см. Управление отображением мышления.
Ошибка 400 на "disabled" также может возникнуть на Claude Opus 5, который принимает thinking: {type: "disabled"} только при effort high или ниже: сочетание его с effort xhigh или max отклоняется. Понизьте уровень effort или оставьте мышление включённым.
Запрос завершается ошибкой 400 со следующим сообщением:
adaptive thinking is not supported on this modelЭто происходит потому, что модель поддерживает только расширенное мышление (см. Конфигурации, которые отклоняет каждая модель).
Используйте вместо этого thinking: {type: "enabled", budget_tokens: N}; см. Расширенное мышление для настройки.
Запрос, возвращающий результаты инструментов, завершается ошибкой 400 invalid_request_error, сообщение которой содержит:
`thinking` or `redacted_thinking` blocks in the latest assistant message cannot be modifiedВ многоходовых диалогах и диалогах с использованием инструментов вы отправляете предыдущие сообщения ассистента, включая их блоки thinking и redacted_thinking, обратно в API, и API проверяет, что они приходят без изменений. Эта ошибка возникает, когда сообщение ассистента, которое вы отправляете обратно, отличается от того, которое вернул API, чаще всего потому, что ваш код фильтрует блоки содержимого по типу и отбрасывает блоки redacted_thinking, или пересобирает сообщение ассистента вместо того, чтобы вернуть его как есть.
Возвращайте ход ассистента дословно, включая блоки мышления. См. Сохранение блоков мышления для правил и разобранный пример кругового обмена в Мышление в рабочих процессах с инструментами и многоходовых диалогах для корректного кода в каждом SDK.
Ответ содержит блоки thinking, но их поле thinking является пустой строкой, и заполнено только поле signature.
Это происходит потому, что display по умолчанию имеет значение "omitted" на новых моделях, что возвращает блоки мышления без их текста.
Установите display: "summarized" в вашей конфигурации мышления, чтобы получать суммированный текст мышления; см. Управление отображением мышления для значений по умолчанию для каждой модели.
Некоторые ответы вообще не содержат блока thinking, хотя мышление настроено.
Это нормально в адаптивном режиме: Claude пропускает мышление на запросах, которые он считает достаточно простыми, чтобы ответить напрямую.
Если вы хотите, чтобы мышление происходило чаще или глубже, повысьте effort или управляйте с помощью подсказок; см. Управление тем, как часто Claude думает.
Ответ иногда записывает вызов инструмента в свой текст вместо выдачи блока tool_use или включает <thinking> или другие внутренние XML-теги в свой видимый текст. Утёкший вызов инструмента никогда не выполняется, а в агентных циклах утёкший текст остаётся в истории диалога, поэтому последующие ходы также затрагиваются.
Это происходит на Claude Opus 5, когда мышление отключено, чаще всего на рабочих нагрузках с интенсивным использованием инструментов, таких как поиск. Правила системной подсказки, инструктирующие модель не думать или не рассуждать, увеличивают утечку тегов.
Снова включите мышление (по умолчанию) и используйте более низкие уровни effort для контроля стоимости токенов. Если ваша интеграция должна оставлять мышление отключённым, примените меры смягчения через подсказки из раздела Работа с отключённым мышлением.
stop_reason: "max_tokens"Ответ заканчивается с stop_reason: "max_tokens", часто с усечённым или отсутствующим текстовым блоком.
Это происходит потому, что токены мышления учитываются в max_tokens, поэтому длинный проход мышления может израсходовать бюджет до завершения текстового ответа.
Увеличьте max_tokens, чтобы оставить место и для мышления, и для текста, или понизьте effort, чтобы Claude тратил меньше на мышление; см. Контроль затрат и Мышление и контекстное окно.
cache_read_input_tokens падает до нуля на запросах, которые ранее попадали в кэш.
Это происходит потому, что конфигурация мышления и уровень effort (или его значение по умолчанию) являются частью кэшированного префикса подсказки, поэтому изменение любого из них начинает новый префикс: переключение режимов мышления, изменение значения effort и изменение budget_tokens — всё это инвалидирует точки останова кэша сообщений и может инвалидировать точки останова инструментов и системной подсказки, в зависимости от того, где модель отображает конфигурацию.
Сохраняйте конфигурацию мышления и уровень effort постоянными для запросов, которые разделяют один диалог; явная установка параметра в его значение по умолчанию эквивалентна его пропуску и не инвалидирует кэш. См. Мышление и кэширование подсказок.
Вы меняете effort, но частота или глубина мышления остаются прежними.
Это происходит потому, что effort является основным рычагом мышления только в адаптивном режиме. На моделях только с расширенным мышлением глубина мышления задаётся через budget_tokens.
Настройте budget_tokens на этих моделях или проверьте, в каком режиме работает ваша модель; см. Мышление и effort. На Claude Opus 4.5, единственной модели только с расширенным мышлением, поддерживающей effort, effort сочетается с бюджетом; см. Правила бюджета и настройка.
Обзор: что такое мышление, как его настроить и как оно взаимодействует с инструментами, кэшированием и потоковой передачей.
Полный справочник ошибок, включая ошибки 400 конфигурации мышления с их точными сообщениями сервера.
Преобразуйте запросы с budget_tokens в адаптивное мышление с effort.
Was this page helpful?