Больше думать не всегда лучше: в Anthropic разобрали, какой уровень у выбирать в Claude Code

В Claude Code есть команда /effort, и вопросов про нее у пользователей хватает. Тарик (@trq212) из команды Claude Code в Anthropic опубликовал большой разбор: что на самом деле меняет этот параметр, сколько он стоит по времени и токенам и на каких задачах за него стоит платить. Он прогнал одни и те же задачи на разных уровнях effort в Opus 5.5 и Fable 5.1 и изучил результаты Terminal-Bench 3.0.

Что такое effort

Грубо говоря, effort сообщает модели, сколько вычислений вы готовы потратить на задачу. Тарик сравнивает это с поручением коллеге. Если дать человеку на задачу двенадцать часов, он решит, что от него ждут предельно тщательной работы. Если дать час, он принесет лучший вариант, который успеет, и будет ждать правок. Claude в любом случае старается выполнить задачу разумно, но на высоком effort он больше проверяет себя и чаще принимает решения самостоятельно.

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

Три эксперимента на простых задачах

Первый тест: расплывчатая просьба «сделай трекер тренировок». На низком effort получился журнал с простым графиком. Чем выше уровень, тем больше функций, а на максимуме появилась тепловая карта. Вместе с объемом растет и число решений, которые модель принимает за пользователя.

Второй тест: редизайн меню /config в самом Claude Code. Идея на всех уровнях была одна и та же, подменю и нормальный поиск. На low за минуту вышел интерактивный набросок, который на Claude Code почти не похож. На max работа заняла 28 минут, и на выходе был аккуратный макет в стиле продукта с разобранными сценариями. Для обсуждения идеи автору больше подошел быстрый вариант.

Третий тест: то же приложение для тренировок, но с подробной спецификацией, которую Claude сначала собрал, расспросив автора. Здесь разница между уровнями почти исчезла, реализации получились похожими.

Отсюда рабочий цикл, которым Тарик пользуется для новых фич. Он дает Claude спецификацию и просит задать уточняющие вопросы, затем реализует на low, проверяет, что модель поняла суть, дорабатывает на том же low и в конце отдает проверку и тестирование на high.

Где effort решает исход задачи

На игрушечных задачах модель справляется при любых настройках. Чтобы найти задачи, где effort отделяет успех от провала, автор взял Terminal-Bench 3.0. Это открытый бенчмарк, задачи в него присылает сообщество, и они заметно амбициознее обычной рабочей рутины: собрать 8-битную игровую консоль на Verilog под небольшую FPGA, формально доказать теорему Такенса в Lean 4, склеить 16 шардов MoE-чекпойнта так, чтобы логиты совпали с эталоном, провести ежемесячную отчетность компании по торговле внутри ЕС от начала до конца.

Главный вывод: высокий effort выигрывает там, где много скрытых краевых случаев. Показательный пример html-js-filter, задача написать HTML-санитайзер, который вычищает все способы протащить JavaScript на страницу. Fable 5.1 решил ее 1 раз из 5 на low и 5 раз из 5 на xhigh. Попытка на low длится около двух минут: фильтр пишется за один проход и проверяется на одной странице. Прогон на высоком уровне занял около 33 минут. Модель устроила ревью собственного черновика, прочитала исходники установленного парсера в поисках багов, прогнала чистые документы и стандартный набор XSS-тестов, а под конец написала фаззер.

Похожая картина с другими задачами на Opus 5.5. В mvcc-lsm-compaction нужно починить баг движка хранения по крэш-репорту и не сломать компакцию: 0 из 5 на low и 4 из 5 на xhigh. На low модель правила код, даже не собрав его и не запустив воспроизведение. На xhigh она сначала воспроизвела падение, написала рандомизированный тест против эталона без компакции и убедилась, что тесты ловят недоделанные исправления. В cli-2ph-simple, где нужен решатель задач линейного программирования на Python, результат вырос с 0 до 5 из 5: на high модель сверяла решатель с перебором на случайных задачах и замеряла время на больших. В gsea-proteomics с анализом обогащения генных наборов по протеомным данным модель на high попробовала два способа подготовки данных, заметила расхождение в результатах и разобралась в причине.

У effort есть и предел. Он хорошо лечит пропущенные краевые случаи, но почти не помогает, если модель с самого начала выбрала неверный подход.

Какой уровень выбирать

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

Переключается уровень командой /effort, в том числе посреди разговора.

Интерактивные схемы и пояснения: https://claude.dev/blog/spending-your-effort/