нейропоток
Промпт-инжиниринг

Adaptive Thinking в Claude: управляем мышлением модели

Adaptive thinking в Claude: разбираю effort, budget_tokens и адаптивное мышление на практике. Когда расширенное мышление помогает, а когда жрёт токены впустую.

Павел·6 мин чтения
Adaptive Thinking в Claude: управляем мышлением модели
Поделиться:TelegramVK

Попросил Claude Opus написать функцию сортировки массива. Получил ответ через 8 секунд — с блоком thinking на 4 тысячи токенов. Модель рассуждала про edge cases, сравнивала алгоритмы, взвешивала trade-offs. Для сортировки массива. Это как нанять профессора математики, чтобы он посчитал чаевые в кафе.

Adaptive thinking в Claude — механизм, который решает именно эту проблему. Модель сама определяет, насколько глубоко ей надо подумать. Сортировка массива? Без thinking, ответ за секунду. Архитектура распределённой системы? Полноценное рассуждение на 20 тысяч токенов. И всё это без ручной настройки.

Звучит просто. На практике — есть нюансы.

Три способа управлять мышлением: budget_tokens, adaptive и effort

Anthropic за последний год прошли путь от ручного управления к автоматическому. Вот как это выглядит.

budget_tokens — первый вариант, ещё из Claude 3.5. Указываешь лимит токенов на рассуждение: "budget_tokens": 8000. Модель думает, пока не упрётся в потолок. Проблема очевидная — откуда тебе знать, сколько токенов нужно для конкретной задачи? Ставишь мало — модель обрезает рассуждение на середине. Ставишь много — переплачиваешь за пустоту. На Claude Opus 4.6 и Sonnet 4.6 этот параметр deprecated. Работает, но Anthropic явно хотят от него уйти.

adaptive thinking"type": "adaptive". Модель сама решает: думать или нет, и если да — сколько. Это дефолт на Opus 4.6 и Sonnet 4.6. Простой вопрос — ноль thinking tokens. Сложная задача — модель разворачивает полноценную цепочку рассуждений. Без твоего участия.

effort — ручка поверх adaptive. Четыре значения: low, medium, high (по умолчанию), max (только Opus 4.6). Это не жёсткий лимит, а подсказка модели: насколько глубоко копать. effort: low — отвечай быстро, не заморачивайся. effort: max — думай столько, сколько нужно, не экономь.

Инфо

В API параметр effort передаётся внутри блока thinking: "thinking": {"type": "enabled", "budget_tokens": 10000} для старого способа или "thinking": {"type": "adaptive", "effort": "high"} для нового. На 4.6 моделях adaptive — рекомендуемый подход.

Когда расширенное мышление помогает, а когда мешает?

Adaptive thinking позволяет модели самой решать, нужна ли цепочка рассуждений. Но автоматика не всегда угадывает. Я прогнал разные задачи с разными уровнями effort и записал, где thinking реально влияет на качество.

Thinking помогает:

  • Сложный код — рефакторинг, архитектурные решения, дебаг неочевидных багов. С effort: high Claude находит проблемы, которые с low просто пропускает
  • STEM-задачи — математика, логика, всё где нужна цепочка рассуждений
  • Длинный креатив — сценарии, многоходовые сюжеты, где нужно удерживать контекст
  • Агентные сценарии — планирование на несколько шагов вперёд, последовательные вызовы инструментов

Thinking не помогает (и даже мешает):

  • Перевод, извлечение данных, заполнение форм — модель и так знает, что делать. Дополнительные рассуждения только добавляют латентность
  • Простые Q&A — «столица Франции?». Если модель начинает рассуждать над этим, что-то пошло не так

Вообще, закономерность простая: если ты сам можешь проверить ответ за две секунды — thinking не нужен. Если для проверки надо вчитываться и думать — скорее всего, нужен.

Данные от OpenAI подтверждают эту картину: на GPT-5 разница между reasoning effort: high и minimal — 23 раза по токенам (82 миллиона против 3.5 миллионов на тестовом наборе). При этом Intelligence Index падает с 68 до 44. Думать больше = лучше, но не линейно. После определённого порога наступают diminishing returns — по наблюдениям, выше 32 тысяч thinking tokens качество растёт уже медленно.

