Was this page helpful?
Расширенное мышление дает Claude улучшенные возможности рассуждения для сложных задач, обеспечивая различные уровни прозрачности его пошагового процесса мышления перед предоставлением окончательного ответа.
Для Claude Opus 4.6 мы рекомендуем использовать адаптивное мышление (thinking: {type: "adaptive"}) с параметром усилия вместо режима ручного мышления, описанного на этой странице. Конфигурация ручного thinking: {type: "enabled", budget_tokens: N} устарела на Opus 4.6 и будет удалена в будущем выпуске модели.
Расширенное мышление поддерживается в следующих моделях:
claude-opus-4-6) — адаптивное мышление только; ручной режим (type: "enabled") устарелclaude-opus-4-5-20251101)claude-opus-4-1-20250805)claude-opus-4-20250514)claude-sonnet-4-6) — поддерживает как ручное расширенное мышление с чередующимся режимом, так и адаптивное мышлениеclaude-sonnet-4-5-20250929)claude-sonnet-4-20250514)claude-3-7-sonnet-20250219) (устарела)claude-haiku-4-5-20251001)Поведение API различается между моделями Claude Sonnet 3.7 и Claude 4, но формы API остаются точно такими же.
Для получения дополнительной информации см. Различия в мышлении между версиями моделей.
Когда расширенное мышление включено, 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..."
}
]
}Для получения дополнительной информации о формате ответа расширенного мышления см. Справочник API Messages.
Вот пример использования расширенного мышления в Messages API:
Чтобы включить расширенное мышление, добавьте объект thinking с параметром type, установленным на enabled, и budget_tokens на указанный бюджет токенов для расширенного мышления. Для Claude Opus 4.6 мы рекомендуем использовать type: "adaptive" — см. Адаптивное мышление для получения подробной информации. Хотя type: "enabled" с budget_tokens по-прежнему поддерживается на Opus 4.6, это устарело и будет удалено в будущем выпуске.
Параметр budget_tokens определяет максимальное количество токенов, которые Claude может использовать для своего внутреннего процесса рассуждения. В Claude 4 и более поздних моделях это ограничение применяется к полным токенам мышления, а не к суммированному выводу. Большие бюджеты могут улучшить качество ответа, обеспечивая более тщательный анализ сложных проблем, хотя Claude может не использовать весь выделенный бюджет, особенно в диапазонах выше 32k.
budget_tokens устарел на Claude Opus 4.6 и будет удален в будущем выпуске модели. Мы рекомендуем использовать адаптивное мышление с параметром усилия для управления глубиной мышления.
Claude Opus 4.6 поддерживает до 128K выходных токенов. Более ранние модели поддерживают до 64K выходных токенов.
budget_tokens должен быть установлен на значение меньше, чем max_tokens. Однако при использовании чередующегося мышления с инструментами вы можете превысить это ограничение, так как лимит токенов становится вашим всем контекстным окном (200k токенов).
With extended thinking enabled, the Messages API for Claude 4 models returns a summary of Claude's full thinking process. Summarized thinking provides the full intelligence benefits of extended thinking, while preventing misuse.
Here are some important considerations for summarized thinking:
Claude Sonnet 3.7 continues to return full thinking output.
In rare cases where you need access to full thinking output for Claude 4 models, contact our sales team.
Вы можете передавать ответы расширенного мышления потоком, используя события, отправляемые сервером (SSE).
Когда потоковая передача включена для расширенного мышления, вы получаете содержимое мышления через события thinking_delta.
Для получения дополнительной документации по потоковой передаче через Messages API см. Потоковые сообщения.
Вот как обрабатывать потоковую передачу с мышлением:
Пример вывода потоковой передачи:
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": ""}}
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"}При использовании потоковой передачи с включенным мышлением вы можете заметить, что текст иногда поступает большими порциями, чередуясь с меньшей доставкой токен за токеном. Это ожидаемое поведение, особенно для содержимого мышления.
Система потоковой передачи должна обрабатывать содержимое партиями для оптимальной производительности, что может привести к этому «прерывистому» паттерну доставки с возможными задержками между событиями потоковой передачи. Мы постоянно работаем над улучшением этого опыта, с будущими обновлениями, сосредоточенными на более плавной потоковой передаче содержимого мышления.
Расширенное мышление можно использовать наряду с использованием инструментов, позволяя Claude рассуждать о выборе инструментов и обработке результатов.
При использовании расширенного мышления с использованием инструментов помните о следующих ограничениях:
Ограничение выбора инструмента: Использование инструментов с мышлением поддерживает только tool_choice: {"type": "auto"} (по умолчанию) или tool_choice: {"type": "none"}. Использование tool_choice: {"type": "any"} или tool_choice: {"type": "tool", "name": "..."} приведет к ошибке, потому что эти параметры принудительно используют инструменты, что несовместимо с расширенным мышлением.
Сохранение блоков мышления: Во время использования инструментов вы должны передать блоки 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 вызывает инструменты, он приостанавливает построение ответа, чтобы ожидать внешней информации. Когда возвращаются результаты инструментов, Claude продолжит строить этот существующий ответ. Это требует сохранения блоков мышления во время использования инструментов по нескольким причинам:
Непрерывность рассуждений: Блоки мышления фиксируют пошаговые рассуждения Claude, которые привели к запросам инструментов. Когда вы публикуете результаты инструментов, включение исходного мышления гарантирует, что Claude может продолжить свои рассуждения с того места, где он остановился.
Сохранение контекста: Хотя результаты инструментов отображаются как пользовательские сообщения в структуре API, они являются частью непрерывного потока рассуждений. Сохранение блоков мышления сохраняет этот концептуальный поток через несколько вызовов API. Для получения дополнительной информации об управлении контекстом см. наше руководство по контекстным окнам.
Важно: При предоставлении блоков thinking вся последовательность последовательных блоков thinking должна соответствовать выводам, созданным моделью во время исходного запроса; вы не можете переставлять или изменять последовательность этих блоков.
Расширенное мышление с использованием инструментов в моделях Claude 4 поддерживает чередующееся мышление, которое позволяет Claude думать между вызовами инструментов и делать более сложные рассуждения после получения результатов инструментов.
С чередующимся мышлением Claude может:
Поддержка модели:
interleaved-thinking-2025-05-14 устарел на Opus 4.6 и безопасно игнорируется, если включен.interleaved-thinking-2025-05-14 с ручным расширенным мышлением (thinking: {type: "enabled"}). Вы также можете использовать адаптивное мышление, которое автоматически включает чередующееся мышление.interleaved-thinking-2025-05-14 в ваш запрос API для включения чередующегося мышления.Вот некоторые важные соображения для чередующегося мышления:
budget_tokens может превышать параметр max_tokens, так как он представляет общий бюджет для всех блоков мышления в одном ходе помощника.interleaved-thinking-2025-05-14 в запросах к любой модели без эффекта (кроме Opus 4.6, где это устарело и безопасно игнорируется).interleaved-thinking-2025-05-14 к любой модели, кроме Claude Sonnet 4.6, Claude Opus 4.5, Claude Opus 4.1, Opus 4, Sonnet 4.5 или Sonnet 4, ваш запрос не будет выполнен.Кэширование подсказок с мышлением имеет несколько важных соображений:
Задачи расширенного мышления часто занимают более 5 минут. Рассмотрите использование длительности кэша в 1 час для сохранения попаданий кэша в течение более длительных сеансов мышления и многошаговых рабочих процессов.
Удаление контекста блока мышления
Паттерны инвалидации кэша
Хотя блоки мышления удаляются для кэширования и расчетов контекста, они должны быть сохранены при продолжении разговоров с использованием инструментов, особенно с чередующимся мышлением.
При использовании расширенного мышления с использованием инструментов блоки мышления демонстрируют специфическое поведение кеширования, которое влияет на подсчет токенов:
Как это работает:
Подробный пример потока:
Запрос 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]Для Claude Opus 4.5 и более поздних версий (включая Claude Opus 4.6) все предыдущие блоки мышления сохраняются по умолчанию. Для более старых моделей, поскольку был включен блок пользователя, не являющийся результатом инструмента, все предыдущие блоки мышления игнорируются. Этот запрос будет обработан так же, как:
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В более старых моделях Claude (до Claude Sonnet 3.7), если сумма токенов приглашения и max_tokens превышала контекстное окно модели, система автоматически корректировала max_tokens для соответствия лимиту контекста. Это означало, что вы могли установить большое значение max_tokens, и система молча уменьшала бы его по мере необходимости.
С моделями Claude 3.7 и 4, max_tokens (который включает ваш бюджет мышления при включенном мышлении) применяется как строгий лимит. Система теперь вернет ошибку валидации, если токены приглашения + max_tokens превышает размер контекстного окна.
Вы можете прочитать наше руководство по контекстным окнам для более глубокого погружения.
При расчете использования контекстного окна с включенным мышлением необходимо учитывать некоторые моменты:
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 с расширенным мышлением в моделях Claude 3.7 и 4, вам может потребоваться:
max_tokens по мере изменения длины приглашенияЭто изменение было сделано для обеспечения более предсказуемого и прозрачного поведения, особенно поскольку максимальные лимиты токенов значительно увеличились.
Full thinking content is encrypted and returned in the signature field. This field is used to verify that thinking blocks were generated by Claude when passed back to the API.
It is only strictly necessary to send back thinking blocks when using tools with extended thinking. Otherwise you can omit thinking blocks from previous turns, or let the API strip them for you if you pass them back.
If sending back thinking blocks, we recommend passing everything back as you received it for consistency and to avoid potential issues.
Here are some important considerations on thinking encryption:
signature_delta inside a content_block_delta event just before the content_block_stop event.signature values are significantly longer in Claude 4 models than in previous models.signature field is an opaque field and should not be interpreted or parsed - it exists solely for verification purposes.signature values are compatible across platforms (Claude APIs, Amazon Bedrock, and Vertex AI). Values generated on one platform will be compatible with another.Occasionally Claude's internal reasoning will be flagged by our safety systems. When this occurs, we encrypt some or all of the thinking block and return it to you as a redacted_thinking block. redacted_thinking blocks are decrypted when passed back to the API, allowing Claude to continue its response without losing context.
When building customer-facing applications that use extended thinking:
Here's an example showing both normal and redacted thinking blocks:
{
"content": [
{
"type": "thinking",
"thinking": "Let me analyze this step by step...",
"signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
},
{
"type": "redacted_thinking",
"data": "EmwKAhgBEgy3va3pzix/LafPsn4aDFIT2Xlxh0L5L8rLVyIwxtE3rAFBa8cr3qpPkNRj2YfWXGmKDxH4mPnZ5sQ7vB9URj2pLmN3kF8/dW5hR7xJ0aP1oLs9yTcMnKVf2wRpEGjH9XZaBt4UvDcPrQ..."
},
{
"type": "text",
"text": "Based on my analysis..."
}
]
}Seeing redacted thinking blocks in your output is expected behavior. The model can still use this redacted reasoning to inform its responses while maintaining safety guardrails.
If you need to test redacted thinking handling in your application, you can use this special test string as your prompt: ANTHROPIC_MAGIC_STRING_TRIGGER_REDACTED_THINKING_46C9A13E193C177646C7398A98432ECCCE4C1253D5E2D82641AC0E52CC2876CB
When passing thinking and redacted_thinking blocks back to the API in a multi-turn conversation, you must include the complete unmodified block back to the API for the last assistant turn. This is critical for maintaining the model's reasoning flow. We suggest always passing back all thinking blocks to the API. For more details, see the Preserving thinking blocks section.
Messages API обрабатывает мышление по-разному в моделях Claude Sonnet 3.7 и Claude 4, в основном в поведении редакции и суммирования.
Смотрите таблицу ниже для сокращенного сравнения:
| Функция | Claude Sonnet 3.7 | Claude 4 Models (pre-Opus 4.5) | Claude Opus 4.5 | Claude Sonnet 4.6 | Claude Opus 4.6 (адаптивное мышление) |
|---|---|---|---|---|---|
| Вывод мышления | Возвращает полный вывод мышления | Возвращает суммированное мышление | Возвращает суммированное мышление | Возвращает суммированное мышление | Возвращает суммированное мышление |
| Чередующееся мышление | Не поддерживается | Поддерживается с заголовком бета interleaved-thinking-2025-05-14 | Поддерживается с заголовком бета interleaved-thinking-2025-05-14 | Поддерживается с заголовком бета interleaved-thinking-2025-05-14 или автоматически с адаптивным мышлением | Автоматически с адаптивным мышлением (заголовок бета не поддерживается) |
Начиная с Claude Opus 4.5 (и продолжая в Claude Opus 4.6), блоки мышления из предыдущих ходов ассистента сохраняются в контексте модели по умолчанию. Это отличается от более ранних моделей, которые удаляют блоки мышления из предыдущих ходов.
Преимущества сохранения блока мышления:
Важные соображения:
Для более ранних моделей (Claude Sonnet 4.5, Opus 4.1 и т. д.) блоки мышления из предыдущих ходов продолжают удаляться из контекста. Существующее поведение, описанное в разделе Расширенное мышление с кешированием приглашений, применяется к этим моделям.
For complete pricing information including base rates, cache writes, cache hits, and output tokens, see the pricing page.
The thinking process incurs charges for:
When extended thinking is enabled, a specialized system prompt is automatically included to support this feature.
When using summarized thinking:
The billed output token count will not match the visible token count in the response. You are billed for the full thinking process, not the summary you see.
max_tokens больше 21333, чтобы избежать тайм-аутов HTTP на долгоживущих запросах. Это валидация на стороне клиента, а не ограничение API. Если вам не нужно обрабатывать события постепенно, используйте .stream() с .get_final_message() (Python) или .finalMessage() (TypeScript) для получения полного объекта Message без обработки отдельных событий — смотрите Потоковые сообщения для деталей. При потоковой передаче будьте готовы обрабатывать как блоки мышления, так и текстовые блоки по мере их поступления.temperature или top_k, а также с принудительным использованием инструментов.top_p на значения между 1 и 0.95.curl https://api.anthropic.com/v1/messages \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data \
'{
"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?"
}
]
}'curl https://api.anthropic.com/v1/messages \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data \
'{
"model": "claude-sonnet-4-6",
"max_tokens": 16000,
"stream": true,
"thinking": {
"type": "enabled",
"budget_tokens": 10000
},
"messages": [
{
"role": "user",
"content": "What is the greatest common divisor of 1071 and 462?"
}
]
}'| Не сохраняется между ходами |
| Не сохраняется между ходами |
| Сохраняется по умолчанию |
| Сохраняется по умолчанию |
| Сохраняется по умолчанию |
Изучите практические примеры мышления в нашей кулинарной книге.