Перейти к содержанию
Справочник APIThinking / effort

Thinking / effort

Параметры размышления, бюджет ответа и особенности выбранного API.

Протокол модели

Нативный thinking без серверного промпта

Без применённого серверного промпта Claude /v1/messages сохраняет нативные thinking-блоки Claude. У Sonnet 5.5 adaptive thinking включён по умолчанию с effort high, у Haiku 5.5 — с effort medium; у Opus 5 мышление тоже включено по умолчанию. Глубину задайте через output_config.effort. Для Opus 4.8 его нужно включить явно — "thinking": {"type": "adaptive"}.

json
{
  "model": "claude-opus-5",
  "max_tokens": 4096,
  "thinking": {"type": "adaptive"},
  "output_config": {"effort": "medium"},
  "messages": [{
    "role": "user",
    "content": "Сравни два алгоритма и обоснуй выбор"
  }]
}
effortКогда
lowпростые и чувствительные к задержке задачи
mediumбаланс качества и расхода
highсложные задачи; значение по умолчанию
xhigh / maxсамые сложные coding и agentic-задачи на поддерживающих моделях

В ответе thinking приходит отдельным блоком вместе с полем signature, после него — обычный text. В streaming используются thinking_delta и signature_delta.

GPT-6.1 Sol, GPT-6 Sol и Luna

Для gpt-6.1-sol Guard использует default effort low и поддерживает low, medium, high, xhigh, max. Значения none, minimal и прямой ultra отклоняются с 400. Raw native catalog рекламирует ultra, поэтому клиент Codex может показать этот уровень и сам перевести его в max; это не поддерживаемое значение прямого API. GPT-6 Sol и GPT-6 Luna по-прежнему используют default medium и поддерживают none, low, medium, high, xhigh, max; none подтверждено с reasoning_tokens: 0, хотя native dropdown его не показывает.

Kimi, Composer и Grok

МоделиГлубина в Chat Completions
k3, k3-256kполе reasoning_effort с любым непустым значением; сам Kimi документирует уровни low, high и max. Поле thinking эти модели не принимают, оно отклоняется локально
kimi-for-coding, kimi-for-coding-highspeedполе thinking ровно в виде {"type": "enabled", "keep": "all"}; поле reasoning_effort они тоже принимают, как и обе модели K3
Composer 2.5уровней нет
Grok 4.7 и 4.6уровень входит в сам id: -low, -medium, -high, -xhigh. Отдельного поля для него нет; у 4.7 все восемь id используют окно 256K

Kimi: глубина в Chat Completions

На /v1/chat/completions полей два, и они не равнозначны. Поле reasoning_effort понимают все четыре модели, и значение уходит наверх как прислано. Поле thinking есть только у kimi-for-coding и kimi-for-coding-highspeed: у k3 и k3-256k оно отклоняется локально, до резерва и списания. На Messages все четыре модели принимают thinking по контракту Messages; в Responses используется reasoning.effort.

МодельПолеЧто принимается в Chat Completions
k3reasoning_effortлюбое непустое значение; у Kimi документированы low, high и max
k3-256kreasoning_effortлюбое непустое значение; у Kimi документированы low, high и max
kimi-for-codingreasoning_effort либо thinkingthinking ровно {"type": "enabled", "keep": "all"}
kimi-for-coding-highspeedreasoning_effort либо thinkingthinking ровно {"type": "enabled", "keep": "all"}

Поле необязательное. Если не передать ничего, уровень выбирает сам Kimi: по его схеме это max.

json
{
  "model": "k3",
  "max_tokens": 2048,
  "reasoning_effort": "high",
  "messages": [{"role": "user", "content": "Сравни два алгоритма и обоснуй выбор"}]
}
json
{
  "model": "kimi-for-coding",
  "max_tokens": 2048,
  "thinking": {"type": "enabled", "keep": "all"},
  "messages": [{"role": "user", "content": "Найди ошибку в этой функции"}]
}
Что отправлено в Chat CompletionsЧто придёт в ответ
reasoning_effort пустой строкой или не строкой400 invalid_reasoning_effort
tool_choice: "required" у kimi-for-coding и kimi-for-coding-highspeed400 invalid_tool_choice
thinking в другой форме400 invalid_thinking
thinking у модели K3400 invalid_thinking

Для Chat Completions: поле reasoning_effort понимают все четыре модели. Поле thinking есть только у kimi-for-coding и kimi-for-coding-highspeed, и у моделей K3 оно отклоняется локально, до резерва и списания.

Thinking в GLM

У трёх API нет одного универсального переключателя. Guard сохраняет исходные поля и события thinking/reasoning выбранного протокола без перевода.

APIЧто подтверждено
Chatthinking: {"type":"disabled"} отключает thinking; usage показывает completion_tokens_details.reasoning_tokens.
MessagesNative thinking/tool blocks, если модель их вернула, нужно сохранять целиком при следующем tool turn.
ResponsesReasoning приходит отдельными items/events; output_tokens_details.reasoning_tokens входит в общий output.
json
{
  "model": "glm-5.3",
  "messages": [{"role": "user", "content": "Reply briefly"}],
  "max_tokens": 4096,
  "thinking": {"type": "disabled"}
}

Reasoning расходует output budget и оплачивается как output. В Responses первые SSE-кадры могут содержать только reasoning, а видимый текст прийти позже.

Размышления Gemini

Размышления Gemini полностью выключить нельзя. Уровень задаётся полем выбранного API.

APIПоле уровняДополнительно
Chat Completionsreasoning_effortдругих полей нет
Responsesreasoning.effortс reasoning.summary: "auto" модель отдаёт краткое изложение размышлений
Messagesoutput_config.effortполе thinking допускает {"type": "adaptive"} с необязательным display или {"type": "enabled"} без других полей, в том числе без budget_tokens; display: "omitted" вместе с adaptive прячет текст размышлений
МодельЗначения уровняПо умолчанию
gemini-4-argonlow, medium, highhigh
gemini-3.8-flashlow, medium, highmedium

Другое значение уровня получает ошибку 400 с кодом invalid_request (в Chat Completions и Responses — param: "reasoning_effort"); Guard не подменяет его другим. Остальные настройки, которых у модели нет (например, выключение размышлений), тоже получают понятную ошибку, а не подмену.

Размышления Muse

Уровень размышлений задаётся полем выбранного API. Полного текста размышлений Muse не возвращает; в Responses с reasoning.summary: "auto" Meta может вернуть их краткое изложение (элемент reasoning с полем summary).

APIПоле уровня
Chat Completionsreasoning_effort
Responsesreasoning.effort
Messagesoutput_config.effort

Значения уровня: minimal, low, medium, high, xhigh, max. Значение none не принимается и получает отказ.

Разделы

На этой странице