• Сообщения
  • Управляемые агенты
  • Администрирование

Search...
⌘K
Первые шаги
Знакомство с ClaudeБыстрый старт
Разработка с Claude
Обзор возможностейИспользование Messages APIПричины остановки и резервный вариантОтказы и резервный вариантРезервный кредит
Возможности модели
Расширенное мышлениеАдаптивное мышлениеУсилиеБюджеты задач (бета)Быстрый режим (исследовательская предварительная версия)Структурированные выходные данныеЦитированиеПотоковая передача сообщенийПакетная обработкаРезультаты поискаПотоковая передача отказовМногоязычная поддержкаЭмбеддинги
Инструменты
ОбзорКак работает использование инструментовРуководство: создание агента с использованием инструментовОпределение инструментовОбработка вызовов инструментовПараллельное использование инструментовTool Runner (SDK)Строгое использование инструментовИспользование инструментов с кэшированием подсказокСерверные инструментыУстранение неполадокИнструмент веб-поискаИнструмент веб-загрузкиИнструмент выполнения кодаИнструмент советникаИнструмент памятиИнструмент BashИнструмент использования компьютераИнструмент текстового редактора
Инфраструктура инструментов
Справочник по инструментамУправление контекстом инструментовКомбинации инструментовПоиск инструментовПрограммный вызов инструментовДетальная потоковая передача инструментов
Управление контекстом
Контекстные окнаСжатиеРедактирование контекстаКэширование подсказокСистемные сообщения в середине разговораСоздание режима оркестрацииДиагностика кэша (бета)Подсчёт токенов
Работа с файлами
Files APIПоддержка PDFИзображения и зрение
Навыки
ОбзорБыстрый стартРекомендацииНавыки для предприятийНавыки в API
MCP
Удалённые серверы MCPКоннектор MCP
Claude на облачных платформах
Amazon BedrockAmazon Bedrock (устаревшая версия)Claude Platform на AWSMicrosoft FoundryVertex AI

Log in
Расширенное мышление
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Claude on AWS
  • Google Cloud's Vertex AI

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Сообщения/Возможности модели

Разработка с использованием расширенного мышления

Was this page helpful?

  • Поддерживаемые модели
  • Как работает расширенное мышление
  • Как использовать расширенное мышление
  • Суммированное мышление
  • Управление отображением мышления
  • Потоковая передача мышления
  • Расширенное мышление с использованием инструментов
  • Переключение режимов мышления в разговорах
  • Сохранение блоков мышления
  • Чередующееся мышление
  • Расширенное мышление с кэшированием подсказок
  • Понимание поведения кэширования блоков мышления
  • Максимальное количество токенов и размер контекстного окна с расширенным мышлением
  • Контекстное окно с расширенным мышлением
  • Контекстное окно с расширенным мышлением и использованием инструментов
  • Управление токенами с расширенным мышлением
  • Шифрование мышления
  • Отредактированные блоки мышления
  • Различия в мышлении между версиями моделей
  • Сохранение блоков мышления по моделям
  • Ценообразование
  • Лучшие практики и соображения для расширенного мышления
  • Работа с бюджетами мышления
  • Соображения производительности
  • Совместимость функций
  • Рекомендации по использованию
  • Дальнейшие шаги


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

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



В моделях claude-fable-5 и claude-mythos-5 расширенное мышление всегда включено и не может быть отключено. Ручное расширенное мышление (thinking: {type: "enabled", budget_tokens: N}) не поддерживается; вместо этого используйте адаптивное мышление. Адаптивное мышление всегда включено, а thinking: {type: "disabled"} возвращает ошибку.



Для Claude Opus 4.8 и Claude Opus 4.7 установите thinking: {type: "adaptive"}, чтобы включить адаптивное мышление, и используйте параметр effort для управления глубиной мышления. В обеих моделях ручное расширенное мышление (thinking: {type: "enabled", budget_tokens: N}) не поддерживается и возвращает ошибку 400. При адаптивном мышлении модель сама решает, когда и сколько думать, исходя из каждого запроса, поэтому мышление запускается только по мере необходимости. Для Claude Opus 4.6 и Claude Sonnet 4.6 также рекомендуется адаптивное мышление; ручная конфигурация всё ещё работает в этих моделях, но является устаревшей и будет удалена в будущем выпуске модели.

Поддерживаемые модели

Ручное расширенное мышление (thinking: {type: "enabled", budget_tokens: N}) поддерживается во всех текущих моделях Claude, кроме Claude Fable 5, Claude Mythos 5, Claude Opus 4.8 и Claude Opus 4.7, где оно не принимается и возвращает ошибку 400. Несколько моделей имеют специфичное для режима поведение:

  • Claude Fable 5 (claude-fable-5) и Claude Mythos 5 (claude-mythos-5): ручное расширенное мышление не поддерживается и возвращает ошибку 400. Адаптивное мышление всегда включено; используйте параметр effort для управления глубиной мышления.
  • Claude Opus 4.8 (claude-opus-4-8): ручное расширенное мышление не поддерживается и возвращает ошибку 400. Вместо этого используйте адаптивное мышление (thinking: {type: "adaptive"}) с параметром effort. Модель сама определяет, использовать ли расширенное мышление и в каком объёме, исходя из каждого запроса.
  • Claude Opus 4.7 (claude-opus-4-7): ручное расширенное мышление больше не поддерживается. Вместо этого используйте адаптивное мышление (thinking: {type: "adaptive"}) с параметром effort.
  • Claude Mythos Preview: адаптивное мышление используется по умолчанию; thinking: {type: "enabled", budget_tokens: N} также принимается. не поддерживается, а по умолчанию имеет значение вместо возврата содержимого мышления. Передайте , чтобы получать сводки.


