前言
在zcode里配置使用MiniMax-M3默认的zcode配置会报错:
Turn execution failed
provider=x-x-x-x model=MiniMax-M3 request=x-x-x-x reason=invalid_request status=400 retryable=false
invalid params, invalid thinking.type: "enabled" (allowed: adaptive, disabled) (2013)
出现这个错误的原因就是zcode的默认『推理参数映射』配置情况下

MiniMax M3 的 thinking.type 只接受 "adaptive" 或 "disabled",而你当前的 zcode 配置在 reasoningLevel == "enabled" 时会错误地映射为 "enabled"。同时,M3 会拒绝 reasoning_effort 参数,修改时也需要一并移除。
{
"thinking": {
"type": reasoningLevel == "disabled" || reasoningLevel == "none" ? "disabled" : "enabled"
},
"enable_thinking": reasoningLevel != "disabled" && reasoningLevel != "none",
"reasoning_effort": reasoningLevel == "disabled" ? "none" : reasoningLevel == "enabled" ? "high" : reasoningLevel,
"reasoning": {
"effort": reasoningLevel == "disabled" ? "none" : reasoningLevel == "enabled" ? "high" : reasoningLevel
}
}
解决办法
修改默认的zcode的『推理参数映射』配置为如下
{
"thinking": {
"type": reasoningLevel == "disabled" || reasoningLevel == "none" ? "disabled" : "adaptive"
},
"enable_thinking": reasoningLevel != "disabled" && reasoningLevel != "none",
// 对于 MiniMax-M3,不要发送 reasoning_effort / reasoning.effort
// 如果必须保留字段结构,可设为 null 或根据模型条件省略
"reasoning_effort": null,
"reasoning": {
"effort": null
}
}
实际使用的时候去掉注释的两行即可。
📌 关键改动说明
-
thinking.type映射修正:原来reasoningLevel == "enabled"会产出"enabled",现在统一改为"adaptive"。MiniMax M3 的 OpenAI 兼容端点只认adaptive或disabled,网关层也常采用enabled → adaptive的重写策略来修复此类 400 错误。 -
移除
reasoning_effort:M3 模型不支持reasoning_effort参数,发送它会被直接拒绝。DeepSeek-Reasonix 等工具在适配 M3 时明确“omitsreasoning_effort(M3 rejects it)”。因此reasoning_effort和reasoning.effort都应设为null或完全省略。 -
enable_thinking逻辑:保留原有判断即可,它只影响布尔标记,不直接对应 MiniMax 的thinking.type枚举值。
⚠️ 特例:MiniMax-M3.1-Flash-Preview
如果你使用的不是 MiniMax-M3,而是 MiniMax-M3.1-Flash-Preview,则情况不同:该模型支持 reasoning_effort,可取值为 low、medium、high、xhigh、max,默认 max,但不支持 none。此时可以保留 reasoning_effort,但需确保其值在合法范围内,且不要传 "none"。
修改完成后就可以在输入框界面看到思考等级的选择了







