Claude Platform Docs
СообщенияРазмышления

Устранение неполадок размышлений

Диагностика и устранение наиболее распространённых сбоев размышлений: ошибок конфигурации 400, пустых или отсутствующих блоков размышлений, остановок по max_tokens и промахов кэша.

На этой странице рассматриваются наиболее распространённые сбои при настройке функции «thinking» (размышления) или при передаче «thinking blocks» (блоков размышлений) туда и обратно, то есть при отправке возвращённых блоков размышлений в последующих запросах. В первом разделе для каждой модели указаны поддерживаемые и отклоняемые конфигурации размышлений. Каждый следующий раздел начинается с наблюдаемого симптома, поэтому вы можете сразу сопоставить сообщение об ошибке или неожиданный ответ с его причиной и способом исправления. Чтобы узнать, как работают размышления, см. обзор Размышления.

Поддержка размышлений, значения по умолчанию и отклоняемые конфигурации по моделям

Большинство ошибок конфигурации размышлений возникает из-за несоответствия между значением 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; любое значение, не указанное как отклоняемое, принимается. Только Claude Sonnet 5.5 принимает "between_tools", и это значение используется в ней вместо "disabled".

МодельТипы размышленийПо умолчаниюОтклоняется с ошибкой 400
Claude Fable 5.1Только адаптивныеВсегда включены"enabled", "disabled"
Claude Mythos 5.1Только адаптивныеВсегда включены"enabled", "disabled"
Claude Fable 5Только адаптивныеВсегда включены"enabled", "disabled"
Claude Mythos 5Только адаптивныеВсегда включены"enabled", "disabled"
Claude Mythos PreviewАдаптивные, расширенныеВсегда включены"disabled"
Claude Opus 5.5Только адаптивныеВсегда включены"enabled", "disabled"
Claude Opus 5Только адаптивныеВключены"enabled", "disabled"2
Claude Opus 4.8Только адаптивныеВыключены"enabled"
Claude Opus 4.7Только адаптивныеВыключены"enabled"
Claude Sonnet 5.5Адаптивные, between_tools3Включены"enabled", "disabled"
Claude Sonnet 5Только адаптивныеВключены"enabled"
Claude Haiku 5.5Только адаптивныеВключены"enabled", "disabled"2
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"

1 enabled и budget_tokens по-прежнему работают на этих моделях, но считаются устаревшими; используйте вместо них адаптивные размышления.
2 Claude Opus 5 и Claude Haiku 5.5 принимают "disabled" при «effort» (уровне усилий) high или ниже; сочетание с уровнем усилий xhigh или max возвращает ошибку 400. На Claude Opus 5 это ограничение применяется к каждому запросу. На Claude Haiku 5.5 уровень усилий для отдельного сообщения, отличающийся от действующего уровня, также возвращает ошибку 400.
3 Claude Sonnet 5.5 принимает "between_tools" при уровне усилий high или ниже. Сочетание с уровнем усилий xhigh или max возвращает ошибку 400, как и уровень усилий для отдельного сообщения, отличающийся от действующего уровня.

Модели с отметкой Всегда включены не могут отключить размышления. Модели с отметкой Включены размышляют по умолчанию. Claude Opus 5, Claude Sonnet 5 и Claude Haiku 5.5 принимают thinking: {type: "disabled"}. На Claude Sonnet 5.5 отправьте thinking: {type: "between_tools"}, чтобы отключить предварительные размышления.

Более ранние модели Claude 4 (Claude Opus 4.1, Claude Sonnet 4 и Claude Opus 4) поддерживают только расширенные размышления. Об их доступности см. Устаревание моделей. Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5 и Claude Mythos 5 недоступны в режиме нулевого хранения данных, если это явно не разрешено Anthropic.

Ошибка 400 сообщает, что "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. Преобразование подробно описано в разделе Переход на адаптивные размышления.

Ошибка 400 после отправки thinking: {type: "disabled"}

Запрос завершается ошибкой 400. На Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5, Claude Opus 5.5 и Claude Mythos 5 сообщение выглядит так:

"thinking.type.disabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.

На Claude Mythos Preview — единственной из этих моделей, которая принимает расширенные размышления, — сообщение выглядит так:

"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.

Это происходит потому, что у всех этих моделей размышления всегда включены (см. таблицу конфигураций по моделям).

Не указывайте параметр thinking: эти модели размышляют без какой-либо настройки. Если ваша цель — не включать текст размышлений в ответы, используйте display: "omitted" вместо отключения размышлений; см. Управление отображением размышлений.

Ошибка 400 для "disabled" также может возникнуть на Claude Opus 5 и Claude Haiku 5.5, которые принимают thinking: {type: "disabled"} только при уровне усилий high или ниже: сочетание с уровнем усилий xhigh или max отклоняется. Понизьте уровень усилий или задайте для thinking значение {"type": "adaptive"}.