Поведение мышления различается в разных версиях моделей Claude. Подробности см. в разделе Различия в мышлении между версиями моделей.

Как работает расширенное мышление

Когда расширенное мышление включено, Claude создаёт блоки содержимого thinking, в которых выводит свои внутренние рассуждения. Claude учитывает выводы из этих рассуждений перед формированием окончательного ответа.

Ответ API включает блоки содержимого thinking, за которыми следуют блоки содержимого text.

Вот пример формата ответа по умолчанию:

{
  "content": [
    {
      "type": "thinking",
      "thinking": "Let me analyze this step by step...",
      "signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
    },
    {
      "type": "text",
      "text": "Based on my analysis..."
    }
  ]
}

Дополнительную информацию о формате ответа расширенного мышления см. в справочнике Messages API.

Как использовать расширенное мышление

Вот пример использования расширенного мышления в Messages API:

Чтобы включить расширенное мышление, добавьте объект thinking с параметром type, установленным в значение enabled, и budget_tokens с указанным бюджетом токенов для расширенного мышления. Для Claude Opus 4.6 и Claude Sonnet 4.6 вместо этого используйте type: "adaptive". Подробности см. в разделе Адаптивное мышление. Хотя type: "enabled" с budget_tokens всё ещё работает в этих моделях, этот вариант устарел и будет удалён в будущем выпуске.

Параметр budget_tokens определяет максимальное количество токенов, которое Claude может использовать для своего внутреннего процесса рассуждения. Это ограничение применяется к полным токенам мышления, а не к суммированному выводу. Более крупные бюджеты могут улучшить качество ответа, позволяя проводить более тщательный анализ сложных проблем, хотя Claude может не использовать весь выделенный бюджет, особенно при значениях выше 32k.



Параметр budget_tokens устарел в Claude Opus 4.6 и Claude Sonnet 4.6 и будет удалён в будущем выпуске модели. Вместо этого используйте адаптивное мышление с параметром effort для управления глубиной мышления.



Claude Mythos Preview, Claude Opus 4.8, Claude Opus 4.7 и Claude Opus 4.6 поддерживают до 128k выходных токенов. Claude Sonnet 4.6 и Claude Haiku 4.5 поддерживают до 64k. Ограничения для устаревших моделей см. в обзоре моделей. В Message Batches API бета-заголовок output-300k-2026-03-24 повышает лимит вывода до 300k для Claude Opus 4.8, Opus 4.7, Opus 4.6 и Sonnet 4.6.

Значение budget_tokens должно быть меньше max_tokens. Однако при использовании чередующегося мышления с инструментами вы можете превысить этот лимит, поскольку лимитом токенов становится всё ваше контекстное окно. Поскольку budget_tokens должен быть меньше max_tokens, расширенное мышление нельзя сочетать с max_tokens: 0 (предварительный прогрев кэша).

Суммированное мышление

При включённом расширенном мышлении Messages API для моделей Claude 4 возвращает сводку полного процесса мышления Claude. Суммированное мышление обеспечивает все интеллектуальные преимущества расширенного мышления, одновременно предотвращая злоупотребления. Это поведение по умолчанию для моделей Claude 4, когда поле display в конфигурации мышления не задано или установлено в значение "summarized". В Claude Fable 5, Claude Mythos 5, Claude Opus 4.8, Claude Opus 4.7 и Claude Mythos Preview значение display по умолчанию равно "omitted", поэтому для получения суммированного мышления необходимо явно указать display: "summarized".

Вот несколько важных соображений относительно суммированного мышления:

  • Плата взимается за полное количество токенов мышления, сгенерированных исходным запросом, а не за токены сводки.
  • Количество выходных токенов, за которые выставляется счёт, не будет совпадать с количеством токенов, которое вы видите в ответе.
  • В моделях Claude 4 первые несколько строк вывода мышления более подробны и содержат детальные рассуждения, что особенно полезно для целей инженерии подсказок. Claude Mythos Preview суммирует с первого токена, поэтому его блоки мышления не содержат этой подробной преамбулы.
  • Поскольку Anthropic стремится улучшать функцию расширенного мышления, поведение суммирования может изменяться.
  • Суммирование сохраняет ключевые идеи процесса мышления Claude с минимальной дополнительной задержкой, обеспечивая пользовательский опыт с поддержкой потоковой передачи.
  • Суммирование выполняется другой моделью, а не той, которую вы указываете в своих запросах. Модель мышления не видит суммированный вывод.


В редких случаях, когда вам необходим доступ к полному выводу мышления для моделей Claude 4, свяжитесь с отделом продаж Anthropic.

Управление отображением мышления

Поле display в конфигурации мышления управляет тем, как содержимое мышления возвращается в ответах API. Оно принимает два значения:

  • "summarized": блоки мышления содержат обобщённый текст мышления. Подробности см. в разделе Обобщённое мышление. Это значение по умолчанию для Claude Opus 4.6, Claude Sonnet 4.6 и более ранних моделей Claude 4.
  • "omitted": блоки мышления возвращаются с пустым полем thinking. Поле signature по-прежнему содержит зашифрованное полное мышление для обеспечения непрерывности в многоходовых диалогах (см. Шифрование мышления). Это значение по умолчанию для Claude Fable 5, Claude Mythos 5, Claude Opus 4.8, Claude Opus 4.7 и Claude Mythos Preview.

