auto 档在 on_base 为空的 provider 上表达不了「开」,ENABLE_THINKING=true 会静默不推理 #21
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
一句话
auto档在on_base为空的 provider 上表达不了「开推理」,而resolve_thinking的 Phase 5 又无条件放行它——于是ENABLE_THINKING=true配在 MiniMax-M3 上会静默不推理。1.3.3 已用权宜之计堵住 minimax 一段,正解待本 issue。怎么发现的
2026-09-05 T10 经 new-api 对 26 个模型逐个实测(约 500 次真实调用)时撞到。当时的判断是「
on_base={}+AUTO不注入任何参数,语义仍是『开』,因为这些模型默认都推理」——实测推翻了它: MiniMax-M3 不发任何推理参数时 5/5 轮不推理,而六个强度值 minimal/low/medium/high/xhigh/max 全部生效且彼此等价。机制
三层各让一步,合起来就是静默:
minimax.on_base = {}supported_efforts实测为(none, minimal, low, medium, high, xhigh, max),不含autoresolve_thinkingauto无条件放行,不查清单auto在请求体里是「不写effort_key」而非某个取值,可满足性只取决于on_base在不在第三层的理由在
on_base非空时成立(qwen/deepseek/zhipu/moonshot: 发enable_thinking:true或thinking.type:enabled,确实与档位无关),在on_base为空时不成立——那时「开」根本没有载体。1.3.3 做了什么(权宜)
把
minimax.on_base改回{"reasoning_effort": "medium"}(与本次换代前逐字相同),恢复旧行为。代价是退回了「库替下游选一个档」,而那正是本次工作要消灭的东西。只动了 minimax 一段。
openai/anthropic/google三段同样是on_base={},但它们涉及的模型(gpt-5.x / claude-5 / gemini-3)默认都推理(OpenRouter 记default_enabled: true或mandatory: true),未被实测覆盖(claude 撞 7 天限额、gemini 上游报错、gpt-5.4 全账号限流),故按无证据不动处理。正解的几个方向(未定,需 brainstorming + 人类门)
auto受能力表约束: 清单不含auto时报错并指路显式档位。语义最干净,但会让存量ENABLE_THINKING=true配在档位型模型上一律报错——需要评估三项目迁移影响。default_enabled的事实字段(初稿曾有default_effort,因当时无消费者被删,现在有了)。auto在「默认不推理」的模型上转为报错或映射到最省档。auto_effort字段: 由 provider 声明「auto该发什么」,minimax 填一个档。比方向 2 少一张表,但把模型级事实塞进了 provider 级声明,与既有的形态/能力分层相悖。选型时注意: 这三条都改变公共行为,按 CLAUDE.md 属 MANDATORY brainstorming + 人类确认。
验收判据
ENABLE_THINKING=true+ MiniMax-M3 时,库要么真的开启推理,要么明确报错并给出可执行档位——不允许静默不推理。且openai/anthropic/google三段在其模型被实测覆盖后,同一判据要重跑一遍。