Совет

Правило, которое работает для меня: если задачу можно объяснить одним предложением — effort: low. Если нужно описывать контекст на абзац — high. Если сам не знаешь, правильный ли ответ получишь — max.

Практика: подбираем effort для разных задач

Моя шпаргалка. Не претендую на истину — это то, к чему пришёл методом проб.

effort: low ставлю на перевод, экстракцию, форматирование, фактологические вопросы, генерацию по шаблону. Экономия токенов в 5-10 раз по сравнению с high, ответ приходит ощутимо быстрее.

effort: medium — суммаризация, несложный код, редактирование текста, классификация. Задача не тривиальная, но и не rocket science.

effort: high — дефолт, и честно говоря, я его почти не трогаю. Код посложнее, анализ данных, написание статей, работа с неоднозначными промптами. Не знаешь, что выбрать — оставь high, не промахнёшься.

А вот effort: max (только Opus 4.6) — это уже тяжёлая артиллерия. Архитектура систем, дебаг сложных багов, юридический анализ. Модель разворачивается на десятки тысяч thinking tokens, пробует несколько подходов, перепроверяет себя. Дорого. Но когда я дебажил race condition в асинхронном коде — только max нашёл проблему, low и high пропустили.

Кстати, если работаешь со структурированными промптами — XML-структурами в промптах — то потребность в глубоком thinking снижается. Когда модель получает чёткий контекст, ей не нужно додумывать и рассуждать о том, что ты имел в виду. Хороший промпт экономит reasoning tokens.

Claude Code: think, think harder, ultrathink

Отдельная история — Claude Code. Тут управление мышлением встроено прямо в интерфейс.

Команда /effort low или /effort max — переключает уровень для всей сессии. Но есть и хитрость потоньше: trigger words прямо в промпте. Пишешь «think» — модель включает расширенное мышление. «Think hard» — копает глубже. «Think harder» — ещё глубже. А «ultrathink» — эквивалент /effort max.

Это не магия — модель буквально обучена реагировать на эти слова и думать глубже. В документации Anthropic это подтверждают.

В Claude Code есть ещё одна штука: interleaved thinking. Модель думает не одним блоком в начале, а между вызовами инструментов. Прочитала файл — подумала. Нашла баг — подумала. Написала фикс — подумала, правильный ли. Как gstack и AI-агенты в Claude Code — thinking здесь часть агентного цикла, а не одноразовая операция.

Совет

Мой подход в Claude Code: начинаю с дефолтного effort. Если вижу, что модель отвечает поверхностно или пропускает детали — пишу «think harder» в следующем сообщении. Для действительно сложных задач — сразу «ultrathink». Не трачу токены на то, что не требует глубины.

Сколько стоят reasoning tokens и как adaptive thinking экономит бюджет?

Thinking tokens тарифицируются как output.

Claude Opus 4.6: $5 за миллион входных токенов, $25 за миллион выходных (включая thinking). Запрос с effort: max может сгенерировать 30-40 тысяч thinking tokens — это $0.75-1.00 только за рассуждения. Тот же запрос с effort: low — пара тысяч токенов или вообще без thinking.

Claude Sonnet 4.6: $3 input / $15 output за миллион. Дешевле, но и effort: max для Sonnet недоступен.

Разница по деньгам между effort: low и effort: high для Opus — легко в 5-10 раз на один запрос. На масштабе тысяч запросов в день это превращается в сотни долларов.

Batch API даёт 50% скидку — если задачи не требуют мгновенного ответа, батчинг с effort: high может стоить меньше, чем real-time с effort: low.

Вообще, adaptive thinking — это не изолированная фича. Мышление модели, промпт и контекст работают вместе. У меня есть отдельный разбор про контекст инжиниринг, если хочется копнуть в эту сторону.


Adaptive thinking — это не волшебная кнопка «сделай умнее». Скорее ручка громкости на мышлении.

Мой итог после пары недель: для 70% задач дефолтный effort: high работает нормально. Для простых — low экономит деньги и ускоряет ответ. А max я использую может раз пять в день, когда реально нужно, чтобы модель посидела и подумала. Примерно как с кофе: обычный — для каждого дня, двойной эспрессо — когда правда надо.