Установка display: "omitted" полезна, когда ваше приложение не показывает содержимое мышления пользователям. Основное преимущество — более быстрое время до первого текстового токена при потоковой передаче: сервер полностью пропускает потоковую передачу токенов мышления и передаёт только подпись, поэтому потоковая передача итогового текстового ответа начинается раньше.

Вот несколько важных соображений относительно опущенного мышления:

  • Вы по-прежнему оплачиваете полное количество токенов мышления. Опущение снижает задержку, а не стоимость.
  • Если вы передаёте блоки мышления обратно в многоходовых диалогах, передавайте их без изменений. Сервер расшифровывает signature, чтобы восстановить исходное мышление для построения подсказки (см. Сохранение блоков мышления). Любой текст, который вы помещаете в поле thinking возвращаемого опущенного блока, игнорируется.
  • Параметр display недопустим при thinking.type: "disabled" (отображать нечего).
  • При использовании thinking.type: "adaptive", если модель пропускает мышление для простого запроса, блок мышления не создаётся независимо от значения display.


Поле signature идентично независимо от того, равно ли display значению "summarized" или "omitted". Переключение значений display между ходами в диалоге поддерживается.



В Claude Mythos Preview параметр display по умолчанию имеет значение "omitted". Примеры в этом разделе передают display явно, чтобы они применялись ко всем моделям, но в Mythos Preview вы можете оставить его неустановленным и получить то же поведение. Чтобы получать суммированное мышление в Mythos Preview, явно установите display: "summarized".

Автоматизированные конвейеры, которые никогда не показывают содержимое мышления конечным пользователям, могут избежать накладных расходов на получение токенов мышления по сети. Приложения, чувствительные к задержкам, получают то же качество рассуждений без ожидания потоковой передачи текста мышления перед началом окончательного ответа.

Когда установлено display: "omitted", ответ содержит блоки thinking с пустым полем thinking:

Output
{
  "content": [
    {
      "type": "thinking",
      "thinking": "",
      "signature": "EosnCkYICxIMMb3LzNrMu..."
    },
    {
      "type": "text",
      "text": "The answer is 12,231."
    }
  ]
}

При потоковой передаче с display: "omitted" события thinking_delta не генерируются; последовательность событий см. в разделе Потоковая передача мышления ниже.

Потоковая передача мышления

Вы можете передавать ответы расширенного мышления в потоковом режиме, используя server-sent events (SSE) (события, отправляемые сервером).

Когда потоковая передача включена для расширенного мышления, вы получаете содержимое мышления через события thinking_delta.

Когда установлено display: "omitted", события thinking_delta не генерируются. См. Управление отображением мышления.

Дополнительную документацию по потоковой передаче через Messages API см. в разделе Потоковая передача сообщений.

Вот как обрабатывать потоковую передачу с мышлением:

Пример вывода потоковой передачи:

Output
event: message_start
data: {"type": "message_start", "message": {"id": "msg_01...", "type": "message", "role": "assistant", "content": [], "model": "claude-sonnet-4-6", "stop_reason": null, "stop_sequence": null}}

event: content_block_start
data: {"type": "content_block_start", "index": 0, "content_block": {"type": "thinking", "thinking": "", "signature": ""}}

event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "I need to find the GCD of 1071 and 462 using the Euclidean algorithm.\n\n1071 = 2 × 462 + 147"}}

event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "\n462 = 3 × 147 + 21\n147 = 7 × 21 + 0\n\nSo GCD(1071, 462) = 21"}}

// Additional thinking deltas...

event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "signature_delta", "signature": "EqQBCgIYAhIM1gbcDa9GJwZA2b3hGgxBdjrkzLoky3dl1pkiMOYds..."}}

event: content_block_stop
data: {"type": "content_block_stop", "index": 0}

event: content_block_start
data: {"type": "content_block_start", "index": 1, "content_block": {"type": "text", "text": ""}}

event: content_block_delta
data: {"type": "content_block_delta", "index": 1, "delta": {"type": "text_delta", "text": "The greatest common divisor of 1071 and 462 is **21**."}}

// Additional text deltas...

event: content_block_stop
data: {"type": "content_block_stop", "index": 1}

event: message_delta
data: {"type": "message_delta", "delta": {"stop_reason": "end_turn", "stop_sequence": null}}

event: message_stop
data: {"type": "message_stop"}

Когда установлено display: "omitted", блок мышления открывается, приходит одно событие signature_delta, и блок закрывается без каких-либо событий thinking_delta. Потоковая передача текста начинается сразу после этого:

Output
event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"thinking","thinking":"","signature":""}}

event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"signature_delta","signature":"EosnCkYICxIMMb3LzNrMu..."}}

event: content_block_stop
data: {"type":"content_block_stop","index":0}

event: content_block_start
data: {"type":"content_block_start","index":1,"content_block":{"type":"text","text":""}}


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

Системе потоковой передачи необходимо обрабатывать содержимое пакетами для оптимальной производительности, что может приводить к такому «порционному» шаблону доставки с возможными задержками между событиями потоковой передачи.

Расширенное мышление с использованием инструментов

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

При использовании расширенного мышления с инструментами учитывайте следующие ограничения:

  1. Ограничение выбора инструмента: использование инструментов с мышлением поддерживает только tool_choice: {"type": "auto"} (по умолчанию) или tool_choice: {"type": "none"}. Использование tool_choice: {"type": "any"} или tool_choice: {"type": "tool", "name": "..."} приведёт к ошибке, поскольку эти варианты принудительно вызывают использование инструментов, что несовместимо с расширенным мышлением.

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

