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三段在其模型被实测覆盖后,同一判据要重跑一遍。已登记 AUTO 必须为能力成员,True 糖同约束,nearest 不代选强度;MiniMax on_base 为空,M3 True/AUTO 明确拒绝并指向显式档。受管与 raw 推理控制同值/被遮蔽也拒绝,raw-only 保留。下载包独立安装已复验 AUTO 与冲突拒绝。受影响缓存必须在首次新语义读写前更换 namespace/salt,未迁移仍可能回放旧语义。
发布:v1.3.4,main/tag 提交 af57f93adce24b43fd10b6d8e1281ab8ee43c0a8。合并后 make lint 通过;make test:1518 passed / 23 skipped / 108 deselected,95%覆盖率;定向 M2.5/M2.7 AUTO:2 passed(各5轮,并发1);Redis时间语义:18 passed。wheel/sdist 从 registry 独立下载,散列与构建一致,解包及独立 target 安装行为、README元数据通过;Release正文、包页面正文和仓库链接已亲查。
2026-09-09 用户批准不补全模型矩阵:embedding 503仍FAIL、claude-opus-5开启命题仍FAIL,UNKNOWN/身份不足/不可达/缺轮/缺下游现行配置证据保持例外,不改成PASS,不宣称三项目已完成迁移。
Release · 包页面 · 验证与例外记录
原始本轮日志:tests/outputs/134/publish-20260909/;既有红绿与独立审查见上述验证记录。