Loading...
  • Разработка
  • Администрирование
  • Модели и цены
  • Клиентские SDK
  • Справочник API
Search...
⌘K
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

  • Amazon Bedrock
  • 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
Разработка/Возможности модели

Создание с расширенным мышлением

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

This feature is eligible for Zero Data Retention (ZDR). When your organization has a ZDR arrangement, data sent through this feature is not stored after the API response is returned.

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

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

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

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

  • Claude Opus 4.7 (claude-opus-4-7) и более поздние модели: ручное расширенное мышление больше не поддерживается. Используйте адаптивное мышление (thinking: {type: "adaptive"}) с параметром усилия вместо этого.
  • Claude Mythos Preview: адаптивное мышление используется по умолчанию; thinking: {type: "enabled", budget_tokens: N} также принимается. 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") с чередующимся режимом устарел, но по-прежнему функционален.

Поведение 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..."
    }
  ]
}

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

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

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

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?",
        }
    ],
)

# The response contains summarized thinking blocks and text blocks
for block in response.content:
    if block.type == "thinking":
        print(f"\nThinking summary: {block.thinking}")
    elif block.type == "text":
        print(f"\nResponse: {block.text}")

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

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

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

Claude Mythos Preview, 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 для Opus 4.7, Opus 4.6 и Sonnet 4.6.

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

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

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. This is the default behavior on Claude 4 models when the display field on the thinking configuration is unset or set to "summarized". On Claude Opus 4.7 and Claude Mythos Preview, display defaults to "omitted" instead, so you must set display: "summarized" explicitly to receive summarized thinking.

Here are some important considerations for summarized thinking:

  • You're charged for the full thinking tokens generated by the original request, not the summary tokens.
  • The billed output token count will not match the count of tokens you see in the response.
  • On Claude 4 models, the first few lines of thinking output are more verbose, providing detailed reasoning that's particularly helpful for prompt engineering purposes. Claude Mythos Preview summarizes from the first token, so its thinking blocks do not show this verbose preamble.
  • As Anthropic seeks to improve the extended thinking feature, summarization behavior is subject to change.
  • Summarization preserves the key ideas of Claude's thinking process with minimal added latency, enabling a streamable user experience.
  • Summarization is processed by a different model than the one you target in your requests. The thinking model does not see the summarized output.

In rare cases where you need access to full thinking output for Claude 4 models, contact Anthropic sales.

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

The display field on the thinking configuration controls how thinking content is returned in API responses. It accepts two values:

  • "summarized": Thinking blocks contain summarized thinking text. See Summarized thinking for details. This is the default on Claude Opus 4.6, Claude Sonnet 4.6, and earlier Claude 4 models.
  • "omitted": Thinking blocks are returned with an empty thinking field. The signature field still carries the encrypted full thinking for multi-turn continuity (see Thinking encryption). This is the default on Claude Opus 4.7 and Claude Mythos Preview.

Setting display: "omitted" is useful when your application doesn't surface thinking content to users. The primary benefit is faster time-to-first-text-token when streaming: The server skips streaming thinking tokens entirely and delivers only the signature, so the final text response begins streaming sooner.

Here are some important considerations for omitted thinking:

  • You're still charged for the full thinking tokens. Omitting reduces latency, not cost.
  • If you pass thinking blocks back in multi-turn conversations, pass them unchanged. The server decrypts the signature to reconstruct the original thinking for prompt construction (see Preserving thinking blocks). Any text you place in the thinking field of a round-tripped omitted block is ignored.
  • display is invalid with thinking.type: "disabled" (there is nothing to display).
  • When using thinking.type: "adaptive" and the model skips thinking for a simple request, no thinking block is produced regardless of display.

The signature field is identical whether display is "summarized" or "omitted". Switching display values between turns in a conversation is supported.

На 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 не выпускаются; см. Потоковая передача мышления ниже для последовательности событий.

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

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

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

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

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

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

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...")
            # Reset flags for each new 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.")

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

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":""}}

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

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

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

Расширенное мышление можно использовать вместе с использованием инструментов, позволяя 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

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

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

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

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

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

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

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

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

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

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

  • 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"}) все еще функционален, но устарел.
  • Другие модели Claude 4 (Opus 4.5, Opus 4.1, Opus 4 (устарело), Sonnet 4.5, Sonnet 4 (устарело)): Добавьте заголовок бета-версии interleaved-thinking-2025-05-14 в ваш запрос API, чтобы включить чередующееся мышление.

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

  • С чередующимся мышлением budget_tokens может превышать параметр max_tokens, так как он представляет общий бюджет для всех блоков мышления в одном ходе ассистента.
  • Чередующееся мышление поддерживается только для инструментов, используемых через Messages API.
  • Прямые вызовы API Claude позволяют вам передавать interleaved-thinking-2025-05-14 в запросах к любой модели без эффекта (кроме Opus 4.7 и Opus 4.6, где это устарело и безопасно игнорируется).
  • На платформах третьих сторон (например, Amazon Bedrock и Vertex AI), если вы передаете interleaved-thinking-2025-05-14 к любой модели, кроме 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 час для сохранения попаданий в кеш во время длительных сеансов мышления и многошаговых рабочих процессов.

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

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

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

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

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

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

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

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

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

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