Переключение режимов мышления в разговорах

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

  • Если мышление включено, последний ход ассистента должен начинаться с блока мышления.
  • Если мышление отключено, последний ход ассистента не должен содержать никаких блоков мышления.

С точки зрения модели, циклы использования инструментов являются частью хода ассистента. Ход ассистента не завершается, пока Claude не закончит свой полный ответ, который может включать несколько вызовов инструментов и результатов.

Например, эта последовательность целиком является частью одного хода ассистента:

User: "What's the weather in Paris?"
Assistant: [thinking] + [tool_use: get_weather]
User: [tool_result: "20°C, sunny"]
Assistant: [text: "The weather in Paris is 20°C and sunny"]

Несмотря на то что здесь несколько сообщений API, цикл использования инструментов концептуально является частью одного непрерывного ответа ассистента.

Мягкая деградация мышления

Когда возникает конфликт мышления в середине хода (например, включение или отключение мышления во время цикла использования инструментов), API автоматически отключает мышление для этого запроса. Чтобы сохранить качество модели и оставаться в пределах обучающего распределения, API может:

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

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

Практические рекомендации

Лучшая практика: планируйте стратегию мышления в начале каждого хода, а не пытайтесь переключать её в середине хода.

Пример: переключение мышления после завершения хода

User: "What's the weather?"
Assistant: [tool_use] (thinking disabled)
User: [tool_result]
Assistant: [text: "It's sunny"]
User: "What about tomorrow?"
Assistant: [thinking] + [text: "..."] (thinking enabled - new turn)

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



Переключение режимов мышления также делает недействительным кэширование подсказок для истории сообщений. Подробнее см. в разделе Расширенное мышление с кэшированием подсказок.

Сохранение блоков мышления

Во время использования инструментов вы должны передавать блоки thinking обратно в API, и вы должны включать полный неизменённый блок обратно в API. Это критически важно для поддержания потока рассуждений модели и целостности разговора.



Хотя вы можете опускать блоки thinking из предыдущих ходов с ролью assistant, всегда передавайте обратно все блоки мышления в API для любого многоходового разговора. API:

  • Автоматически фильтрует предоставленные блоки мышления
  • Использует релевантные блоки мышления, необходимые для сохранения рассуждений модели
  • Тарифицирует только входные токены для блоков, показанных Claude

Какие блоки сохраняются, зависит от модели. См. Сохранение блоков мышления по моделям для значений по умолчанию для каждого класса. Чтобы переопределить значение по умолчанию, используйте стратегию редактирования контекста clear_thinking_20251015.



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

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

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

  2. Поддержание контекста: хотя результаты инструментов отображаются как пользовательские сообщения в структуре API, они являются частью непрерывного потока рассуждений. Сохранение блоков мышления поддерживает этот концептуальный поток через несколько вызовов API. Дополнительную информацию об управлении контекстом см. в руководстве по контекстным окнам.

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



Если блоки мышления изменены, API возвращает ошибку 400 invalid_request_error, сообщение которой содержит `thinking` or `redacted_thinking` blocks in the latest assistant message cannot be modified. Наиболее частая причина — код приложения, который фильтрует блоки содержимого по типу и отбрасывает блоки redacted_thinking, или который пересобирает сообщение ассистента вместо его точного возврата. См. Блоки мышления нельзя изменять для полного описания ошибки и шагов по исправлению.

Чередующееся мышление

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

С чередующимся мышлением Claude может:

  • Рассуждать о результатах вызова инструмента, прежде чем решить, что делать дальше
  • Связывать несколько вызовов инструментов с шагами рассуждения между ними
  • Принимать более взвешенные решения на основе промежуточных результатов

Поддержка моделей:

  • Claude Opus 4.8: чередующееся мышление автоматически включается при использовании адаптивного мышления (единственного поддерживаемого режима мышления в Claude Opus 4.8). Бета-заголовок не требуется.
  • Claude Mythos Preview: чередующееся мышление происходит автоматически. Каждый шаг рассуждения между инструментами перемещается в блок мышления вместо обычного текста, и блоки мышления по умолчанию сохраняются между ходами. Бета-заголовок не требуется и не поддерживается.
  • Claude Opus 4.7: чередующееся мышление автоматически включается при использовании адаптивного мышления (единственного поддерживаемого режима мышления в Opus 4.7). Бета-заголовок не требуется.
  • Claude Opus 4.6: чередующееся мышление автоматически включается при использовании адаптивного мышления. Бета-заголовок не требуется. Бета-заголовок interleaved-thinking-2025-05-14 устарел в Opus 4.6 и безопасно игнорируется, если включён.
  • Claude Sonnet 4.6: чередующееся мышление автоматически включается при использовании адаптивного мышления (рекомендуется). Бета-заголовок interleaved-thinking-2025-05-14 с ручным расширенным мышлением (thinking: {type: "enabled"}) всё ещё работает, но устарел.

