fix: put the tier back where "on" by itself is not on
The minimax wire lost its tier value on the assumption that these models
reason by default, so injecting nothing still reads as "on". T10 measured
the real gateway and the assumption does not hold: MiniMax-M3 with no
reasoning parameter did not reason in 5 of 5 rounds, while all six
strength values worked. Existing downstreams on ENABLE_THINKING=true
went from reasoning to silently not reasoning, and the capability table
cannot catch it because phase 5 lets auto through unconditionally.
Restore on_base to the old {"reasoning_effort": "medium"} verbatim. This
is a stopgap - it hands the tier choice back to the library, which this
work set out to remove. The real fix is to constrain auto by the
capability table, a public behaviour change tracked as issue #21.
The assertions that said "minimax injects no tier on the on-tier" go
back with it; each carries a note on why it moved twice.
This commit is contained in:
@@ -117,13 +117,22 @@ DEFAULT_PROFILES: Mapping[str, ProviderProfile] = MappingProxyType(
|
||||
# 2026-08-02 经 new-api 中转实测(findings §2),2026-08-25 复测结论不变。
|
||||
# enable_thinking / thinking 两种写法均被静默丢弃(prompt_tokens 恒等于基线
|
||||
# 194),reasoning_effort 才是真开关——本段形态据此成立。
|
||||
# `on_base={}`: "开"本身不需要任何参数,档位(若模型支持)由 effort_key 附加。
|
||||
# 旧版此处硬编码 {"reasoning_effort": "medium"},那是替下游做的档位判断,
|
||||
# 且 medium 在 GLM/kimi/deepseek 的档位表里根本不存在——正是本次要消灭的
|
||||
# `on_base={"reasoning_effort": "medium"}` 是**权宜之计**(issue #21),不是本段
|
||||
# 的理想形态: 它退回了"库替下游选一个档"这件本次工作原本要消灭的事。
|
||||
# 之所以接受: 本次一度改成 `on_base={}`("开"不需要任何参数),该形态依赖
|
||||
# "模型默认就推理"这个前提,而 T10 真实网关实测推翻了它——MiniMax-M3 不发任何
|
||||
# 推理参数时 5/5 轮不推理(六个强度值 minimal..max 则全部生效且彼此等价)。
|
||||
# 于是存量配 ENABLE_THINKING=true 的下游会从"真开推理"静默变成"不推理"。
|
||||
# 取 medium 是为逐字恢复旧版的 thinking_on,与存量行为一致;M3 六档等价,
|
||||
# 故选哪档对效果无差别。
|
||||
# 正解是让 `auto` 受能力表约束(模型不支持"由模型自定"时报错并指路显式档位),
|
||||
# 属公共行为变更,已记入 gitea issue #21 待下一版处理。
|
||||
"minimax": ProviderProfile(
|
||||
name="minimax",
|
||||
thinking=ThinkingWire(
|
||||
off={"reasoning_effort": "none"}, on_base={}, effort_key="reasoning_effort"
|
||||
off={"reasoning_effort": "none"},
|
||||
on_base={"reasoning_effort": "medium"},
|
||||
effort_key="reasoning_effort",
|
||||
),
|
||||
strip_think_tags=False,
|
||||
),
|
||||
|
||||
@@ -145,10 +145,12 @@ DEFAULT_CAPABILITIES: Mapping[str, ThinkingCapability] = MappingProxyType(
|
||||
"全部观测到推理,rt 分布完全重叠(minimal 64-124 / low 55-112 / medium 51-104 / "
|
||||
"high 62-128 / xhigh 58-118 / max 57-170)——**它们是'开'的六种写法,不是六个深度档**,"
|
||||
"MiniMax 官方只有开/关两态,配哪一个都一样贵。"
|
||||
"**`auto` 已从清单移除**: minimax 的'开'在 wire 上是 on_base={}(什么参数都不注入),"
|
||||
"而 M3 的默认档实测不推理,故 auto 在这条路上表达不了'开'(N=5 全部未观测到推理)。"
|
||||
"注意 `resolve_thinking` 的 Phase 5 无条件放行 auto,故存量 ENABLE_THINKING=true 仍会"
|
||||
"静默落到不推理——那是 wire 的缺口,能力表堵不住,已记入 T10 报告待单独立项。"
|
||||
"**`auto` 已从清单移除**: 实测当时 minimax 的「开」在 wire 上是 on_base={}"
|
||||
"(什么参数都不注入),而 M3 的默认档实测不推理,故 auto 在这条路上表达不了「开」"
|
||||
"(N=5 全部未观测到推理)。`resolve_thinking` 的 Phase 5 无条件放行 auto,能力表"
|
||||
"堵不住这条,故 2026-09-05 由 wire 侧兜住: on_base 改回 {'reasoning_effort': 'medium'},"
|
||||
"存量 ENABLE_THINKING=true 恢复真开推理(权宜之计,正解见 issue #21)。"
|
||||
"本清单仍不含 auto——它记的是实测结论,不随 wire 的权宜之计变动。"
|
||||
f"历史: {_MEASURED} N=10 同样成立;enable_thinking / thinking:{{type}} 两种写法对本模型"
|
||||
"无效,reasoning_effort 才是真开关(findings 2026-08-25 §3.1/§5)。"
|
||||
"另: 2026-08-25 记录的'MiniMax 这一路已停报 completion_tokens_details'本次**不再成立**"
|
||||
|
||||
Reference in New Issue
Block a user