На Claude Sonnet 5.5 thinking: {type: "disabled"} возвращает ошибку 400 при любом уровне усилий. Сообщение выглядит так:

To turn thinking off on this model, send "thinking": {"type": "between_tools"} instead of {"type": "disabled"}. The model does not think before responding. The short updates it writes between tool calls come back as thinking blocks.

Чтобы отключить предварительные размышления на Claude Sonnet 5.5, отправьте вместо этого thinking: {type: "between_tools"} при уровне усилий high или ниже.

Ошибка 400 сообщает, что "thinking.type.between_tools" не поддерживается

Запрос завершается ошибкой 400 со следующим сообщением:

"thinking.type.between_tools" is not supported for this model.

Это происходит потому, что thinking: {type: "between_tools"} принимает только Claude Sonnet 5.5 (см. таблицу конфигураций по моделям).

Отправляйте between_tools только в Claude Sonnet 5.5. На других моделях не указывайте thinking или используйте значение thinking.type, которое в таблице не отмечено как отклоняемое.

Ошибка 400 сообщает, что уровень усилий не поддерживается при отключённых размышлениях

На Claude Sonnet 5.5 запрос с thinking: {type: "between_tools"} при уровне усилий xhigh или max завершается ошибкой 400 со следующим сообщением:

output_config.effort 'xhigh' is not supported when thinking is disabled on this model. Use effort 'high' or below, or enable thinking.

Это происходит потому, что Claude Sonnet 5.5 принимает between_tools только при уровне усилий high или ниже. В сообщении говорится, что размышления отключены, поскольку у between_tools нет предварительных размышлений, хотя запрос не отправлял "disabled". В сообщении указан уровень, отправленный в запросе.

Понизьте уровень усилий до high или ниже. Чтобы работать на уровне xhigh или max, используйте адаптивные размышления: не указывайте поле thinking или отправьте thinking: {"type": "adaptive"}. Именно это подразумевается в сообщении под «enable thinking». Claude Sonnet 5.5 отклоняет "enabled" с ошибкой 400.

Claude Haiku 5.5 возвращает то же сообщение, когда запрос отправляет thinking: {type: "disabled"} при уровне усилий xhigh или max. Эта модель принимает "disabled" только при уровне high или ниже. Понизьте уровень усилий или задайте для thinking значение {"type": "adaptive"}.

Ошибка 400 сообщает, что уровень усилий нельзя изменить при отключённых размышлениях

На Claude Sonnet 5.5 запрос с thinking: {type: "between_tools"}, в котором уровень усилий для отдельного сообщения изменяет уровень, завершается ошибкой 400 со следующим сообщением:

messages.N: output_config.effort 'low' differs from the 'high' in effect before it; effort cannot change when thinking is disabled on this model. Use effort 'high', or enable thinking.

В сообщении говорится, что размышления отключены, поскольку у between_tools нет предварительных размышлений. При between_tools уровень усилий нельзя изменить посреди разговора: output_config.effort для отдельного сообщения, отличающийся от действующего уровня, возвращает ошибку 400. messages.N — это позиция сообщения, которое задало новый уровень.

Удалите этот уровень усилий для отдельного сообщения или установите его равным действующему уровню. Чтобы менять уровень усилий от хода к ходу, используйте адаптивные размышления: не указывайте поле thinking или отправьте thinking: {"type": "adaptive"}. Именно это имеется в виду в сообщении под «enable thinking».

Claude Haiku 5.5 возвращает то же сообщение, когда запрос с thinking: {type: "disabled"} задаёт для отдельного сообщения уровень усилий, отличающийся от действующего уровня. Удалите этот уровень усилий для отдельного сообщения или задайте для thinking значение {"type": "adaptive"}, чтобы менять уровень усилий от хода к ходу.

Ошибка 400 сообщает, что адаптивные размышления не поддерживаются

Запрос завершается ошибкой 400 со следующим сообщением:

adaptive thinking is not supported on this model

Это происходит потому, что модель поддерживает только расширенные размышления (см. таблицу конфигураций по моделям).

Используйте вместо этого thinking: {type: "enabled", budget_tokens: N}; описание конфигурации см. в разделе Расширенные размышления.

Ошибка 400 сообщает, что блоки размышлений нельзя изменять

Запрос, возвращающий результаты инструментов, завершается ошибкой 400 invalid_request_error, сообщение которой содержит:

`thinking` or `redacted_thinking` blocks in the latest assistant message cannot be modified