Вот некоторые важные соображения для чередующегося мышления:

  • При чередующемся мышлении budget_tokens может превышать параметр max_tokens, поскольку он представляет общий бюджет по всем блокам мышления в рамках одного хода ассистента.
  • Чередующееся мышление поддерживается только для инструментов, используемых через Messages API.
  • Claude API и Claude Platform на AWS принимают interleaved-thinking-2025-05-14 в запросах к любой модели без возврата ошибки. В моделях, которые не поддерживают чередующееся мышление, заголовок игнорируется. В Claude Opus 4.8, Claude Opus 4.7 и Claude Opus 4.6 он устарел и безопасно игнорируется. В Claude Mythos Preview он не требуется и безопасно игнорируется.
  • На партнёрских платформах (например, Amazon Bedrock и Vertex AI), если вы передадите interleaved-thinking-2025-05-14 любой модели, кроме Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 4.6, Claude Opus 4.5, Claude Opus 4.1 (устаревшая), Opus 4 (устаревшая), Sonnet 4.5 или Sonnet 4 (устаревшая), ваш запрос завершится ошибкой.

Расширенное мышление с кэшированием подсказок

Кэширование подсказок с мышлением имеет несколько важных особенностей:



Задачи расширенного мышления часто занимают более 5 минут. Рассмотрите возможность использования 1-часовой длительности кэша для поддержания попаданий в кэш в течение более длительных сеансов мышления и многошаговых рабочих процессов.

Удаление блоков мышления из контекста

  • В более ранних моделях Opus/Sonnet и во всех моделях Haiku блоки мышления из предыдущих ходов удаляются из контекста, что может повлиять на точки разрыва кэша. В Opus 4.5+ и Sonnet 4.6+ они по умолчанию сохраняются.
  • При продолжении разговоров с использованием инструментов блоки мышления кэшируются и учитываются как входные токены при чтении из кэша
  • Это создаёт компромисс: хотя блоки мышления визуально не занимают место в контекстном окне, они всё равно учитываются в вашем использовании входных токенов при кэшировании
  • Если мышление становится отключённым и вы передаёте содержимое мышления в текущем ходе использования инструментов, содержимое мышления будет удалено, и мышление останется отключённым для этого запроса

Шаблоны инвалидации кэша

  • Изменения параметров мышления (включено/отключено или выделение бюджета) делают недействительными точки разрыва кэша сообщений
  • Чередующееся мышление усиливает инвалидацию кэша, поскольку блоки мышления могут возникать между несколькими вызовами инструментов
  • Системные подсказки и инструменты остаются кэшированными, несмотря на изменения параметров мышления или удаление блоков


В более ранних моделях Opus/Sonnet и во всех моделях Haiku блоки мышления удаляются для кэширования и расчётов контекста; в Opus 4.5+ и Sonnet 4.6+ они по умолчанию сохраняются. В любом случае они должны быть сохранены при продолжении разговоров с использованием инструментов, особенно с чередующимся мышлением.

Понимание поведения кэширования блоков мышления

При использовании расширенного мышления с инструментами блоки мышления демонстрируют специфическое поведение кэширования, которое влияет на подсчёт токенов:

Как это работает:

  1. Кэширование происходит только тогда, когда вы делаете последующий запрос, включающий результаты инструментов
  2. Когда делается последующий запрос, предыдущая история разговора (включая блоки мышления) может быть кэширована
  3. Эти кэшированные блоки мышления учитываются как входные токены в ваших метриках использования при чтении из кэша
  4. Когда включён блок пользователя, не являющийся результатом инструмента: в Opus 4.5+ и Sonnet 4.6+ предыдущие блоки мышления сохраняются; в более ранних моделях Opus/Sonnet и во всех моделях Haiku все предыдущие блоки мышления игнорируются и удаляются из контекста

Подробный пример потока:

Запрос 1:

User: "What's the weather in Paris?"

Ответ 1:

[thinking_block_1] + [tool_use block 1]

Запрос 2:

User: ["What's the weather in Paris?"],
Assistant: [thinking_block_1] + [tool_use block 1],
User: [tool_result_1, cache=True]

Ответ 2:

[thinking_block_2] + [text block 2]

Запрос 2 записывает кэш содержимого запроса (не ответа). Кэш включает исходное сообщение пользователя, первый блок мышления, блок использования инструмента и результат инструмента.

Запрос 3:

User: ["What's the weather in Paris?"],
Assistant: [thinking_block_1] + [tool_use block 1],
User: [tool_result_1, cache=True],
Assistant: [thinking_block_2] + [text block 2],
User: [Text response, cache=True]

Для Opus 4.5+ и Sonnet 4.6+ все предыдущие блоки мышления по умолчанию сохраняются. Для более ранних моделей Opus/Sonnet и всех моделей Haiku, поскольку был включён блок пользователя, не являющийся результатом инструмента, все предыдущие блоки мышления игнорируются и удаляются из контекста. Этот запрос будет обработан так же, как:

User: ["What's the weather in Paris?"],
Assistant: [tool_use block 1],
User: [tool_result_1, cache=True],
Assistant: [text block 2],
User: [Text response, cache=True]

Ключевые моменты:

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

Максимальное количество токенов и размер контекстного окна с расширенным мышлением

max_tokens (который включает ваш бюджет мышления, когда мышление включено) применяется как строгое ограничение. В моделях Claude 4.5 и новее, если входные токены плюс max_tokens превышают размер контекстного окна, API принимает запрос. Если затем генерация достигает лимита контекстного окна, она останавливается с stop_reason: "model_context_window_exceeded". В более ранних моделях API вместо этого возвращает ошибку валидации. См. Обработка причин остановки.



Вы можете прочитать руководство по контекстным окнам для более глубокого погружения.

Контекстное окно с расширенным мышлением

При расчёте использования контекстного окна с включённым мышлением следует учитывать некоторые особенности:

  • В Opus 4.5+ и Sonnet 4.6+ блоки мышления из предыдущих ходов сохраняются и учитываются в вашем контекстном окне; в более ранних моделях Opus/Sonnet и во всех моделях Haiku они удаляются и не учитываются
  • Мышление текущего хода учитывается в вашем лимите max_tokens для этого хода

