Модель, которая отвечает за один проход, должна сделать всё правильно с первой попытки: никаких черновиков, никакой проверки, никакой смены курса на полпути. Для доказательства, сложной ошибки или длительной агентной задачи первый подход часто оказывается не лучшим.
Мышление снимает это ограничение. Когда мышление активно, Claude прорабатывает задачу своими словами, прежде чем ответить: переформулирует, что именно спрашивается, пробует подходы, проверяет промежуточные результаты и отбрасывает пути, которые не выдерживают проверки. Это рассуждение поступает в блоках содержимого thinking перед ответом, и Claude опирается на него при формировании окончательного ответа. Именно поэтому мышление улучшает результаты в сложных задачах, таких как математика, программирование, анализ и длительная агентная работа, где качество ответа зависит от промежуточной работы, которая иначе была бы сжата в сам ответ или пропущена.
Мышление имеет свою цену: токены, которые Claude тратит на рассуждение, тарифицируются как выходные токены, даже когда текст мышления вам не возвращается, и они учитываются в max_tokens наряду с текстом ответа. На этой странице описано, как мышление ведёт себя на уровне API: как его включить, читать его вывод и управлять его взаимодействием с инструментами, потоковой передачей, кэшированием и контекстным окном.
Будет ли 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"}, что позволяет Claude решать, когда и насколько глубоко думать, исходя из запроса. Следующие примеры делают именно это, устанавливают 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"}: мышление нельзя отключить на этих моделях.
Если ваша модель поддерживает только расширенное мышление (см. таблицу конфигурации по моделям), настройте его с помощью 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 не генерируются. См. Потоковая передача мышления для последовательности событий.В Ruby SDK обычные хэши принимают display:, как показано в примерах. Типизированный класс ThinkingConfigAdaptive называет параметр display_ (с завершающим подчёркиванием, чтобы избежать затенения Kernel#display в Ruby). В любом случае поле на уровне протокола по-прежнему называется display.
Когда display равно "summarized", получаемый вами текст мышления — это сводка полного процесса мышления Claude, а не необработанная цепочка рассуждений. Сводка мышления обеспечивает все интеллектуальные преимущества мышления, предотвращая при этом злоупотребления. Ни одна настройка display не возвращает необработанную цепочку рассуждений.
Учитывайте следующее при работе со сводкой мышления:
Мышление работает с потоковой передачей. Блоки мышления передаются потоком как события 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)Чтобы собрать полные блоки мышления с их подписями после потоковой передачи, используйте вспомогательную функцию накопления сообщений вашего SDK, если она существует (например, stream.get_final_message() в Python или stream.finalMessage() в TypeScript), вместо самостоятельной конкатенации дельт.
Когда установлено 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.
Полное пошаговое руководство по двум ходам с кодом для каждого SDK см. в разделе Мышление в рабочих процессах с инструментами и многоходовых процессах. Там определяется инструмент, принимается ответ с мышлением и использованием инструмента, и ход ассистента отправляется обратно вместе с результатом инструмента.
Чередующееся мышление позволяет 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 в контексте и в кэше.
Деградация удаляет мышление из кэшируемой истории. Если мышление становится отключённым в середине хода и вы передаёте содержимое мышления в текущем ходе использования инструментов, содержимое мышления удаляется, и мышление остаётся отключённым для этого запроса (см. мягкую деградацию). Чередующееся мышление усиливает эффекты инвалидации кэша, потому что блоки мышления могут возникать между несколькими вызовами инструментов.
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 совместимы между платформами (Claude API, Amazon Bedrock и Google Cloud). Значения, сгенерированные на одной платформе, работают на другой.В дополнение к обычным блокам thinking API может возвращать блоки redacted_thinking, когда части рассуждений Claude отредактированы по соображениям безопасности. Блок redacted_thinking содержит зашифрованное содержимое мышления в поле data без читаемого текста:
{
"type": "redacted_thinking",
"data": "..."
}Поле data непрозрачно и зашифровано. Как и поле signature в обычных блоках мышления, передавайте блоки redacted_thinking обратно в API без изменений при продолжении многоходового разговора с инструментами.
В 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, пустые или отсутствующие блоки мышления, остановки по max_tokens и промахи кэша.
Управляйте количеством токенов, которые Claude использует при ответе, с помощью параметра effort, балансируя между полнотой ответа и эффективностью использования токенов.
Was this page helpful?