В многоходовых диалогах и диалогах с «tool use» (использованием инструментов) вы отправляете в API предыдущие сообщения ассистента вместе с их блоками thinking и redacted_thinking, а API проверяет, что они пришли без изменений. Эта ошибка возникает, когда отправленное вами сообщение ассистента отличается от возвращённого API. Чаще всего причина в том, что ваш код фильтрует блоки содержимого по типу и отбрасывает блоки redacted_thinking или собирает сообщение ассистента заново вместо того, чтобы вернуть его как есть.

Возвращайте ход ассистента дословно, включая блоки размышлений. Правила см. в разделе Сохранение блоков размышлений. Разобранный пример полного цикла с корректным кодом для каждого SDK приведён в разделе Размышления в рабочих процессах с инструментами и многоходовых диалогах.

Ошибка 400 сообщает, что подпись блока размышлений недействительна

Запрос к Claude Fable 5.1, Claude Opus 5.5, Claude Sonnet 5.5 или Claude Haiku 5.5, который повторно передаёт более ранние блоки размышлений, завершается ошибкой 400 invalid_request_error со следующим сообщением:

messages.{i}.content.{j}: Invalid `signature` in `thinking` block. The block is bound to a different conversation. Remove the block, or set `thinking.block_binding.prefix_mismatch_behavior` to "drop_block".

Если запрос не отправлял бета-заголовок thinking-binding-controls-2026-08-01, к сообщению добавляется That setting requires the `thinking-binding-controls-2026-08-01` value in the `anthropic-beta` header.

Обычно сообщение заканчивается предложением, в котором указано, что изменилось: системная подсказка system, список tools, первое отличающееся сообщение или блок, отсутствующее или новое содержимое либо более ранний блок размышлений, который отсутствует или находится не на своём месте. Это предложение предназначено для людей и журналов. Его формулировка может меняться, поэтому не сопоставляйте его в коде.

Если сообщение заканчивается на Invalid `signature` in `thinking` block, не прошла проверку сама подпись: она была усечена, изменена или отправлена обратно пустой, и prefix_mismatch_behavior в этом случае не применяется. Изменённый текст размышлений возвращает другую ошибку. См. Ошибка 400 сообщает, что блоки размышлений нельзя изменять.

На Claude Fable 5.1, Claude Opus 5.5, Claude Sonnet 5.5 и Claude Haiku 5.5 API принимает повторно переданный блок размышлений только в том случае, если системная подсказка system, tools и предшествовавшие ему сообщения не изменились. См. Сохранение префикса неизменным. Ошибка означает, что что-то в более ранней части разговора изменилось между запросами: отредактированный, переупорядоченный или удалённый ход, напоминание для отдельного хода, которое было вставлено, а затем удалено, пересобранная системная подсказка system или массив tools либо сжатие на стороне клиента, при котором последние ходы и их размышления сохранились дословно. Проверка применяется для новых аккаунтов, созданных 31 августа 2026 года или позже, а также для любого запроса, в котором задан thinking.block_binding.prefix_mismatch_behavior. Серверное сжатие и редактирование контекста никогда её не вызывают.

Чтобы исправить ошибку, ведите историю только в режиме добавления: передавайте более ранние ходы обратно точно в том виде, в каком они были отправлены и получены, добавляйте инструкции с помощью системного сообщения посреди разговора вместо редактирования system или tools и позвольте серверному редактированию контекста или сжатию выполнять любое сокращение. Повторная отправка того же тела запроса не устраняет ошибку. Чтобы продолжить этот запрос без недействительных рассуждений, отправьте бета-заголовок thinking-binding-controls-2026-08-01 и задайте для thinking.block_binding.prefix_mismatch_behavior значение "drop_block". В качестве альтернативы удалите из истории все блоки thinking и redacted_thinking (как минимум указанный блок и все последующие — в этом ходе и во всех более поздних), оставьте остальные блоки каждого хода на месте и повторите запрос один раз. На Claude Sonnet 5.5 и Claude Haiku 5.5 block_binding работает только с thinking: {"type": "adaptive"}. При between_tools на Claude Sonnet 5.5 или thinking: {"type": "disabled"} на Claude Haiku 5.5 ведите историю только в режиме добавления или удалите блоки размышлений начиная с отредактированного хода.

Блок от модели, который целевая модель не может прочитать, никогда не вызывает эту ошибку: API отбрасывает его и при наличии бета-заголовка сообщает об этом в input_transformations.

Поле thinking в ответе пустое

Ответ содержит блоки thinking, но их поле thinking — пустая строка, и заполнено только поле signature.

Это происходит потому, что на более новых моделях display по умолчанию имеет значение "omitted", при котором блоки размышлений возвращаются без текста.