Диаграмма ниже демонстрирует специализированное управление токенами при включённом расширенном мышлении:

Диаграмма контекстного окна с расширенным мышлением

Эффективное контекстное окно рассчитывается как:

context window =
  (current input tokens - previous thinking tokens) +
  (thinking tokens + encrypted thinking tokens + text output tokens)

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

Контекстное окно с расширенным мышлением и использованием инструментов

При использовании расширенного мышления с инструментами блоки мышления должны быть явно сохранены и возвращены вместе с результатами инструментов.

Расчёт эффективного контекстного окна для расширенного мышления с использованием инструментов становится следующим:

context window =
  (current input tokens + previous thinking tokens + tool use tokens) +
  (thinking tokens + encrypted thinking tokens + text output tokens)

Диаграмма ниже иллюстрирует управление токенами для расширенного мышления с использованием инструментов:

Диаграмма контекстного окна с расширенным мышлением и использованием инструментов

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

Учитывая поведение контекстного окна и max_tokens с расширенным мышлением, вам может потребоваться:

  • Более активно отслеживать и управлять использованием токенов
  • Корректировать значения max_tokens по мере изменения длины вашей подсказки
  • Возможно, чаще использовать эндпоинты подсчёта токенов
  • Учитывать, что предыдущие блоки мышления не накапливаются в вашем контекстном окне

Шифрование мышления

Полное содержимое мышления шифруется и возвращается в поле signature. Это поле используется для проверки того, что блоки мышления были сгенерированы Claude, когда они передаются обратно в API.



Строго необходимо отправлять блоки мышления обратно только при использовании инструментов с расширенным мышлением. В противном случае вы можете опустить блоки мышления из предыдущих ходов. Если вы передаёте их обратно, то сохранит ли их API или удалит, зависит от модели: Opus 4.5+ и Sonnet 4.6+ по умолчанию сохраняют их в контексте; более ранние модели Opus/Sonnet и все модели Haiku удаляют их. См. раздел редактирование контекста, чтобы настроить это поведение.

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

Вот несколько важных соображений относительно шифрования мышления:

  • При потоковой передаче ответов подпись добавляется через signature_delta внутри события content_block_delta непосредственно перед событием content_block_stop.
  • Значения signature в моделях Claude 4 значительно длиннее, чем в предыдущих моделях.
  • Поле signature является непрозрачным полем и не должно интерпретироваться или анализироваться.
  • Значения signature совместимы между платформами (API Claude, Amazon Bedrock и Vertex AI). Значения, сгенерированные на одной платформе, будут совместимы с другой.

Отредактированные блоки мышления

В дополнение к обычным блокам thinking API может возвращать блоки redacted_thinking. Блок redacted_thinking содержит зашифрованное содержимое мышления в поле data без читаемой сводки:

{
  "type": "redacted_thinking",
  "data": "..."
}

Поле data непрозрачно и зашифровано. Как и поле signature в обычных блоках мышления, вы должны передавать блоки redacted_thinking обратно в API без изменений при продолжении многоходового разговора с инструментами.



Если ваш код фильтрует блоки содержимого по типу (например, block.type == "thinking") при возврате ответов с использованием инструментов, также включайте блоки redacted_thinking. Фильтрация только по block.type == "thinking" незаметно отбрасывает блоки redacted_thinking и нарушает многоходовой протокол, описанный выше.



Блоки redacted_thinking — это отдельный тип блока содержимого, возвращаемый API, когда части мышления отредактированы по соображениям безопасности. Это отличается от опции display: "omitted", которая возвращает обычные блоки thinking с пустым полем thinking.

Различия в мышлении между версиями моделей

Messages API обрабатывает мышление по-разному в разных версиях моделей Claude. Следующая таблица даёт краткое сравнение:

ФункцияМодели Claude 4 (до Opus 4.5)Claude Opus 4.5Claude Sonnet 4.6Claude Opus 4.6 (адаптивное мышление)Claude Opus 4.7 (адаптивное мышление)Claude Opus 4.8 (адаптивное мышление)Claude Mythos Preview (адаптивное мышление)
Вывод мышленияВозвращает суммированное мышлениеВозвращает суммированное мышлениеВозвращает суммированное мышлениеВозвращает суммированное мышлениеПо умолчанию опущено; установите display: "summarized", чтобы получать суммированное мышлениеПо умолчанию опущено; установите display: "summarized", чтобы получать суммированное мышлениеПо умолчанию опущено; установите display: "summarized", чтобы получать суммированное мышление. Необработанные токены мышления никогда не возвращаются.

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

Сохраняются ли блоки мышления из предыдущих ходов ассистента в контексте по умолчанию, зависит от класса модели. Opus: Claude Opus 4.5 и более поздние модели Opus сохраняют все предыдущие блоки мышления; Claude Opus 4.1 (устаревшая) и более ранние модели Opus сохраняют только мышление последнего хода ассистента. Sonnet: Claude Sonnet 4.6 и более поздние модели Sonnet сохраняют все; Claude Sonnet 4.5 и более ранние модели Sonnet сохраняют только последний ход. Haiku: все модели Haiku вплоть до Claude Haiku 4.5 сохраняют только последний ход. Claude Mythos Preview также сохраняет все предыдущие блоки мышления.

