Управление размышлениями
Управляйте тем, как часто и насколько глубоко Claude думает, с помощью уровней усилия, указаний в системной подсказке и управления на уровне отдельных сообщений, а также разберитесь в стоимости и ценообразовании размышлений.
«Thinking» (размышления) Claude адаптивны: модель оценивает каждый запрос и определяет, нужно ли размышлять и насколько. Вы задаёте намерение, при необходимости указываете «effort» (усилие), а модель распределяет рассуждения там, где, по её оценке, они помогут.
Это делает размышления отличным выбором для рабочих нагрузок, в которых смешаны тривиальные и сложные запросы, а также для долгосрочных агентных рабочих процессов, где нужный объём рассуждений меняется от шага к шагу.
Чтобы узнать, как включить размышления, как читать вывод размышлений, а также о выводе размышлений в Claude Fable 5 и Claude Mythos 5, см. обзор Размышления. На этой странице рассматривается, как Claude определяет, когда размышлять, как управлять размышлениями, а также вытекающие из этого механизмы кэширования, стоимости и ценообразования.
Как Claude определяет, когда размышлять
Размышления для модели необязательны. При каждом запросе Claude оценивает сложность входных данных и определяет, улучшит ли ответ более глубокое рассуждение. Простой фактический вопрос может получить прямой ответ вообще без блока размышлений; многошаговая математическая задача или сложная задача отладки запускает более глубокое рассуждение.
Решение принимается для каждого запроса отдельно. Один и тот же разговор может содержать ходы с размышлениями и без них, и ход, в котором Claude решил не думать, не содержит блока размышлений. Не стройте логику приложения, предполагающую, что каждый ход ассистента начинается с такого блока.
Основной элемент управления этим решением — параметр effort (усилие), который действует как мягкое указание на то, насколько охотно Claude должен думать и насколько глубоко; см. раздел Уровни усилия на этой странице, чтобы узнать, что делает каждый уровень.
Если вы хотите, чтобы Claude думал реже, понизьте уровень усилия, прежде чем прибегать к управлению через подсказки.
Размышления также автоматически чередуются с «tool use» (использованием инструментов): Claude может размышлять между вызовами инструментов, анализируя каждый результат инструмента, прежде чем определить дальнейшие действия (чередующиеся размышления). Для этого не нужен бета-заголовок или какая-либо дополнительная настройка.
Полную картину того, как взаимодействуют конфигурация размышлений и параметр effort, см. в разделе Размышления и усилие.
Управление тем, как часто Claude думает
То, думает ли Claude на данном ходе, поддаётся управлению через подсказки. Усилие задаёт общую установку, но вы также можете формировать решение напрямую с помощью указаний на естественном языке — либо глобально в «system prompt» (системной подсказке), либо для отдельного сообщения из хода пользователя.
Используйте оба рычага вместе в таком порядке:
- Установите уровень усилия, соответствующий стандартному балансу качества и задержки для вашей рабочей нагрузки.
- Добавляйте указания в подсказке только в том случае, если срабатывание размышлений Claude на этом уровне всё ещё не соответствует вашим потребностям.
Более общие рекомендации по составлению подсказок с размышлениями см. в разделе использование возможностей размышлений и чередующихся размышлений.
Уровни усилия
Уровень усилий — основной рычаг управления размышлениями. Каждый уровень задаёт своё поведение по умолчанию в отношении того, как часто и насколько глубоко думает Claude:
| Уровень усилия | Поведение размышлений |
|---|---|
max | Claude думает наиболее охотно и с наибольшей глубиной, без ограничений на длину размышлений. |
xhigh | Claude думает охотнее и глубже, чем на уровне high; подходит для развёрнутого исследования. |
high (по умолчанию на большинстве моделей) | Claude думает в большинстве запросов, где это полезно. Обеспечивает глубокое рассуждение в сложных задачах. |
medium (по умолчанию для Claude Opus 5.5 и Claude Haiku 5.5) | Claude использует умеренные размышления. Может пропускать размышления для простых запросов. |
low | Claude сводит размышления к минимуму. Пропускает размышления для простых задач, где важнее всего скорость. |
На каждом уровне Claude определяет для каждого запроса, размышлять ли. В цикле использования инструментов первый запрос после нового ввода пользователя обычно содержит основную часть рассуждений, а последующие запросы, которые лишь обрабатывают результаты инструментов, могут пропускать размышления, в том числе на уровнях xhigh и max. Объём размышлений на запрос также имеет тенденцию уменьшаться по мере удлинения разговора. Ни один уровень не гарантирует наличие блока размышлений в каждом запросе.
В этой таблице описано, как каждый уровень меняет поведение размышлений. Рекомендации по выбору уровня для конкретной рабочей нагрузки, включая рекомендации для отдельных моделей, см. в разделе Когда настраивать параметр effort на странице об уровне усилий.
Уровень усилий задаётся в output_config.effort, а не внутри объекта thinking; полные примеры для каждого языка см. на странице Усилие.
{
"model": "claude-opus-5-5",
"max_tokens": 4096,
"output_config": { "effort": "medium" },
"messages": [{ "role": "user", "content": "..." }]
}Доступность уровней зависит от модели; какие уровни поддерживает каждая модель, определяет таблица доступности уровней усилий на странице об уровне усилий.
Указания в системной подсказке
Указания в системной подсказке смещают порог размышлений Claude для каждого запроса в разговоре. Если Claude думает чаще, чем нужно вашей рабочей нагрузке, добавьте в системную подсказку указание вроде этого:
Extended thinking adds latency and should only be used when it
will meaningfully improve answer quality, typically for problems
that require multistep reasoning. When in doubt, respond directly.Чтобы, наоборот, поощрять размышления, используйте фразу вроде:
This task involves multistep reasoning. Think carefully before responding.Эффективность управления может быть чувствительна к точной формулировке. Если одна формулировка не даёт желаемого поведения, попробуйте более прямой вариант.
Управление на уровне отдельных сообщений
Вы также можете управлять размышлениями для каждого сообщения отдельно из хода пользователя, независимо от системной подсказки. Добавление "Please think hard before responding." к сообщению пользователя побуждает Claude размышлять на этом ходе; "Answer directly without deliberating." сдерживает размышления.
Управление на уровне отдельных сообщений полезно, когда развёрнутое рассуждение требуется лишь для некоторых запросов в диалоге. Например, агентная обвязка может добавлять поощряющую фразу на шагах планирования и сдерживающую фразу при рутинных подтверждениях, не затрагивая системную подсказку и не меняя параметры запроса между ходами.
В Claude Haiku 5.5 сдерживающая фраза не всегда надёжно сокращает размышления. В Claude API и Google Cloud выполняйте рутинные ходы на этой модели с меньшим объёмом размышлений, используя вместо этого изменение уровня усилий для отдельного сообщения (бета), что также сохраняет кэш подсказок.
Проверьте управление на своей рабочей нагрузке
Управление через подсказки меняет поведение модели, поэтому относитесь к нему как к любому другому изменению подсказки: измеряйте перед выпуском. Прогоните репрезентативную выборку вашего трафика с указаниями и без них и сравните, как часто срабатывают размышления (наличие блоков размышлений в ответах), использование выходных токенов, задержку и качество ответов в важных для вас случаях.
Механика
Из того, что Claude сам управляет своими размышлениями, следуют три механики: валидация ходов, кэширование подсказок и способ ограничения стоимости.
Валидация ходов
Ходы ассистента не обязаны начинаться с блока размышлений. (Модели, использующие устаревший ручной бюджет размышлений, требуют, чтобы последний ход ассистента в запросе с включёнными размышлениями начинался с такого блока; см. Структура ходов в ручном режиме.)
Для многоходовых приложений это означает, что вы можете передавать историю разговора обратно в том виде, в каком она у вас есть:
- Ходы ассистента, в которых Claude решил не думать, являются допустимой историей как есть.
- Вы можете возобновить разговор, который начался без размышлений или использовал другую конфигурацию размышлений, не переписывая его историю.
- В историю, собранную из смешанных источников, не нужно заново вставлять блоки размышлений в начало каждого хода ассистента, чтобы она прошла валидацию.
Это ослабление касается валидации, а не того, что вам следует отправлять. Когда у вас есть блоки размышлений, передавайте их обратно без изменений, особенно при использовании инструментов, где они несут рассуждения, стоящие за вызовами инструментов Claude. Полные правила см. в обзоре Размышления.
Кэширование подсказок
Если последовательные запросы используют одну и ту же конфигурацию размышлений и один и тот же уровень усилий, кэширование подсказок продолжает работать; полные правила см. в разделе Размышления и кэширование подсказок. Итоговое значение уровня усилий встраивается в подсказку, поэтому его изменение между запросами делает недействительными «cache breakpoints» (точки останова кэша) — так же, как изменение устаревшего параметра budget_tokens в моделях, которые его используют. Явная установка effort в значение по умолчанию для модели равносильна его отсутствию и не нарушает кэш.
Практическое следствие: выберите конфигурацию размышлений и уровень усилий верхнего уровня для каждого диалога и придерживайтесь их. Если некоторым ходам нужно больше или меньше размышлений, используйте изменение уровня усилий для отдельного сообщения (бета) в моделях, которые его поддерживают, или управляйте размышлениями с помощью подсказок на уровне отдельных сообщений. Оба способа сохраняют более ранние точки останова кэша, тогда как изменение конфигурации размышлений или уровня усилий верхнего уровня — нет.
Следующий пример демонстрирует инвалидацию кэша с помощью многоходового скрипта, который вы можете запустить самостоятельно:
import requests
client = Anthropic()
def fetch_article_content(url):
text = requests.get(url).text
lines = (line.strip() for line in text.splitlines())
return "\n".join(line for line in lines if line)
# Получаем содержимое статьи
book_url = "https://www.gutenberg.org/cache/epub/1342/pg1342.txt"
book_content = fetch_article_content(book_url)
# Берём ровно столько текста, сколько нужно для кэширования (первые несколько глав)
LARGE_TEXT = book_content[:10000]
# Без системной подсказки — вместо этого кэширование в сообщениях
MESSAGES = [
{
"role": "user",
"content": [
{
"type": "text",
"text": LARGE_TEXT,
"cache_control": {"type": "ephemeral"},
},
{"type": "text", "text": "Analyze the tone of this passage."},
],
}
]
# Первый запрос — создаём кэш
print("First request - establishing cache")
response1 = client.messages.create(
model="claude-opus-5-5",
max_tokens=16000,
thinking={"type": "adaptive"},
messages=MESSAGES,
)
print(f"First response usage: {response1.usage}")
MESSAGES.append({"role": "assistant", "content": response1.content})
MESSAGES.append({"role": "user", "content": "Analyze the characters in this passage."})
# Второй запрос — та же конфигурация (ожидается попадание в кэш)
print("\nSecond request - same configuration (cache hit expected)")
response2 = client.messages.create(
model="claude-opus-5-5",
max_tokens=16000,
thinking={"type": "adaptive"},
messages=MESSAGES,
)
print(f"Second response usage: {response2.usage}")
MESSAGES.append({"role": "assistant", "content": response2.content})
MESSAGES.append({"role": "user", "content": "Analyze the setting in this passage."})
# Третий запрос — другой уровень effort (ожидается промах кэша)
print("\nThird request - different effort level (cache miss expected)")
response3 = client.messages.create(
model="claude-opus-5-5",
max_tokens=16000,
thinking={"type": "adaptive"},
output_config={"effort": "low"},
messages=MESSAGES,
)
print(f"Third response usage: {response3.usage}")Вот вывод скрипта (числа у вас могут немного отличаться):
First request - establishing cache
First response usage: { cache_creation_input_tokens: 3546, cache_read_input_tokens: 0, input_tokens: 15, output_tokens: 1033 }
Second request - same configuration (cache hit expected)
Second response usage: { cache_creation_input_tokens: 0, cache_read_input_tokens: 3546, input_tokens: 1062, output_tokens: 1630 }
Third request - different effort level (cache miss expected)
Third response usage: { cache_creation_input_tokens: 3546, cache_read_input_tokens: 0, input_tokens: 2706, output_tokens: 1468 }Когда точка останова кэша находится в массиве сообщений, изменение усилия с medium (значение по умолчанию на Claude Opus 5.5) на low делает её недействительной: третий запрос показывает cache_creation_input_tokens=3546 и cache_read_input_tokens=0, тогда как второй показал полное чтение из кэша.
Контроль стоимости
Вы не задаёте бюджет токенов размышлений. Стоимость ограничивают два элемента управления:
max_tokens— жёсткий предел общего вывода для запроса, размышлений и текста ответа вместе. Claude никогда не генерирует сверх него. В цикле использования инструментов у каждого запроса в ходе свойmax_tokens, поэтому он не ограничивает расходы всего хода.effort— мягкое указание на то, какую часть этого вывода Claude выделяет на размышления. Оно формирует поведение, но не гарантирует количество токенов.
Поскольку размышления учитываются в max_tokens, установите его достаточно высоким, чтобы оставить место и для рассуждений, и для ответа. Значение max_tokens, рассчитанное на ответ без размышлений, часто оказывается слишком маленьким, когда Claude начинает думать над сложными запросами.
При усилии high и выше Claude может думать обширно и с большей вероятностью исчерпает бюджет. Если вы видите в ответах stop_reason: "max_tokens", у вас есть два средства:
- Повысьте
max_tokens, чтобы дать модели больше места для размышлений плюс ответа. - Понизьте уровень усилия, чтобы Claude думал меньше и оставлял большую часть бюджета для текста ответа.
Какое из них правильное, зависит от того, нуждались ли усечённые ответы в рассуждениях. Если качество этих запросов важно, повысьте предел; если они были чрезмерно обдуманы, понизьте усилие.
Ценообразование
Размышления влекут за собой плату за:
- Токены, которые Claude использует во время размышлений (тарифицируются как выходные токены)
- Блоки размышлений из предыдущих ходов ассистента, остающиеся в контексте, согласно правилу сохранения по умолчанию: все ходы по умолчанию на моделях, сохраняющих всё, и только последний ход в остальных случаях (тарифицируются как входные токены)
- Стандартные выходные токены текста
То, за что вам выставляется счёт, одинаково независимо от настройки display; меняется только то, что вы видите:
display: "summarized" | display: "omitted" | |
|---|---|---|
| Входные токены | Токены в вашем исходном запросе | То же, что и для summarized |
| Выходные токены (тарифицируемые) | Полные токены размышлений, которые Claude сгенерировал внутренне | То же, что и для summarized |
| Выходные токены (видимые) | Суммаризированный текст размышлений | Ноль токенов размышлений (поле thinking пустое) |
| Генерация сводки | Бесплатно | Неприменимо |
Чтобы увидеть, сколько тарифицируемых выходных токенов было потрачено на внутренние рассуждения, прочитайте usage.output_tokens_details.thinking_tokens в ответе. Это значение отражает исходные рассуждения, сгенерированные моделью (а не суммаризированный текст, возвращённый в теле), и всегда меньше или равно output_tokens. Вычтите его из output_tokens, чтобы приблизительно оценить часть вывода, не относящуюся к рассуждениям. При потоковой передаче эта разбивка появляется только в финальном событии message_delta.
{
"usage": {
"input_tokens": 25,
"output_tokens": 348,
"output_tokens_details": {
"thinking_tokens": 312
}
}
}output_tokens остаётся включающим всё авторитетным итогом, используемым для выставления счетов. output_tokens_details — это разбивка только для чтения, предназначенная для наблюдаемости. Полную информацию о ценах, включая базовые тарифы, записи в кэш, попадания в кэш и выходные токены, см. в разделе Цены.
Следующие шаги
Включите размышления, читайте вывод размышлений и проверьте поддержку для каждой модели.
Сохраняйте блоки размышлений между вызовами инструментов и управляйте размышлениями в многоходовых разговорах.
Контролируйте, сколько размышлений и вывода Claude выделяет на каждый запрос.
Was this page helpful?