Установите display: "summarized" в конфигурации размышлений, чтобы получать краткое изложение текста размышлений. Значения по умолчанию для каждой модели см. в разделе Управление отображением размышлений. Если вам нужны только короткие строки состояния, которые некоторые модели пишут между вызовами инструментов, а не сами рассуждения, установите вместо этого display: "updates" (бета). См. раздел Обновления о ходе работы между вызовами инструментов.

Блок с пустым полем thinking всё равно является полным: рассуждения содержатся в signature. Отправляйте его обратно вместе с ходом, как и любой другой блок. См. раздел Отправляйте ходы ассистента обратно точно в том виде, в каком они были возвращены.

На некоторых ходах блок размышлений отсутствует

Некоторые ответы вообще не содержат блока thinking, хотя размышления настроены.

В адаптивном режиме это нормально: Claude пропускает размышления в запросах, которые считает достаточно простыми для прямого ответа.

Если вы хотите, чтобы размышления происходили чаще или были глубже, повысьте effort или направляйте модель с помощью подсказок; см. раздел Управление частотой размышлений Claude.

Принудительный tool_choice ({"type": "any"} или указанный по имени инструмент) также возвращает ответ без блока thinking: ответ начинается с вызова инструмента. Чтобы модель могла поразмышлять перед вызовом инструмента, используйте tool_choice: {"type": "auto"} и укажите в подсказке, когда использовать инструмент.

В текстовом выводе появляются вызовы инструментов или XML-теги

Иногда ответ записывает вызов инструмента в текст вместо того, чтобы выдать блок tool_use, или включает в видимый текст <thinking> либо другие внутренние XML-теги. Такой «просочившийся» вызов инструмента никогда не выполняется. В агентных циклах просочившийся текст остаётся в истории диалога, поэтому затрагиваются и последующие ходы.

Это происходит на Claude Opus 5 при отключённых размышлениях, чаще всего на нагрузках с интенсивным использованием инструментов, например при поиске. Правила в системной подсказке, которые предписывают модели не размышлять или не рассуждать, усиливают утечку тегов.

Снова включите размышления (это значение по умолчанию), а для контроля расхода токенов используйте более низкие уровни effort. Если ваша интеграция должна работать с отключёнными размышлениями, примените приёмы работы с подсказками из раздела Работа с отключёнными размышлениями.

Ответ останавливается с stop_reason: "max_tokens"

Ответ завершается с stop_reason: "max_tokens", часто с усечённым или отсутствующим текстовым блоком.

Это происходит потому, что токены размышлений учитываются в max_tokens. Длительные размышления могут исчерпать этот лимит до того, как текстовый ответ будет завершён.

Увеличьте max_tokens, чтобы оставить место и для размышлений, и для текста, или понизьте effort, чтобы Claude тратил меньше на размышления. См. разделы Контроль затрат и Размышления и «context window» (контекстное окно).

Попадания в кэш сокращаются после изменения настроек размышлений

cache_read_input_tokens падает до нуля в запросах, которые раньше попадали в кэш.

Это происходит потому, что конфигурация размышлений и уровень усилий (или его значение по умолчанию) входят в кэшируемый префикс подсказки. Изменение любого из них начинает новый префикс. Переключение режима размышлений, изменение значения уровня усилий и изменение budget_tokens делают недействительными точки останова кэша для сообщений. В зависимости от того, где модель отображает конфигурацию, они также могут сделать недействительными точки останова для инструментов и системной подсказки.

Сохраняйте конфигурацию размышлений и уровень усилий неизменными во всех запросах одного диалога. Явная установка параметра в значение по умолчанию равнозначна его отсутствию и не делает кэш недействительным. См. раздел Размышления и «prompt caching» (кэширование подсказок).

Установка уровня усилий не меняет размышления

Вы меняете effort, но частота или глубина размышлений остаются прежними.

Это происходит потому, что уровень усилий служит основным рычагом управления размышлениями только в адаптивном режиме. На моделях, поддерживающих только расширенные размышления, глубину размышлений вместо этого задаёт budget_tokens.

На таких моделях настраивайте budget_tokens или проверьте, в каком режиме работает ваша модель; см. раздел Размышления и уровень усилий. Claude Opus 4.5 — единственная модель с поддержкой только расширенных размышлений, которая поддерживает уровень усилий. На ней уровень усилий действует совместно с бюджетом; см. раздел Правила и настройка бюджета.

Следующие шаги

Обзор: что такое размышления, как их настроить и как они взаимодействуют с инструментами, кэшированием и «streaming» (потоковая передача).

Полный справочник по ошибкам, включая ошибки 400 конфигурации размышлений с точными сообщениями сервера.

Преобразуйте запросы с budget_tokens в адаптивные размышления с уровнем усилий.

Was this page helpful?