Reasoning токены
Размышление у Claude Opus 5 и Sonnet 5 включено по умолчанию; глубина — через reasoning_effort или объект reasoning, ход мысли — в reasoning_details, биллинг — как за выходные токены.
Серия reasoning-моделей (OpenAI o1, DeepSeek R1, Claude с включённым thinking) перед основным ответом тратит токены на «внутреннее размышление». Эти reasoning-токены не входят в choices[0].message.content, но учитываются в счёте.
Когда использовать
Reasoning-модели лучше справляются с задачами, требующими многошагового рассуждения:
- Математика, логика, доказательства.
- Анализ кода и поиск багов.
- Сложные стратегические решения с несколькими переменными.
- Юридические и научные тексты с цепочкой выводов.
Для коротких ответов (классификация, переформулирование, простые вопросы) размышление избыточно: тратит больше токенов и даёт тот же результат.
Claude Opus 5 и Sonnet 5: размышление включено по умолчанию
У моделей anthropic/claude-opus-5 и anthropic/claude-sonnet-5 режим размышления работает без дополнительных параметров — так же, как в официальном API Anthropic: модель сама решает, сколько «подумать» над задачей (adaptive thinking), а глубина по умолчанию соответствует уровню high. У остальных моделей Anthropic (Opus 4.8, Sonnet 4.6 и старше) размышление по умолчанию выключено — включайте его параметром из следующего раздела.
Управление
Глубину размышления задаёт параметр reasoning_effort (как в OpenAI API) или расширенный объект reasoning — оба работают на всех моделях каталога одинаково:
curl -s https://api.hubris.pw/v1/chat/completions \
-H "Authorization: Bearer sk-gw-..." \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-opus-5",
"messages": [{"role": "user", "content": "Если есть число, простое и сумма цифр которого тоже простое — какое наименьшее?"}],
"reasoning_effort": "low"
}'| Параметр | Значения | Что делает |
|---|---|---|
reasoning_effort | "low", "medium", "high", "xhigh", "max" | Глубина размышления. low — быстрее и дешевле, high — уровень по умолчанию у Claude 5, xhigh и max — ещё глубже для самых сложных агентных задач (Claude Opus 5, Sonnet 5, GPT-5.x); у моделей без таких уровней сводятся к ближайшему. Принимаются также "minimal" и "none". |
reasoning.effort | то же | То же самое в форме объекта. |
reasoning.max_tokens | целое число | Бюджет токенов на размышление вместо уровня. |
reasoning.exclude | true | Модель размышляет, но текст размышлений в ответ не попадает — только итог. |
reasoning.enabled | false | Полностью выключить размышление. |
Стоит ли выключать? На Claude Opus 5 — не советуем: с выключенным размышлением модель нередко пишет ход мысли прямо в ответ (в тегах <thinking>) и тратит те же токены, а качество ниже. Чтобы ответ был быстрее и дешевле, ставьте "reasoning_effort": "low"; чтобы скрыть ход мысли — "reasoning": {"exclude": true}.
Модели, у которых режима размышления нет, параметр игнорируют или отвечают ошибкой валидации — проверьте карточку модели в каталоге.
Биллинг
Токены размышления входят в completion_tokens и оплачиваются по обычной цене выходных токенов модели:
{
"usage": {
"prompt_tokens": 50,
"completion_tokens": 1200,
"total_tokens": 1250,
"completion_tokens_details": {
"reasoning_tokens": 1100
}
}
}В примере из 1200 completion-токенов 1100 ушли на размышление и только 100 — на итоговый ответ. Это нормально для сложных задач: модель «обдумывает» дольше, чем пишет. Поле completion_tokens_details.reasoning_tokens — справочное; денежная стоимость такая же, как у обычных completion-токенов.
Как читать ответ
Ход мысли приходит рядом с ответом — в поле reasoning (текст) и reasoning_details (структурированные блоки):
{
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "Ответ: 23 (простое, сумма цифр 5 — простое)",
"reasoning": "Перебираю простые числа по возрастанию и проверяю сумму цифр…",
"reasoning_details": [
{
"type": "reasoning.text",
"text": "Перебираю простые числа по возрастанию и проверяю сумму цифр…",
"format": "anthropic-claude-v1",
"index": 0
}
]
},
"finish_reason": "stop"
}]
}Если ход мысли вам не нужен — передайте "reasoning": {"exclude": true}, и этих полей в ответе не будет. В многоходовых диалогах с инструментами можно возвращать reasoning_details в истории как есть — они не мешают.
Стриминг
В потоке размышление приходит первым: чанки с delta.reasoning и delta.reasoning_details, затем чанки с delta.content. Первый чанк появляется, как только модель начала думать, — показывайте его пользователю как индикатор «модель размышляет». Итоговый чанк с usage содержит reasoning_tokens.
Что дальше
- POST /v1/chat/completions — полная схема параметров.
- Цены — формула счёта.
Обновлено:
Аудио в чате (запись на вход, голос на выход)
Модель слушает аудиозапись и рассуждает о ней — либо отвечает голосом. Content-part input_audio, modalities audio, стриминг delta.audio.
Кеширование промптов
Как работает кеш промптов, почему cached_tokens бывает 0 и как добиться стабильной экономии на повторных запросах.