В Claude Code thinking отвечает за дополнительное внутреннее рассуждение модели перед ответом и между действиями.
Это влияет на четыре вещи:
- качество анализа;
- расход токенов;
- скорость ответа;
- количество и глубину tool calls.
Важно: thinking не делает модель “умной” сам по себе. Он просто даёт модели больше пространства для рассуждения. Если задача не требует сложного анализа, дополнительное рассуждение может только увеличить расход.
Что делает thinking
Когда thinking включён, модель может тратить дополнительные токены на внутренний анализ:
- построение плана;
- проверку гипотез;
- выбор следующего действия;
- оценку рисков перед изменением файлов;
- анализ результатов после tool calls.
В Claude Code это особенно заметно в агентном режиме, где модель не просто отвечает текстом, а работает с проектом: читает файлы, ищет по коду, запускает команды и принимает решения между шагами.
Чем больше reasoning-бюджет, тем больше модель может рассуждать перед следующим действием.
Что делает effort
effort — это уровень вычислительного усилия модели.
Обычно используются значения:
low
medium
high
xhigh
Упрощённо:
| Effort | Поведение |
|---|---|
low |
Быстрее, меньше рассуждения, меньше tool calls |
medium |
Баланс для обычной разработки |
high |
Больше анализа, больше проверок, выше расход |
xhigh |
Максимум рассуждения для сложных агентных задач |
На практике effort влияет не только на качество ответа, но и на стиль поведения Claude Code. При низком уровне модель чаще ограничивается минимальными действиями. При высоком — активнее собирает контекст и чаще проверяет несколько связанных файлов.
Почему thinking увеличивает расход токенов
Основной технический момент: reasoning тоже считается токенами.
Даже если пользователь не видит полный ход рассуждений, модель всё равно может их генерировать внутри. Поэтому короткий финальный ответ не означает маленький расход.
Отдельно важно не путать две настройки:
{
"showThinkingSummaries": false
}
Эта настройка влияет только на отображение summaries. Она не отключает само рассуждение и не является способом экономии токенов.
А вот эти настройки уже влияют на поведение:
{
"alwaysThinkingEnabled": false,
"effortLevel": "medium"
}
alwaysThinkingEnabled: false отключает постоянное использование extended thinking по умолчанию.
effortLevel: "medium" задаёт умеренный уровень reasoning между сессиями.
Как thinking влияет на скорость
Чем выше thinking/effort, тем дольше модель может отвечать.
Причина простая: перед ответом или следующим действием модель тратит больше времени на reasoning.
Это особенно заметно в задачах, где Claude Code работает итерационно:
- прочитал файл;
- подумал;
- сделал поиск;
- подумал;
- открыл ещё файл;
- снова подумал;
- предложил изменение.
При high и xhigh таких промежуточных рассуждений может быть больше. Качество анализа может вырасти, но latency тоже увеличится.
Как effort влияет на tool calls
В Claude Code effort может влиять на то, насколько активно модель использует инструменты.
При низком effort модель может:
- реже делать
Grep; - меньше читать связанные файлы;
- быстрее завершать задачу;
- сильнее полагаться на первый найденный контекст.
При высоком effort модель обычно:
- шире собирает контекст;
- проверяет соседние классы;
- чаще смотрит тесты, routes, config, migrations;
- дольше принимает решение перед изменениями.
Это важно для больших проектов. Если задача зависит от нескольких частей системы, низкий effort может привести к неполному анализу.
Настройки Claude Code
В Claude Code есть настройка:
{
"alwaysThinkingEnabled": true
}
Она включает thinking по умолчанию.
Если цель — снизить расход токенов, постоянный thinking лучше отключить:
{
"alwaysThinkingEnabled": false
}
Уровень effort можно задать так:
{
"effortLevel": "medium"
}
Или менять внутри Claude Code командой:
/effort low
/effort medium
/effort high
/effort xhigh
Также thinking можно отключать через переменную окружения:
CLAUDE_CODE_DISABLE_THINKING=1
Но если используется обычная работа через /config, лучше менять настройки штатно через Claude Code, а не править всё вручную.
Рекомендуемый режим для ежедневной разработки
Для постоянной работы с кодом оптимальный базовый вариант:
{
"alwaysThinkingEnabled": false,
"effortLevel": "medium"
}
Это снижает фоновый расход токенов и оставляет нормальное качество для обычных задач.
Для отдельных сложных задач можно временно поднять effort:
/effort high
xhigh имеет смысл использовать только точечно, когда нужно максимальное рассуждение и расход токенов не критичен.
Что учитывать при работе через прокси
Если Claude Code используется через прокси и алиасы моделей, например:
ANTHROPIC_DEFAULT_SONNET_MODEL=code
ANTHROPIC_DEFAULT_OPUS_MODEL=brain
ANTHROPIC_SMALL_FAST_MODEL=fast
нужно учитывать capabilities модели.
Claude Code может определять поддержку функций по ID модели. Если вместо стандартного имени используется кастомный alias, клиент может не понять, поддерживает ли модель:
effort;thinking;adaptive_thinking;interleaved_thinking.
Из-за этого возможны ситуации:
- параметр передаётся, но модель его игнорирует;
- прокси принимает параметр, но не транслирует его провайдеру;
- модель не поддерживает нужный формат thinking;
- Claude Code отключает часть поведения, потому что не распознал capabilities;
- расход токенов отличается от ожидаемого.
Для схемы с алиасами лучше явно описывать возможности моделей на стороне прокси, если он это поддерживает.
Старый и новый формат thinking
У Claude-моделей есть разные режимы reasoning.
В старых схемах использовался формат с явным бюджетом:
{
"thinking": {
"type": "enabled",
"budget_tokens": 4096
}
}
В новых моделях Anthropic постепенно смещается к adaptive thinking и управлению через effort.
Поэтому при работе через сторонних провайдеров возможны разные варианты:
- модель поддерживает thinking напрямую;
- модель поддерживает только effort;
- прокси эмулирует параметр;
- параметр игнорируется;
- запрос падает с ошибкой формата.
Это нужно проверять на конкретной модели и конкретном провайдере.
Короткий вывод
thinking и effort в Claude Code управляют глубиной рассуждения модели.
Больше reasoning — выше шанс получить качественный анализ, но больше расход токенов и выше задержка.
Для ежедневной разработки разумная базовая настройка:
{
"alwaysThinkingEnabled": false,
"effortLevel": "medium"
}
Для сложных задач effort лучше повышать вручную:
/effort high
showThinkingSummaries: false не экономит токены. Эта настройка только скрывает отображение summaries.
Если Claude Code работает через прокси и алиасы моделей, нужно отдельно проверить поддержку thinking, effort и capabilities на стороне прокси.