Claude Platform Docs
MessagesМышление

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

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

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

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

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

1 enabled и budget_tokens по-прежнему работают на этих моделях, но считаются устаревшими; используйте вместо них адаптивное мышление.
2 Claude Opus 5 принимает "disabled" при уровне effort high или ниже; сочетание его с effort xhigh или max возвращает ошибку 400. Это ограничение применяется к Claude Opus 5 и более поздним моделям и проверяется при каждом запросе.

Модели с пометкой Всегда включено не могут отключить мышление. Модели с пометкой Включено по умолчанию используют мышление, но принимают thinking: {type: "disabled"}.

Более ранние модели 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, сообщение которой гласит:

"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.1, Claude Mythos 5.1, Claude Fable 5, Claude Mythos 5 и Claude Mythos Preview отклоняют "disabled". Все они, кроме Claude Mythos Preview, также отклоняют предлагаемое в тексте ошибки значение "thinking.type.enabled".

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

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

Ошибка 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

В многоходовых диалогах и диалогах с использованием инструментов вы отправляете предыдущие сообщения ассистента, включая их блоки thinking и redacted_thinking, обратно в API, и API проверяет, что они приходят без изменений. Эта ошибка возникает, когда отправляемое вами обратно сообщение ассистента отличается от того, которое вернул API, — чаще всего потому, что ваш код фильтрует блоки содержимого по типу и отбрасывает блоки redacted_thinking либо пересобирает сообщение ассистента вместо того, чтобы вернуть его как есть.

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

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

Запрос к Claude Fable 5.1, воспроизводящий более ранние блоки мышления, завершается ошибкой 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. Сообщение также может заканчиваться предложением, называющим первое изменившееся сообщение. Если в сообщении вообще нет пояснения причины, значит, было изменено содержимое блока. См. Ошибка 400 сообщает, что блоки мышления нельзя изменять.

На Claude Fable 5.1 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 (как минимум названный блок и все последующие, в этом ходе и во всех более поздних ходах), оставьте остальные блоки каждого хода на месте и повторите запрос один раз.

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

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

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

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

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

На некоторых ходах блок мышления не появляется

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

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

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

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

Ответ иногда записывает вызов инструмента в свой текст вместо того, чтобы выдать блок 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, но частота или глубина мышления остаётся прежней.

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

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

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

Обзор: что такое мышление, как его настроить и как оно взаимодействует с инструментами, кэшированием и потоковой передачей.

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

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

Was this page helpful?