Преимущества сохранения блоков мышления:

  • Оптимизация кэша: при использовании инструментов сохранённые блоки мышления обеспечивают попадания в кэш, поскольку они передаются обратно вместе с результатами инструментов и кэшируются инкрементально в течение хода ассистента, что приводит к экономии токенов в многошаговых рабочих процессах
  • Отсутствие влияния на интеллект: сохранение блоков мышления не оказывает негативного влияния на производительность модели

Важные соображения:

  • Использование контекста: длинные разговоры будут потреблять больше места в контексте, поскольку блоки мышления сохраняются в контексте
  • Автоматическое поведение: это значение по умолчанию для каждой модели, как указано выше. Никаких изменений кода или бета-заголовков не требуется
  • Обратная совместимость: чтобы использовать эту функцию, продолжайте передавать полные, неизменённые блоки мышления обратно в API, как вы делали бы для использования инструментов


Для более ранних моделей (Claude Sonnet 4.5, Opus 4.1 (устаревшая) и т. д.) блоки мышления из предыдущих ходов по-прежнему удаляются из контекста. Существующее поведение, описанное в разделе Расширенное мышление с кэшированием подсказок, применяется к этим моделям.

Ценообразование

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

Процесс мышления влечёт за собой расходы за:

  • Токены, использованные во время мышления (выходные токены)
  • Блоки мышления из предыдущих ходов ассистента, сохранённые в контексте: только последний ход в более ранних моделях Opus/Sonnet и во всех моделях Haiku; все ходы по умолчанию в Opus 4.5+ и Sonnet 4.6+ (входные токены)
  • Стандартные текстовые выходные токены


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

При использовании суммаризированного мышления:

  • Входные токены: токены в вашем исходном запросе (исключая токены мышления из предыдущих ходов)
  • Выходные токены (тарифицируемые): исходные токены мышления, которые Claude сгенерировал внутренне
  • Выходные токены (видимые): суммаризированные токены мышления, которые вы видите в ответе
  • Без оплаты: токены, использованные для генерации сводки

При использовании display: "omitted":

  • Входные токены: токены в вашем исходном запросе (так же, как при суммаризации)
  • Выходные токены (тарифицируемые): исходные токены мышления, которые Claude сгенерировал внутренне (так же, как при суммаризации)
  • Выходные токены (видимые): ноль токенов мышления (поле thinking пустое)


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

Чтобы узнать, сколько тарифицируемых выходных токенов было потрачено на внутренние рассуждения, прочитайте usage.output_tokens_details.thinking_tokens в ответе. Это значение отражает исходные рассуждения, сгенерированные моделью (а не суммаризированный текст, возвращённый в теле ответа), и всегда меньше или равно output_tokens. Вычтите его из output_tokens, чтобы приблизительно оценить часть вывода, не относящуюся к рассуждениям.

{
  "usage": {
    "input_tokens": 25,
    "output_tokens": 348,
    "output_tokens_details": {
      "thinking_tokens": 312
    }
  }
}

output_tokens остаётся итоговым авторитетным значением, используемым для тарификации. output_tokens_details — это разбивка только для чтения, предназначенная для наблюдаемости.

Лучшие практики и соображения для расширенного мышления

Работа с бюджетами мышления

  • Оптимизация бюджета: Минимальный бюджет составляет 1 024 токена. Начните с минимума и постепенно увеличивайте бюджет мышления, чтобы найти оптимальный диапазон для вашего сценария использования. Большее количество токенов позволяет проводить более всестороннее рассуждение, но с убывающей отдачей в зависимости от задачи. Увеличение бюджета может улучшить качество ответа ценой увеличения задержки. Для критически важных задач протестируйте различные настройки, чтобы найти оптимальный баланс. Обратите внимание, что бюджет мышления — это целевое значение, а не строгое ограничение. Фактическое использование токенов может варьироваться в зависимости от задачи.
  • Начальные значения: Начинайте с больших бюджетов мышления (16 тыс.+ токенов) для сложных задач и корректируйте их в зависимости от ваших потребностей.
  • Большие бюджеты: Для бюджетов мышления свыше 32 тыс. используйте пакетную обработку, чтобы избежать сетевых проблем. Запросы, заставляющие модель мыслить свыше 32 тыс. токенов, приводят к длительным запросам, которые могут столкнуться с системными тайм-аутами и ограничениями на открытые соединения.
  • Отслеживание использования токенов: Отслеживайте использование токенов мышления для оптимизации затрат и производительности. Поле usage.output_tokens_details.thinking_tokens в ответе сообщает, сколько из оплачиваемых выходных токенов было использовано на внутреннее рассуждение. При потоковой передаче эта разбивка появляется только в финальном событии message_delta.

Соображения производительности

  • Время ответа: Будьте готовы к более длительному времени ответа из-за дополнительной обработки. Генерация блоков мышления увеличивает общее время ответа.
  • Требования к потоковой передаче: SDK требуют потоковой передачи, когда max_tokens превышает 21 333, чтобы избежать HTTP-тайм-аутов при длительных запросах. Это проверка на стороне клиента, а не ограничение API. Если вам не нужно обрабатывать события инкрементально, используйте .stream() с .get_final_message() (Python) или .finalMessage() (TypeScript), чтобы получить полный объект Message без обработки отдельных событий. Подробности см. в разделе Потоковая передача сообщений. При потоковой передаче будьте готовы обрабатывать как блоки мышления, так и текстовые блоки контента по мере их поступления.
  • Отключение отображения мышления для снижения задержки: Если ваше приложение не отображает содержимое мышления, установите display: "omitted" в конфигурации мышления, чтобы сократить время до первого текстового токена. См. раздел Управление отображением мышления.

