Попросил 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: highClaude находит проблемы, которые с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 я использую может раз пять в день, когда реально нужно, чтобы модель посидела и подумала. Примерно как с кофе: обычный — для каждого дня, двойной эспрессо — когда правда надо.