Запрос 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. If you pass them back, whether the API keeps or strips them depends on the model: Opus 4.5+ and Sonnet 4.6+ keep them in context by default; earlier Opus/Sonnet models and all Haiku models strip them. See context editing to configure this.

If sending back thinking blocks, pass everything back as you received it for consistency and to avoid potential issues.

Here are some important considerations on thinking encryption:

  • When streaming responses, the signature is added via a 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.
  • The signature field is an opaque field and should not be interpreted or parsed.
  • signature values are compatible across platforms (Claude APIs, Amazon Bedrock, and Vertex AI). Values generated on one platform will be compatible with another.

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

В дополнение к обычным блокам 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 Sonnet 3.7 и Claude 4, в основном в поведении суммаризации.

См. таблицу ниже для сокращённого сравнения:

ФункцияClaude Sonnet 3.7Claude 4 Models (pre-Opus 4.5)Claude Opus 4.5Claude Sonnet 4.6Claude Opus 4.6 (адаптивное мышление)Claude Mythos Preview (адаптивное мышление)
Вывод мышленияВозвращает полный вывод мышленияВозвращает суммаризированное мышлениеВозвращает суммаризированное мышлениеВозвращает суммаризированное мышлениеВозвращает суммаризированное мышлениеОпущено по умолчанию; установите display: "summarized" для получения суммаризированного мышления. Необработанные токены мышления никогда не возвращаются.
Чередующееся мышлениеНе поддерживаетсяПоддерживается с заголовком бета interleaved-thinking-2025-05-14Поддерживается с заголовком бета interleaved-thinking-2025-05-14Поддерживается с заголовком бета interleaved-thinking-2025-05-14 или автоматически с адаптивным мышлениемАвтоматически с адаптивным мышлением (заголовок бета не поддерживается)Автоматически с адаптивным мышлением (заголовок бета не поддерживается). Межинструментальное рассуждение переходит в блоки мышления на этой модели.
Сохранение блока мышленияНе сохраняется между ходамиНе сохраняется между ходамиСохраняется по умолчаниюСохраняется по умолчаниюСохраняется по умолчаниюСохраняется по умолчанию. Блоки удаляются при продолжении разговора на модели, которая не поддерживает формат мышления Mythos.

Сохранение блока мышления в Claude Opus 4.5 и более поздних версиях

Начиная с Claude Opus 4.5 (и продолжая в Claude Opus 4.6), блоки мышления из предыдущих ходов ассистента сохраняются в контексте модели по умолчанию. Это отличается от более ранних моделей, которые удаляют блоки мышления из предыдущих ходов.

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

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

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

  • Использование контекста: Длинные разговоры будут потреблять больше пространства контекста, так как блоки мышления сохраняются в контексте
  • Автоматическое поведение: Это поведение по умолчанию для Claude Opus 4.5 и более поздних моделей (включая Claude Mythos Preview и Claude Opus 4.6). Не требуются изменения кода или заголовки бета
  • Обратная совместимость: Чтобы использовать эту функцию, продолжайте передавать полные, неизменённые блоки мышления обратно в API, как вы делали бы для использования инструментов

Для более ранних моделей (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:

  • Tokens used during thinking (output tokens)
  • Thinking blocks from prior assistant turns kept in context: only the last turn on earlier Opus/Sonnet models and all Haiku models; all turns by default on Opus 4.5+ and Sonnet 4.6+ (input tokens)
  • Standard text output tokens

When extended thinking is enabled, a specialized system prompt is automatically included to support this feature.

When using summarized thinking:

  • Input tokens: Tokens in your original request (excludes thinking tokens from previous turns)
  • Output tokens (billed): The original thinking tokens that Claude generated internally
  • Output tokens (visible): The summarized thinking tokens you see in the response
  • No charge: Tokens used to generate the summary

When using display: "omitted":

  • Input tokens: Tokens in your original request (same as summarized)
  • Output tokens (billed): The original thinking tokens that Claude generated internally (same as summarized)
  • Output tokens (visible): Zero thinking tokens (the thinking field is empty)

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 thinking content visible in the response.

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

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

  • Оптимизация бюджета: Минимальный бюджет составляет 1024 токена. Начните с минимума и постепенно увеличивайте бюджет мышления, чтобы найти оптимальный диапазон для вашего случая использования. Более высокие подсчёты токенов позволяют более комплексное рассуждение, но с убывающей отдачей в зависимости от задачи. Увеличение бюджета может улучшить качество ответа в обмен на повышенную задержку. Для критических задач протестируйте различные параметры, чтобы найти оптимальный баланс. Обратите внимание, что бюджет мышления является целевым показателем, а не строгим лимитом. Фактическое использование токенов может варьироваться в зависимости от задачи.
  • Начальные точки: Начните с больших бюджетов мышления (16k+ токенов) для сложных задач и корректируйте в зависимости от ваших потребностей.
  • Большие бюджеты: Для бюджетов мышления выше 32k используйте пакетную обработку для избежания проблем с сетью. Запросы, которые заставляют модель думать выше 32k токенов, вызывают долгоживущие запросы, которые могут столкнуться с тайм-аутами системы и лимитами открытых соединений.
  • Отслеживание использования токенов: Отслеживайте использование токенов мышления для оптимизации затрат и производительности.

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

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

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

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

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

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

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

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

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

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

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

Was this page helpful?

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