Что контролирует effort

Параметр effort задаёт, сколько токенов Claude тратит на ответ - это способ выбирать между тщательностью ответа и экономией токенов в рамках одной и той же модели. Он влияет на все токены в ответе: текст и объяснения, вызовы инструментов и их аргументы, а также размышление, если оно активно. Effort не требует включённого режима размышления и работает и без него - в этом его отличие от параметров, которые управляют исключительно размышлением.

Пять уровней

max - абсолютный максимум возможностей без ограничений на расход токенов. Для задач, которым нужны самые глубокие рассуждения и самый тщательный анализ.

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

high - высокий уровень возможностей, по умолчанию. Указание effort: "high" даёт ровно то же поведение, что и полное отсутствие параметра. Подходит для сложных рассуждений, трудных задач по коду, агентных сценариев.

medium - сбалансированный вариант с умеренной экономией токенов, для агентных задач, где важен баланс скорости, стоимости и качества.

low - самый экономичный уровень: заметная экономия токенов ценой некоторого снижения возможностей. Подходит для простых задач, где важнее всего скорость и низкая стоимость, например для субагентов.

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

Effort и вызовы инструментов

При работе с инструментами effort влияет и на пояснения вокруг вызовов, и на сами вызовы. На низких уровнях Claude склонен объединять несколько операций в меньшее число вызовов, делать меньше вызовов инструментов вообще, действовать сразу без вступления и оставлять лаконичное подтверждение после завершения. На высоких уровнях - наоборот: больше вызовов инструментов, объяснение плана перед действием, подробные итоги изменений и более развёрнутые комментарии к коду.

Effort и размышление - разные рычаги

Параметр thinking управляет тем, размышляет ли Claude в блоках размышления перед ответом; effort управляет тем, сколько работы вкладывается в ответ целиком - в адаптивном режиме размышления это включает, как часто и как глубоко Claude размышляет. Важно не путать их: значение "adaptive" - это режим размышления, а не уровень effort, передавать его в effort нельзя. На высоких уровнях effort Claude размышляет над большинством запросов и более развёрнуто; на низких - может вовсе пропустить размышление для простых задач.

Пример вызова

Python
response = client.messages.create(
    model="claude-opus-5",
    max_tokens=4096,
    messages=[
        {
            "role": "user",
            "content": "Проанализируй компромиссы между микросервисами и монолитной архитектурой",
        }
    ],
    output_config={"effort": "medium"},
)

Параметр передаётся внутри output_config, а не отдельным полем верхнего уровня запроса.

Effort между запросами и кеш промпта

output_config.effort - настройка на уровне отдельного запроса: каждый запрос несёт своё значение, и чтобы изменить уровень для следующей части разговора, значение задаётся заново на следующем запросе. Важный побочный эффект: поскольку effort формирует итоговый промпт, отправленный модели, смена его значения между запросами не сохраняет кешированные префиксы с предыдущих реплик. Если разговор полагается на кеширование промпта на протяжении многих реплик, стоит выбрать уровень effort в начале и держать его постоянным, а не менять по ходу диалога.

Практические рекомендации

Стоит задавать effort явно, а не полагаться на значение по умолчанию - правильная отправная точка зависит от конкретной модели и типа задачи. Для быстрых или простых задач, где важна скорость и низкая стоимость, подходит low. Влияние уровней effort различается по типу задачи, поэтому стоит проверять эффект именно на своих сценариях, а не переносить настройки с одной модели на другую без проверки. При переходе на новую модель стоит заново прогнать оценку разных уровней effort, а не переносить старые настройки автоматически.

Чек-лист

Настройка effort
  1. Effort задан явно, а не оставлен по умолчанию без проверки
  2. Для рутинных или субагентных задач выбран low или medium
  3. Для сложных агентных и кодинговых задач рассмотрен xhigh
  4. При работе с кешированием промпта effort зафиксирован на весь диалог
  5. Для новой модели выполнен свежий прогон оценки разных уровней, а не перенос старых настроек
Что произойдёт, если не указывать effort вообще?
По умолчанию используется уровень high - указание effort: "high" явно даёт абсолютно то же поведение, что и полное отсутствие параметра в запросе.
Можно ли использовать effort без включённого размышления?
Да, effort работает и без параметра thinking - это одно из его преимуществ: он влияет на весь расход токенов, включая вызовы инструментов, а не только на размышление.
Доступны ли все пять уровней на любой модели?
Нет, поддержка отличается по моделям - например, уровень xhigh появился позже max и доступен не на всех моделях, которые поддерживают max. Список поддерживаемых уровней стоит сверять для конкретной модели.
Почему смена effort ломает кеш промпта?
Effort влияет на то, как формируется итоговый промпт, отправляемый модели, поэтому изменение его значения между запросами меняет содержимое, от которого зависит кеш - кешированные префиксы предыдущих реплик перестают совпадать.
Подходит ли низкий уровень effort для субагентов?
Да, low прямо рекомендован для простых задач, где важнее всего скорость и низкая стоимость, - субагенты, выполняющие узкую подзадачу, часто попадают именно в этот сценарий.
Что делать, если ответ на low или medium выглядит поверхностным на сложной задаче?
Стоит поднять уровень effort, а не пытаться компенсировать это дополнительными инструкциями в промпте - effort остаётся поведенческим сигналом, но на некоторых моделях более строго ограничивает объём работы на низких уровнях, чем кажется на первый взгляд.
← Все статьи блога