Совместимость функций

  • Мышление несовместимо с изменениями temperature или top_k, а также с принудительным использованием инструментов.
  • Когда мышление включено, вы можете установить top_p в значения от 1 до 0,95.
  • Вы не можете предварительно заполнять ответы, когда мышление включено.
  • Изменения бюджета мышления делают недействительными кэшированные префиксы подсказок, которые включают сообщения. Однако кэшированные системные подсказки и определения инструментов продолжат работать при изменении параметров мышления.

Рекомендации по использованию

  • Выбор задач: Используйте расширенное мышление для особенно сложных задач, которые выигрывают от пошагового рассуждения, таких как математика, программирование и анализ.
  • Обработка контекста: Вам не нужно самостоятельно удалять предыдущие блоки мышления. В Opus 4.5+ и Sonnet 4.6+ Claude API по умолчанию сохраняет блоки мышления из предыдущих ходов; в более ранних моделях Opus/Sonnet и во всех моделях Haiku он автоматически игнорирует их, и они не учитываются при расчёте использования контекста.
  • Инженерия подсказок: Ознакомьтесь с советами по составлению подсказок для расширенного мышления, если вы хотите максимально использовать возможности мышления Claude.

Дальнейшие шаги


Попробуйте книгу рецептов по расширенному мышлению


Изучите практические примеры мышления в книге рецептов.


Советы по составлению подсказок для расширенного мышления

Изучите лучшие практики инженерии подсказок для расширенного мышления.

thinking: {type: "disabled"}
display
"omitted"
display: "summarized"
  • Claude Opus 4.6 (claude-opus-4-6): рекомендуется адаптивное мышление; ручной режим (type: "enabled") устарел, но всё ещё работает.
  • Claude Sonnet 4.6 (claude-sonnet-4-6): рекомендуется адаптивное мышление; ручной режим (type: "enabled") с чередующимся режимом устарел, но всё ещё работает.
  • client = anthropic.Anthropic()
    
    response = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=16000,
        thinking={"type": "enabled", "budget_tokens": 10000},
        messages=[
            {
                "role": "user",
                "content": "Are there an infinite number of prime numbers such that n mod 4 == 3?",
            }
        ],
    )
    
    # Ответ содержит блоки с кратким изложением мышления и текстовые блоки
    for block in response.content:
        if block.type == "thinking":
            print(f"\nThinking summary: {block.thinking}")
        elif block.type == "text":
            print(f"\nResponse: {block.text}")
    client = anthropic.Anthropic()
    
    response = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=16000,
        thinking={
            "type": "enabled",
            "budget_tokens": 10000,
            "display": "omitted",
        },
        messages=[
            {"role": "user", "content": "What is 27 * 453?"},
        ],
    )
    
    for block in response.content:
        if block.type == "thinking":
            if block.thinking:
                print(f"Thinking: {block.thinking}")
            else:
                print("Thinking: [omitted]")
        elif block.type == "text":
            print(f"Response: {block.text}")
    Try in Console
    client = anthropic.Anthropic()
    
    with client.messages.stream(
        model="claude-sonnet-4-6",
        max_tokens=16000,
        thinking={"type": "enabled", "budget_tokens": 10000},
        messages=[
            {
                "role": "user",
                "content": "What is the greatest common divisor of 1071 and 462?",
            }
        ],
    ) as stream:
        thinking_started = False
        response_started = False
    
        for event in stream:
            if event.type == "content_block_start":
                print(f"\nStarting {event.content_block.type} block...")
                # Сбрасываем флаги для каждого нового блока
                thinking_started = False
                response_started = False
            elif event.type == "content_block_delta":
                if event.delta.type == "thinking_delta":
                    if not thinking_started:
                        print("Thinking: ", end="", flush=True)
                        thinking_started = True
                    print(event.delta.thinking, end="", flush=True)
                elif event.delta.type == "text_delta":
                    if not response_started:
                        print("Response: ", end="", flush=True)
                        response_started = True
                    print(event.delta.text, end="", flush=True)
            elif event.type == "content_block_stop":
                print("\nBlock complete.")
  • Другие модели Claude 4 (Opus 4.5, Opus 4.1 (устаревшая), Opus 4 (устаревшая), Sonnet 4.5, Sonnet 4 (устаревшая)): добавьте бета-заголовок interleaved-thinking-2025-05-14 в ваш запрос API, чтобы включить чередующееся мышление.
  • Чередующееся мышлениеПоддерживается с бета-заголовком interleaved-thinking-2025-05-14Поддерживается с бета-заголовком interleaved-thinking-2025-05-14Поддерживается с бета-заголовком interleaved-thinking-2025-05-14 или автоматически с адаптивным мышлениемАвтоматически с адаптивным мышлением (бета-заголовок устарел и безопасно игнорируется)Автоматически с адаптивным мышлением (бета-заголовок устарел и безопасно игнорируется)Автоматически с адаптивным мышлением (бета-заголовок устарел и безопасно игнорируется)Автоматически с адаптивным мышлением (бета-заголовок не требуется и безопасно игнорируется). Рассуждения между инструментами перемещаются в блоки мышления в этой модели.
    Сохранение блоков мышленияНе сохраняются между ходамиСохраняются по умолчаниюСохраняются по умолчаниюСохраняются по умолчаниюСохраняются по умолчаниюСохраняются по умолчаниюСохраняются по умолчанию. Блоки удаляются при продолжении разговора на модели, которая не поддерживает формат мышления Mythos.