Adaptive Thinking в Claude Sonnet 4.6: Полное руководство для разработчиков
Освойте движок Adaptive Thinking в Claude Sonnet 4.6: параметр effort, динамическое рассуждение, оптимизация затрат и лучшие практики реализации.
Краткий обзор
Adaptive Thinking заменяет бинарный режим «расширенного мышления» Claude динамическим, адаптированным к задаче рассуждением. Используя параметр effort (low/medium/high/auto), разработчики контролируют, насколько глубоко модель рассуждает перед ответом — балансируя скорость, стоимость и интеллект для каждого запроса.
Что такое Adaptive Thinking?
Предыдущие модели Claude имели два режима: стандартный (быстрый, дешёвый) или расширенное мышление (медленный, дорогой, тщательный). Adaptive Thinking вводит спектр, позволяя модели автоматически калибровать глубину рассуждения на основе сложности задачи.
Ключевой инсайт: не каждый вопрос требует глубокого рассуждения. «Сколько будет 2+2?» не должно стоить столько же, сколько «Спроектируйте архитектуру распределённой системы».
Параметр Effort
Управляйте глубиной рассуждения с помощью параметра effort:
| Значение | Поведение | Сценарий |
|---|
| low | Минимальное рассуждение, самый быстрый ответ | Простые вопросы, форматирование, базовые задачи |
| medium | Сбалансированное рассуждение | Большинство задач программирования, анализ |
| high | Глубокое рассуждение, медленный ответ | Сложные проблемы, архитектура |
| auto | Модель решает на основе запроса | Универсальные приложения |
Реализация
import anthropicclient = anthropic.Anthropic()
# Simple task - minimal thinking
simple_response = client.messages.create(
model="claude-sonnet-4-6-20260217",
max_tokens=1024,
thinking={"type": "enabled", "effort": "low"},
messages=[{"role": "user", "content": "Format this JSON"}]
)
# Complex task - deep reasoning
complex_response = client.messages.create(
model="claude-sonnet-4-6-20260217",
max_tokens=8192,
thinking={"type": "enabled", "effort": "high"},
messages=[{"role": "user", "content": "Design a microservices architecture for..."}]
)
# Let the model decide
auto_response = client.messages.create(
model="claude-sonnet-4-6-20260217",
max_tokens=4096,
thinking={"type": "enabled", "effort": "auto"},
messages=[{"role": "user", "content": user_query}]
)
Влияние на стоимость
| Уровень Effort | Токены мышления | Относительная стоимость | Задержка |
|---|
| low | ~100-500 | 1x | ~1с |
| medium | ~500-2000 | 1.5-2x | ~2-3с |
| high | ~2000-10000 | 3-5x | ~5-15с |
| auto | Варьируется | 1-5x | Варьируется |
Токены мышления тарифицируются по ценам выходных токенов ($15/M для Sonnet 4.6). Запрос с high-effort, генерирующий 5,000 токенов мышления, добавляет ~$0.075 к стоимости.
Лучшие практики
1. Используйте Low Effort для рутинных задач
# Good: Simple extraction doesn't need deep thinkingresponse = client.messages.create(
thinking={"type": "enabled", "effort": "low"},
messages=[{"role": "user", "content": "Extract the email from: John Smith
"}] )
2. Оставляйте High Effort для сложных проблем
# Good: Architecture decisions benefit from deep reasoningresponse = client.messages.create(
thinking={"type": "enabled", "effort": "high"},
messages=[{"role": "user", "content": "Review this code for security vulnerabilities and suggest fixes"}]
)
3. Используйте Auto для пользовательских приложений
Когда вы не можете предсказать сложность запроса, auto обеспечивает хорошее поведение по умолчанию:
# Good: Chatbot where queries vary in complexityresponse = client.messages.create(
thinking={"type": "enabled", "effort": "auto"},
messages=[{"role": "user", "content": user_input}]
)
4. Реализуйте маршрутизацию Effort
def get_effort_level(task_type: str) -> str:simple_tasks = ["format", "extract", "summarize_short"]
complex_tasks = ["architecture", "security_review", "debug_complex"]
if task_type in simple_tasks:
return "low"
elif task_type in complex_tasks:
return "high"
else:
return "medium"
Доступ к содержимому мышления
Получите процесс рассуждения модели:
response = client.messages.create(thinking={"type": "enabled", "effort": "high"},
messages=[...]
)
for block in response.content:
if block.type == "thinking":
print(f"Reasoning: {block.thinking}")
elif block.type == "text":
print(f"Response: {block.text}")
Сравнение: старое vs новое
| Аспект | Extended Thinking (старое) | Adaptive Thinking (новое) |
|---|
| Управление | Бинарное вкл/выкл | Гранулярные уровни effort |
| Стоимость | Всегда дорого при включении | Пропорционально сложности |
| Задержка | Всегда медленно при включении | Масштабируется с effort |
| Оптимизация | Ручное переключение | Доступен автоматический режим |
Заключение
Adaptive Thinking превращает Claude из бинарного инструмента в нюансированного мыслителя. Сопоставляя усилия со сложностью задачи, вы можете снизить затраты на 50-80% на простых задачах, сохраняя возможность глубокого рассуждения, когда это необходимо. Начните с auto для универсальных приложений, затем оптимизируйте с явными уровнями effort по мере понимания паттернов вашей нагрузки.