Без применённого серверного промпта Claude /v1/messages сохраняет нативные thinking-блоки Claude. У Opus 5 мышление включено по умолчанию; глубину задайте через output_config.effort. Для Opus 4.8 его нужно включить явно — "thinking": {"type": "adaptive"}.
{
"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.
| Модели | Глубина в 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.6 | уровень входит в сам id: -low, -medium, -high, -xhigh. Поля для него нет |
На /v1/chat/completions полей два, и они не равнозначны. Поле reasoning_effort понимают все четыре модели, и значение уходит наверх как прислано. Поле thinking есть только у kimi-for-coding и kimi-for-coding-highspeed: у k3 и k3-256k оно отклоняется локально, до резерва и списания. На Messages все четыре модели принимают thinking по контракту Messages; в Responses используется reasoning.effort.
| Модель | Поле | Что принимается в Chat Completions |
|---|---|---|
k3 | reasoning_effort | любое непустое значение; у Kimi документированы low, high и max |
k3-256k | reasoning_effort | любое непустое значение; у Kimi документированы low, high и max |
kimi-for-coding | reasoning_effort либо thinking | thinking ровно {"type": "enabled", "keep": "all"} |
kimi-for-coding-highspeed | reasoning_effort либо thinking | thinking ровно {"type": "enabled", "keep": "all"} |
Поле необязательное. Если не передать ничего, уровень выбирает сам Kimi: по его схеме это max.
{
"model": "k3",
"max_tokens": 2048,
"reasoning_effort": "high",
"messages": [{"role": "user", "content": "Сравни два алгоритма и обоснуй выбор"}]
}{
"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" у модели K2.7 Code | 400 invalid_tool_choice |
thinking в другой форме | 400 invalid_thinking |
thinking у модели K3 | 400 invalid_thinking |
Для Chat Completions: поле reasoning_effort понимают все четыре модели. Поле thinking есть только у kimi-for-coding и kimi-for-coding-highspeed, и у моделей K3 оно отклоняется локально, до резерва и списания.