О том, как «zero data retention» (нулевое хранение данных), или ZDR, применяется к этой функции, см. API и хранение данных.
Модель, которая отвечает за один проход, должна сделать всё правильно с первой попытки: никаких черновиков, никаких проверок, никакой смены курса на полпути. Для доказательства, сложной ошибки или длительной агентной задачи первый подход часто оказывается не лучшим.
Мышление снимает это ограничение. Когда мышление активно, Claude прорабатывает проблему своими словами перед тем, как ответить: он переформулирует, что спрашивается, пробует подходы, проверяет промежуточные результаты и отбрасывает пути, которые не выдерживают проверки. Эти рассуждения поступают в блоках содержимого thinking перед ответом, и Claude опирается на них для формирования окончательного ответа. Именно поэтому мышление улучшает производительность на сложных задачах, таких как математика, программирование, анализ и длительная агентная работа, где качество ответа зависит от промежуточной работы, которая в противном случае была бы сжата в сам ответ или пропущена.
У мышления есть цена: токены, которые Claude тратит на рассуждения, тарифицируются как выходные токены, даже когда текст мышления не возвращается вам, и они учитываются в max_tokens наряду с текстом ответа. Эта страница описывает, как мышление ведёт себя во всей поверхности API: включение, чтение его вывода и управление его взаимодействием с инструментами, потоковой передачей (streaming), кэшированием и контекстным окном (context window).
Будет ли Claude думать над данным запросом и насколько глубоко, зависит от вашей конфигурации мышления и сложности запроса.
Вот как выглядит мышление в ответе: один или несколько блоков содержимого thinking поступают перед блоками text. Блок мышления — это всё ещё сгенерированное содержимое, как и следующий за ним блок text, но он отделён от канонического ответа. Каждый блок мышления также несёт поле signature, зашифрованную копию полных рассуждений, которую вы передаёте обратно без изменений в многоходовых разговорах и разговорах с использованием инструментов (см. Шифрование мышления):
{
"content": [
{
"type": "thinking",
"thinking": "Let me break this down. The question has two parts, so I'll start with the simpler one and use its result to constrain the second...",
"signature": "WaUjzkypQ2mUEVM36O2Txu...."
},
{
"type": "text",
"text": "Based on my analysis..."
}
]
}Вы не всегда видите этот текст, и то, что вы видите, никогда не является сырой цепочкой рассуждений: текст в блоке мышления — это сводка рассуждений Claude. Поле display в конфигурации мышления управляет тем, возвращается ли эта сводка вообще: "summarized" возвращает её, тогда как "omitted", значение по умолчанию на новейших моделях, возвращает блоки мышления с пустым полем thinking. В любом случае блок тарифицируется одинаково и передаётся обратно одинаково в многоходовых разговорах; см. Управление отображением мышления для значений по умолчанию для каждой модели и подробностей.
Если Claude использует инструменты, мышление также может появляться между вызовами инструментов; см. Мышление с использованием инструментов. Полный формат ответа см. в справочнике Messages API.
На текущих моделях мышление включено по умолчанию или находится в одном параметре от включения. Какую конфигурацию принимает каждая модель и каковы её значения по умолчанию, перечислено в таблице конфигурации по моделям на странице устранения неполадок.
На Claude Opus 5, Claude Sonnet 5, Claude Fable 5, Claude Mythos 5 и Claude Mythos Preview мышление уже включено: настройка не требуется. Первое, что нужно большинству разработчиков на этих моделях, — это увидеть текст мышления, поскольку display там по умолчанию равен "omitted". Включите это с помощью thinking: {"type": "adaptive", "display": "summarized"}, что в точности соответствует следующему запросу с заменённой строкой модели.
На Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6 и Claude Sonnet 4.6 мышление выключено, пока вы не установите thinking: {type: "adaptive"} в вашем запросе. Следующие примеры делают это, устанавливают display: "summarized", чтобы текст мышления был виден, и используют просторный max_tokens:
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive", "display": "summarized"},
messages=[
{
"role": "user",
"content": "What is the greatest common divisor of 1071 and 462?",
}
],
)
for block in response.content:
if block.type == "thinking":
print(f"\nThinking: {block.thinking}")
elif block.type == "text":
print(f"\nResponse: {block.text}")Запуск примера выводит суммированное мышление, затем ответ:
Thinking: Use Euclidean algorithm.
1071 = 2*462 + 147
462 = 3*147 + 21
147 = 7*21 + 0
GCD = 21
Response: ## Finding GCD of 1071 and 462
I'll use the **Euclidean algorithm**, repeatedly dividing and taking remainders...Токены мышления учитываются в max_tokens, поэтому установите его достаточно высоким, чтобы оставить место как для мышления, так и для текста ответа. См. Контроль затрат на странице управления и Мышление и контекстное окно.
На Claude Sonnet 5, где мышление включено по умолчанию, вы можете его отключить:
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=4096,
thinking={"type": "disabled"},
messages=[{"role": "user", "content": "Summarize this article in one sentence."}],
)Claude Opus 5 также имеет мышление, включённое по умолчанию, и принимает thinking: {type: "disabled"} при уровне effort high или ниже. При уровне effort xhigh или max мышление не может быть отключено: запросы, которые сочетают thinking: {type: "disabled"} с этими уровнями effort, возвращают ошибку 400. Это ограничение применяется к Claude Opus 5 и более поздним моделям и проверяется при каждом запросе. С отключённым мышлением Claude Opus 5 может иногда выдавать вызовы инструментов как обычный текст или включать внутренние XML-теги в свой видимый вывод; см. Работа с отключённым мышлением для смягчения этого с помощью подсказок.
Claude Fable 5, Claude Mythos 5 и Claude Mythos Preview отклоняют thinking: {type: "disabled"}: мышление не может быть отключено на этих моделях.
Если ваша модель поддерживает только расширенное мышление (extended thinking) (см. таблицу конфигурации по моделям), настройте его с помощью type: "enabled" и значения budget_tokens; страница Расширенное мышление описывает эту конфигурацию. А если какая-либо конфигурация мышления возвращается с ошибкой 400, Устранение неполадок мышления сопоставляет каждое сообщение об ошибке с его исправлением.
Поле display в конфигурации мышления управляет тем, как содержимое мышления возвращается в ответах API. display работает в обоих режимах: устанавливайте его вместе с type: "adaptive" или type: "enabled". Оно принимает два значения:
"summarized": блоки мышления содержат текст суммированного мышления, читаемую сводку рассуждений Claude. Это значение по умолчанию на Claude Opus 4.6, Claude Sonnet 4.6 и более ранних моделях."omitted": блоки мышления возвращаются с пустым полем thinking. Поле signature по-прежнему несёт зашифрованное полное мышление для непрерывности многоходовых разговоров (см. Шифрование мышления). Это значение по умолчанию на Claude Fable 5, Claude Mythos 5, Claude Opus 5, Claude Sonnet 5, Claude Opus 4.8, Claude Opus 4.7 и Claude Mythos Preview.Устанавливайте display: "omitted", когда ваше приложение не показывает содержимое мышления пользователям. Основное преимущество — более быстрое время до первого текстового токена при потоковой передаче: сервер полностью пропускает потоковую передачу токенов мышления и доставляет только подпись, поэтому окончательный текстовый ответ начинает передаваться раньше.
С display: "omitted" ответ содержит блоки thinking с пустым полем thinking:
{
"content": [
{
"type": "thinking",
"thinking": "",
"signature": "EosnCkYICxIMMb3LzNrMu..."
},
{
"type": "text",
"text": "The answer is 12,231."
}
]
}Имейте в виду следующее при работе с опущенным мышлением:
signature, чтобы восстановить исходное мышление для построения подсказки (см. Сохранение блоков мышления). Любой текст, который вы помещаете в поле thinking возвращаемого опущенного блока, игнорируется.display недопустим с thinking.type: "disabled" (отображать нечего).thinking.type: "adaptive", когда модель пропускает мышление для простого запроса, блок мышления не создаётся независимо от display.display: "omitted" события thinking_delta не генерируются; см. Потоковая передача мышления для последовательности событий.Поле signature идентично независимо от того, является ли display "summarized" или "omitted". Переключение значений display между ходами в разговоре поддерживается.
В Ruby SDK устанавливайте это поле как display_: (с подчёркиванием в конце), чтобы избежать затенения Kernel#display в Ruby; поле в протоколе по-прежнему display.
Когда display равен "summarized", текст мышления, который вы получаете, является сводкой полного процесса мышления Claude, а не сырой цепочкой рассуждений. Суммированное мышление обеспечивает все преимущества интеллекта от мышления, предотвращая при этом злоупотребления. Ни одна настройка display не возвращает сырую цепочку рассуждений.
Имейте в виду следующее при работе с суммированным мышлением:
В редких случаях, когда вам нужен доступ к полному выводу мышления, свяжитесь с отделом продаж Anthropic.
Мышление работает с потоковой передачей. Блоки мышления передаются как события thinking_delta внутри событий content_block_delta, за которыми следует одно событие signature_delta непосредственно перед content_block_stop блока. Текстовые блоки передаются после этого как обычно.
Следующие примеры передают ответ с адаптивным мышлением, выводя дельты мышления и текста по мере их поступления:
client = anthropic.Anthropic()
with client.messages.stream(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive", "display": "summarized"},
messages=[
{
"role": "user",
"content": "What is the greatest common divisor of 1071 and 462?",
}
],
) as stream:
for event in stream:
if event.type == "content_block_start":
print(f"\nStarting {event.content_block.type} block...")
elif event.type == "content_block_delta":
if event.delta.type == "thinking_delta":
print(event.delta.thinking, end="", flush=True)
elif event.delta.type == "text_delta":
print(event.delta.text, end="", flush=True)Когда установлено display: "omitted", блок мышления открывается, поступает одна signature_delta, и блок закрывается без каких-либо событий thinking_delta. Потоковая передача текста начинается сразу после этого:
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":""}}При использовании потоковой передачи с включённым мышлением вы можете заметить, что текст иногда поступает большими фрагментами, чередующимися с меньшей, потокенной доставкой. Это ожидаемое поведение, особенно для содержимого мышления.
Системе потоковой передачи необходимо обрабатывать содержимое пакетами для оптимальной производительности, что может привести к такому «фрагментарному» шаблону доставки с возможными задержками между событиями потоковой передачи.
Общую механику потоковой передачи см. в Потоковая передача сообщений.
Параметр thinking управляет тем, думает ли Claude в блоках мышления перед ответом; параметр effort управляет тем, сколько работы Claude вкладывает во весь ответ, что в адаптивном режиме включает то, как часто и насколько глубоко он думает. Не передавайте adaptive в качестве значения effort: adaptive — это режим мышления, а не уровень усилий.
О том, что каждый уровень effort делает с поведением мышления, см. таблицу поведения мышления по уровням на странице Управление мышлением; страница Effort документирует сам параметр, включая то, какие уровни поддерживает каждая модель. На Claude Opus 4.5, единственной модели только с расширенным мышлением, которая поддерживает effort, effort сочетается с budget_tokens; см. Правила бюджета и настройка.
С двумя элементами управления, разделёнными таким образом, выберите тот, который соответствует вашей цели:
effort. Это уменьшает масштаб всего ответа, включая мышление.effort или см. Управление тем, как часто Claude думает на странице управления.thinking: {type: "disabled"} на моделях, которые это позволяют (см. таблицу конфигурации по моделям).max_tokens. Effort — это мягкое руководство; max_tokens — строгий лимит.Мышление работает вместе с использованием инструментов, позволяя Claude рассуждать о выборе инструментов и обрабатывать результаты инструментов. Применяются два ограничения:
thinking: {type: "enabled"}) поддерживает только tool_choice: {"type": "auto"} (по умолчанию) или tool_choice: {"type": "none"}. Использование tool_choice: {"type": "any"} или tool_choice: {"type": "tool", "name": "..."} приводит к ошибке, потому что эти опции принудительно вызывают использование инструментов, что несовместимо с ручным расширенным мышлением. Адаптивное мышление, включая модели, где мышление включено по умолчанию, поддерживает принудительное использование инструментов.Цикл использования инструментов — это один ход ассистента. С точки зрения модели, ход ассистента не завершается, пока 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)Обратите внимание, что переключение режимов мышления также делает недействительным кэширование подсказок; см. Мышление и кэширование подсказок.
Когда Claude вызывает инструмент, он приостанавливает построение своего ответа, чтобы дождаться внешней информации. Когда вы возвращаете результат инструмента, Claude продолжает строить тот же самый ответ, поэтому его более ранние рассуждения всё ещё должны присутствовать. Передавайте каждый блок thinking обратно в API полностью и без изменений, вместе с блоком tool_use, который он сопровождал. Это важно по двум причинам:
Вкратце:
Вам не нужно самостоятельно удалять старое мышление. Передавайте все блоки мышления обратно в многоходовых разговорах, и API автоматически фильтрует их, сохраняет блоки, необходимые для сохранения рассуждений модели, и тарифицирует входные токены только за блоки, фактически показанные Claude. Какие блоки предыдущих ходов сохраняются, зависит от модели; см. Сохранение блоков мышления по моделям. Чтобы переопределить значение по умолчанию, используйте стратегию редактирования контекста clear_thinking_20251015.
Внутри последнего сообщения ассистента последовательность последовательных блоков thinking должна соответствовать тому, что модель сгенерировала в исходном запросе: вы не можете переставлять, редактировать или частично удалять их. Это включает блоки redacted_thinking.
Изменённые блоки мышления отклоняются с ошибкой 400; см. Ошибка 400 говорит, что блоки мышления не могут быть изменены для точного сообщения, распространённых причин и исправления. Единственное исключение: текст, помещённый в пустое поле thinking опущенного блока, игнорируется, а не отклоняется.
Полное пошаговое руководство из двух ходов с кодом на каждом SDK см. в Мышление в рабочих процессах с инструментами и многоходовых рабочих процессах. Оно определяет инструмент, получает ответ с мышлением и использованием инструмента и возвращает ход ассистента обратно с результатом инструмента.
Чередующееся мышление позволяет Claude думать между вызовами инструментов, рассуждая о каждом результате инструмента перед тем, как действовать на его основе. С чередующимся мышлением Claude может:
Последовательные вызовы инструментов не требуют чередующегося мышления. Claude может связывать вызовы инструментов с чередующимся мышлением или без него; чередование меняет то, где блоки мышления появляются между вызовами инструментов, а не то, могут ли вызовы инструментов связываться в цепочку.
С адаптивным мышлением чередующееся мышление автоматически работает на каждой модели, которая поддерживает адаптивное мышление; бета-заголовок не нужен. На Claude Fable 5, Claude Mythos 5, Claude Mythos Preview, Claude Opus 5, Claude Opus 4.8 и Claude Opus 4.7 рассуждения между вызовами инструментов всегда появляются в блоках мышления. Claude Haiku 4.5 не поддерживает чередующееся мышление. На моделях, использующих ручное расширенное мышление, чередование требует бета-заголовка и меняет то, как подсчитывается бюджет мышления; Чередующееся мышление в ручном режиме описывает правила для каждой модели и поведение заголовков, специфичное для платформы.
С чередующимся мышлением выделение на мышление может охватывать весь ход ассистента, а не один ответ. Чередующееся мышление поддерживается только для инструментов, используемых через Messages API.
Проработанное сравнение, показывающее, что чередующееся мышление меняет в рабочем процессе с двумя инструментами, см. в Как чередующееся мышление меняет поток.
Остаются ли блоки мышления из предыдущих ходов ассистента в контексте по умолчанию, зависит от модели:
Сохранение даёт два преимущества:
Компромисс — использование контекста: длинные разговоры потребляют больше пространства контекста на моделях, сохраняющих всё, поскольку сохранённые блоки мышления учитываются как входные данные, как и любая другая история разговора (см. Мышление и контекстное окно). Поведение автоматическое в обоих режимах; никаких изменений кода или бета-заголовков не требуется, и вы должны продолжать передавать полные, неизменённые блоки мышления обратно, как описано в Сохранение блоков мышления. Чтобы переопределить значение по умолчанию в любом направлении, используйте очистку блоков мышления.
Переключение моделей в середине разговора. Когда вы переключаетесь между любыми двумя моделями, например после резервного переключения при отказе классификатора, удалите блоки thinking и redacted_thinking из предыдущих ходов ассистента. Блоки мышления привязаны к модели, которая их создала. Другие модели молча игнорируют их, а не отклоняют запрос, но игнорируемые блоки всё равно добавляют входные токены.
Кэширование подсказок взаимодействует с мышлением несколькими специфическими способами. Следующие правила применяются в обоих режимах мышления.
Изменения конфигурации делают кэширование недействительным. Конфигурация мышления и разрешённый уровень effort отображаются в самой подсказке, поэтому изменение любого из них начинает новый префикс кэша. Переключение между adaptive, enabled и disabled, изменение budget_tokens и изменение значения effort — всё это делает недействительными точки останова кэша: точки останова на уровне сообщений всегда промахиваются, а точки останова инструментов и системной подсказки тоже могут промахиваться, в зависимости от того, где модель отображает конфигурацию. Рассматривайте любое изменение мышления или effort как начало кэша заново. Последовательные запросы, сохраняющие ту же конфигурацию, сохраняют кэш, а явная установка параметра в его значение по умолчанию эквивалентна его опусканию. Проработанная демонстрация с выводом использования находится на странице Управление мышлением.
Блоки мышления кэшируются с результатами инструментов. Во время цикла использования инструментов кэширование происходит, когда вы делаете последующий запрос, включающий результаты инструментов. В этот момент предыдущая история разговора, включая её блоки мышления, может быть закэширована, и эти закэшированные блоки мышления учитываются как входные токены в ваших метриках использования при чтении из кэша. Это происходит автоматически, даже без явных маркеров cache_control, и ведёт себя одинаково для обычного и чередующегося мышления. Компромисс: блоки мышления, которые вы больше никогда не увидите в ответах, всё равно вносят вклад в использование входных токенов при чтении из кэша.
Находятся ли предыдущие блоки в контексте вообще, зависит от модели. Этим управляет значение по умолчанию для сохранения. На моделях, сохраняющих всё, блоки мышления предыдущих ходов остаются закэшированными и в контексте. На моделях, сохраняющих только последний ход, как только вы отправляете сообщение пользователя, которое не является результатом инструмента, все предыдущие блоки мышления удаляются из контекста. На этих моделях разговор вроде этого:
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]обрабатывается так, как будто блоков мышления никогда не было:
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]На моделях, сохраняющих всё, тот же запрос сохраняет thinking_block_1 и thinking_block_2 в контексте и в кэше.
Деградация удаляет мышление из кэшируемой истории. Если мышление отключается в середине хода и вы передаёте содержимое мышления в текущем ходе с использованием инструментов, содержимое мышления удаляется, и мышление остаётся отключённым для этого запроса (см. корректную деградацию). Чередующееся мышление усиливает эффекты инвалидации кэша, поскольку блоки мышления могут возникать между несколькими вызовами инструментов.
Задачи с интенсивным мышлением часто занимают больше времени, чем стандартное 5-минутное время жизни кэша. Рассмотрите 1-часовую продолжительность кэша, чтобы поддерживать попадания в кэш в течение более длительных сессий мышления и многошаговых рабочих процессов.
max_tokens, который включает всё мышление, генерируемое Claude в текущем ходе, применяется как строгий лимит. На моделях Claude 4.5 и новее, если входные токены плюс max_tokens превышают размер контекстного окна, API принимает запрос; если генерация затем достигает лимита контекстного окна, она останавливается с stop_reason: "model_context_window_exceeded" вместо возврата ошибки. На более ранних моделях API вместо этого возвращает ошибку валидации. См. Обработка причин остановки.
То, как мышление учитывается в окне, зависит от того, когда оно было сгенерировано:
max_tokens, тарифицируется как выходные токены и занимает пространство контекстного окна для хода, который его сгенерировал.На практике:
max_tokens этого хода, а затем выпадает из окна.Следующие диаграммы иллюстрируют режим только последнего хода (с удалением). Первая показывает многоходовой разговор: блок мышления каждого хода генерируется в выводе, но не переносится во входные данные последующих ходов.
Вторая показывает тот же режим с использованием инструментов: мышление остаётся в контексте вместе со своим результатом инструмента на протяжении хода ассистента, а затем выпадает на следующем ходе пользователя.
Используйте API подсчёта токенов, чтобы получить точные подсчёты для вашего конкретного случая использования, особенно для многоходовых разговоров, включающих мышление.
Полное содержимое мышления шифруется и возвращается в поле signature каждого блока мышления. API использует подпись для проверки того, что блоки мышления были сгенерированы Claude, когда вы передаёте их обратно.
Имейте в виду следующее при работе с подписями:
signature_delta внутри события content_block_delta непосредственно перед событием content_block_stop.signature значительно длиннее в Claude 4 и более поздних моделях, чем в предыдущих моделях.signature непрозрачно: не интерпретируйте и не разбирайте его.signature совместимы между платформами (API Claude, Amazon Bedrock и Google Cloud). Значения, сгенерированные на одной платформе, работают на другой.В дополнение к обычным блокам thinking, API может возвращать блоки redacted_thinking, когда части рассуждений Claude отредактированы из соображений безопасности. Блок redacted_thinking содержит зашифрованное содержимое мышления в поле data, без читаемого текста:
{
"type": "redacted_thinking",
"data": "..."
}Поле data непрозрачно и зашифровано. Как и поле signature в обычных блоках мышления, передавайте блоки redacted_thinking обратно в API без изменений при продолжении многоходового разговора с инструментами.
Если ваш код фильтрует блоки содержимого по типу (например, block.type == "thinking") при возврате ответов с использованием инструментов, также включайте блоки redacted_thinking. Фильтрация только по block.type == "thinking" молча отбрасывает блоки redacted_thinking и нарушает многоходовой протокол, описанный в Сохранение блоков мышления.
Блоки redacted_thinking — это отдельный тип блока содержимого, возвращаемый, когда мышление отредактировано из соображений безопасности. Это отличается от опции display: "omitted", которая возвращает обычные блоки thinking с пустым полем thinking.
На Claude Fable 5 и Claude Mythos 5 сырая цепочка рассуждений никогда не возвращается; блоки, которые вы получаете, — это обычные блоки thinking, а не redacted_thinking, и настройка display работает так же, как на других моделях (суммированный текст или пустое поле thinking при опущении, что здесь является значением по умолчанию). Форму ответа блоков мышления см. в справочнике Messages API.
При продолжении разговора на той же модели передавайте каждый блок мышления обратно в API точно так, как получили, включая блоки, чьё поле thinking пусто. Не редактируйте и не реконструируйте их. Чтение текста сводки для отображения допустимо: API отклоняет блоки, чьё возвращённое содержимое было изменено, а не блоки, которые вы прочитали. Текст, помещённый в пустое опущенное поле thinking, игнорируется, а не отклоняется.
О том, что происходит с блоками мышления при переключении моделей в середине разговора, см. Сохранение блоков мышления по моделям.
Два исключения, описанные в Резервный кредит:
fallback из резервного переключения в середине вывода остаются там, где они появились.Чтобы получить видимость рассуждений модели, читайте блоки thinking, описанные на этой странице, вместо того чтобы запрашивать рассуждения в тексте ответа. На Claude Fable 5 запрос, который пытается извлечь внутренние рассуждения модели как часть текста ответа, может быть отклонён с stop_details.category: "reasoning_extraction". См. Категории отказов для справки по полям и руководства по обработке.
Параметры сэмплирования. На Claude Fable 5, Claude Mythos 5, Claude Mythos Preview, Claude Opus 5, Claude Opus 4.8, Claude Opus 4.7 и Claude Sonnet 5 значения temperature, top_p или top_k, отличные от значений по умолчанию, возвращают ошибку 400 при каждом запросе, независимо от того, используется ли мышление. На более старых моделях ограничение применяется только при включённом мышлении: temperature и top_k несовместимы с мышлением, а top_p допускается со значениями от 0.95 до 1.
Предзаполнение ответа и принудительное использование инструментов. Вы не можете предзаполнить ответ ассистента при включённом мышлении. Принудительное использование инструментов (tool_choice: {"type": "any"} или {"type": "tool", ...}) несовместимо с ручным расширенным мышлением, но работает с адаптивным мышлением; см. Мышление с использованием инструментов.
Ограничения вывода. Claude Fable 5, Claude Mythos 5, Claude Mythos Preview, Claude Opus 5, Claude Opus 4.8, Claude Opus 4.7, Claude Sonnet 5, Claude Opus 4.6 и Claude Sonnet 4.6 поддерживают до 128 тыс. выходных токенов на запрос. Claude Haiku 4.5, Claude Sonnet 4.5 и Claude Opus 4.5 поддерживают до 64 тыс. В Message Batches API бета-заголовок output-300k-2026-03-24 повышает лимит до 300 тыс. для Claude Opus 5, Claude Opus 4.8, Claude Opus 4.7, Claude Sonnet 5, Claude Opus 4.6 и Claude Sonnet 4.6. См. обзор моделей для ограничений устаревших моделей.
Длинные запросы. SDK требуют потоковую передачу, когда max_tokens превышает 21 333, чтобы избежать тайм-аутов HTTP при длительных запросах. Это валидация на стороне клиента, а не ограничение API. Если вам не нужно обрабатывать события инкрементально, используйте .stream() с .get_final_message() (Python) или .finalMessage() (TypeScript), чтобы получить полный объект Message без обработки отдельных событий; см. Потоковая передача сообщений. Ожидайте более длительное время ответа при активном мышлении, поскольку генерация блоков мышления добавляет время обработки. Для рабочих нагрузок, в которых мышление превышает примерно 32 тыс. токенов на запрос, используйте пакетную обработку, чтобы избежать сетевых проблем: такие запросы могут выполняться достаточно долго, чтобы достичь системных тайм-аутов и лимитов открытых соединений.
Настройте, когда и насколько глубоко Claude думает: уровни усилий, управление через подсказки, контроль затрат и ценообразование.
Пройдите полный двухходовой цикл использования инструментов и посмотрите, что меняет чередующееся мышление.
Сопоставьте ошибки 400 конфигурации мышления, пустые поля мышления и промахи кэша с их причинами и решениями.
Управляйте тем, сколько токенов Claude тратит на текст, вызовы инструментов и мышление с помощью параметра effort.
Was this page helpful?