推理强度与能力声明
配置 effort、能力档位与关闭行为,辨别不同协议和原始参数的优先级。
generationConfig.reasoning 控制推理配置;capabilities.reasoning 描述模型支持的格式、档位和默认值。两者用途不同,原始请求字段又可能覆盖它们。
声明未知模型能力
对目录未识别的别名,可在模型条目给出完整声明:
{
"id": "company-model-v2",
"baseUrl": "https://gateway.example.com/v1",
"envKey": "COMPANY_MODEL_API_KEY",
"capabilities": {
"reasoning": {
"profile": "openai-effort",
"efforts": ["low", "medium", "high"],
"defaultEffort": "medium"
}
}
}示例假定网关支持该格式,实际能力需与端点一致。已知模型可只覆盖部分字段,其余继承所选端点的目录能力;efforts 会替换支持档位子集,defaultEffort 必须属于该子集。
官方 profile 按协议分组:Chat 支持 openai-effort、openai-reasoning、deepseek-openai、dashscope-effort、dashscope-thinking、qwen-chat-template;Responses 使用 openai-reasoning;Anthropic 使用 anthropic-manual、anthropic-adaptive、deepseek-anthropic;Gemini/Vertex 使用 gemini。仅有开关的 profile 不声明档位和默认 effort。
能力修改在下一条用户提示前生效,该提示的重试与子智能体沿用捕获的推理配置。无效更新保留旧配置并记录错误,不应通过不断重启掩盖错误声明。
effort 转换不是各处相同
以下是 Qwen Code 文档描述的转换规则,不是对所有上游模型能力的统一承诺:
| 路由 | 配置转换要点 |
|---|---|
| DashScope qwen3.8-max 系列 | 使用 reasoning_effort;配置 max 会限制为 xhigh |
| 真实 api.deepseek.com | 嵌套 effort 的 low/medium 转 high,xhigh 转 max;其他主机不因模型同名自动获得该规则 |
| Z.ai 主机上的 GLM-5.2+ | 可用到 max;旧型号或其他主机保持通用上限 |
| 已知 GPT 模型 | 按已知模型的上下限调整档位;OpenRouter 使用嵌套 reasoning |
| OpenAI Responses | 使用 reasoning 对象及 encrypted_content,请求档位原样传递 |
| 真实 Anthropic 端点 | 该页实现说明将 max 限制到 high;DeepSeek Anthropic 兼容端点则保留 max |
| Gemini | low 对应 LOW,high/max 对应 HIGH,其余映射为未指定级别 |
能力声明可调整已知模型的格式和可用档位。不要只看 id 中含 deepseek/glm 就推断最大档位;端点主机也参与判断。
samplingParams 和 extra_body
一般 OpenAI 兼容路径在存在 samplingParams 时会原样使用它,跳过单独 reasoning 注入;仅给 temperature 也可能导致独立 effort 不生效。
已知 GPT、显式推理能力声明以及 DashScope Qwen 有专门例外。GPT 可以保留与推理无关的采样参数,同时按能力转换 effort;DashScope 则直接读取 reasoning 并转为 reasoning_effort 或 enable_thinking。
在 qwen3.8-max 上,冲突字段通常按 extra_body > samplingParams > reasoning 取值;同层同时给 reasoning_effort 与 thinking_budget 时保留前者。旧 Qwen 混合模型对不兼容字段有不同处理,不应复用整个请求体模板。
原始 reasoning 覆盖可能阻止 /effort 的显式改动;此时会报告失败而不保存一个实际无效的偏好。需要改档位时,先删除阻止它的原始覆盖。
关闭与预算
reasoning: false 只对允许关闭思考的模型生效。强制思考模型不会因此关闭。真实 DeepSeek 路由会发送显式 disabled thinking,而本地同名模型需按推理框架配置原生开关。
OpenRouter 使用自身的嵌套禁用字段;其他主机不自动获得该特例。Anthropic 与 Gemini 转换器直接读取 reasoning,不受一般 OpenAI samplingParams 跳过规则影响。
可以设置 reasoning: { "effort": "high", "budget_tokens": 50000 }。官方说明 Anthropic 将其转为 thinking.budget_tokens;OpenAI/DeepSeek 当前服务侧忽略该预算字段,主要使用 effort。采用 adaptive profile 时,旧 manual budget 不会使其改回手动模式。