Руководство по настройке Adaptive Thinking
Механизм адаптивного рассуждения для Claude Opus 4.7 / Sonnet 4.6 / Haiku 4.5: использование параметров thinking + effort, отличия от устаревшего budget_tokens, баланс качества и стоимости
Руководство по настройке Adaptive Thinking¶
Adaptive Thinking (адаптивное рассуждение) — это новое поколение режима рассуждения в семействах Claude 4.6/4.7: модель сама решает, когда подключать рассуждение и сколько токенов на него потратить, и разработчику не нужно заранее задавать фиксированный бюджет. В сочетании с параметром effort можно грубо управлять глубиной рассуждения. Этот документ — руководство по соответствующему API, матрице поддержки моделей, а также по балансу качества и стоимости.
Ключевые отличия от прежнего Extended Thinking¶
| Параметр | Прежний Extended Thinking (4.5 и ранее) | Adaptive Thinking (4.6 / 4.7) |
|---|---|---|
| Параметр включения | thinking={"type": "enabled", "budget_tokens": N} |
thinking={"type": "adaptive"} |
| Управление бюджетом | Фиксированный лимит токенов (budget_tokens обязан быть < max_tokens) |
Модель регулирует автоматически, грубая настройка через effort |
| Чередование с вызовами инструментов | По умолчанию не чередуется (требуется beta-заголовок interleaved-thinking-2025-05-14) |
Чередуется автоматически (beta-заголовок не нужен) |
| Совместимость с Opus 4.7 | ❌ 400 error (budget_tokens удалён) |
✅ Единственный поддерживаемый режим |
| Совместимость с Sonnet 4.6 | ⚠️ deprecated (всё ещё работает, но не рекомендуется) | ✅ Рекомендуется |
Краткое правило: для моделей семейств 4.6 / 4.7 используйте adaptive; budget_tokens — только для 4.5 и более ранних.
Матрица поддержки моделей¶
| Модель | adaptive thinking | budget_tokens | параметр effort |
|---|---|---|---|
claude-opus-4-7 |
✅ Единственный способ включения | ❌ 400 error | ✅ low / medium / high / xhigh / max |
claude-sonnet-4-6 |
✅ Рекомендуется | ⚠️ Ещё работает, но deprecated | ✅ low / medium / high |
claude-opus-4-6 |
✅ Рекомендуется | ⚠️ Ещё работает, но deprecated | ✅ low / medium / high / max |
claude-haiku-4-5 |
✅ Поддерживается | ❌ Не поддерживается | ❌ Параметр effort вызовет ошибку |
claude-sonnet-4-5 и ранее |
❌ Не поддерживается | ✅ Используйте этот | ❌ |
При доступе через QCode.cc все указанные модели доступны (проверено на практике).
Параметр effort: грубый регулятор глубины рассуждения¶
effort управляет общей интенсивностью adaptive thinking (включая токены на рассуждение, число вызовов инструментов и подробность ответа).
| effort | Сценарий применения | Относительная стоимость |
|---|---|---|
low |
Простые вопросы, суб-агенты, чувствительность к задержкам | 1× |
medium |
Обычное программирование, поиск по документации (большинство ежедневных задач) | 1.5-2× |
high |
Сложное рассуждение, многофайловый рефакторинг (по умолчанию) | 2-3× |
xhigh |
Долгоиграющие agent-воркфлоу (только для Opus 4.7, по умолчанию в Claude Code) | 3-4× |
max |
Приоритет максимального качества, стоимость вторична (только Opus 4.6 / 4.7) | 5× |
Эмпирическое правило: high — это «золотая середина» для большинства интерактивных задач программирования; xhigh имеет наилучшее соотношение цены и качества в длинных agent-loop'ах (например, многошаговое ревью кода, глубокое исследование); max стоит включать только тогда, когда правильность намного важнее стоимости (например, генерация продакшен-кода, ключевые архитектурные решения).
Примеры вызова API¶
Python (anthropic SDK)¶
import anthropic
client = anthropic.Anthropic(
base_url="http://103.236.53.153/api",
api_key="cr_xxxxxxxx",
)
response = client.messages.create(
model="claude-opus-4-7",
max_tokens=16000,
thinking={"type": "adaptive"},
output_config={"effort": "xhigh"},
messages=[{"role": "user", "content": "重构 user service 模块的认证逻辑..."}],
)
for block in response.content:
if block.type == "thinking":
print(f"[思考] {block.thinking}")
elif block.type == "text":
print(f"[回答] {block.text}")
TypeScript (@anthropic-ai/sdk)¶
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
baseURL: "http://103.236.53.153/api",
apiKey: "cr_xxxxxxxx",
});
const response = await client.messages.create({
model: "claude-opus-4-7",
max_tokens: 16000,
thinking: { type: "adaptive" },
output_config: { effort: "xhigh" },
messages: [{ role: "user", content: "重构 user service..." }],
});
Claude Code CLI¶
В CLI значение effort переключается клавишей Tab; текущий effort отображается в строке статуса. По умолчанию для Opus 4.7 установлено xhigh, можно вручную понизить до medium для экономии токенов.
Отображение содержимого рассуждения¶
В Opus 4.7 по умолчанию текст рассуждения не отображается (thinking.display: "omitted"), оно происходит только внутри. Если вы хотите показывать процесс рассуждения в UI:
thinking={"type": "adaptive", "display": "summarized"}
display: "summarized" заставляет модель выдавать сводку рассуждения (видимые thinking blocks); omitted только учитывает токены рассуждения, но не выводит текст. В Sonnet 4.6 / Haiku 4.5 по умолчанию используется summarized.
Task Budgets (Opus 4.7 Beta)¶
Если вы запускаете agent loop и хотите задать глобальный лимит на весь раунд (включая рассуждение + инструменты + финальный вывод), используйте task_budget:
response = client.beta.messages.create(
betas=["task-budgets-2026-03-13"],
model="claude-opus-4-7",
max_tokens=64000,
thinking={"type": "adaptive"},
output_config={
"effort": "high",
"task_budget": {"type": "tokens", "total": 128000},
},
messages=[...],
)
Модель видит обратный отсчёт оставшегося бюджета и сама регулирует поведение, чтобы не выйти за лимит. Минимальное значение total — 20 000.
Рекомендации по мониторингу стоимости¶
После включения adaptive thinking растёт расход входных / выходных токенов, и его стоит отслеживать:
print(response.usage)
# Обращайте внимание на: input_tokens、output_tokens、cache_read_input_tokens
# Adaptive thinking 不会单独计费 thinking tokens —— 它们计入 output_tokens
Для пользователей QCode.cc запросы передаются на probe.qcode.cc (только узел прямого подключения Шэньчжэнь 103.236.53.153/api) — там можно посмотреть соотношение input / output / тратится-на-рассуждение для каждого запроса.
Часто задаваемые вопросы¶
Как пересчитать budget_tokens при переходе на adaptive thinking?¶
Линейного соответствия нет. budget_tokens=8000 не равен какому-то определённому уровню effort. Рекомендуется начинать с effort: "medium" и затем подстраивать в зависимости от качества ответа и расхода токенов. Если жёсткий лимит обязателен — используйте task_budget (см. выше).
Мой запрос к Opus 4.7 возвращает 400 с сообщением, что budget_tokens недопустим¶
Замените все thinking={"type": "enabled", "budget_tokens": N} на thinking={"type": "adaptive"}. Поле budget_tokens полностью удалено в Opus 4.7 (любое значение даст 400).
Стоит ли продолжать использовать budget_tokens в Sonnet 4.6?¶
Не рекомендуется. В новом коде используйте только adaptive thinking. budget_tokens ещё работает в 4.6, но это deprecated-путь, который будет удалён в одной из будущих версий.
Как изменить effort в Claude Code CLI?¶
Значение effort, отображаемое в строке статуса CLI, переключается клавишей Tab; постоянное значение по умолчанию задаётся в ~/.claude/settings.json в поле "effort".
Дальнейшие шаги¶
- Руководство по выбору модели — сравнение цен и возможностей моделей
- Лучшие практики — техники промптов для большого контекста и agent-воркфлоу
- Эндпоинты и форматы API — полная таблица доменов QCode.cc
- Полное руководство по Claude Code — все возможности CLI