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:
@@ -286,10 +286,15 @@ class TestResolveThinking:
|
||||
)
|
||||
|
||||
def test_phase4_only_blocks_the_off_direction(self):
|
||||
"""关不掉 ≠ 开不了: M2.x 默认就在推理,开的方向不该被拦。"""
|
||||
"""关不掉 ≠ 开不了: M2.x 默认就在推理,开的方向不该被拦。
|
||||
|
||||
期望片段 2026-09-05 由 `{}` 改成 minimax 的 `on_base` 实际值: issue #21 把
|
||||
该段的"开"改回带 medium(T2 的"开档不注入"是推定,T10 实测推翻)。本用例守的
|
||||
是 Phase 4 只拦关闭方向,注入什么由 wire 决定,故随 wire 走。
|
||||
"""
|
||||
cap = get_capability("MiniMax-M2.7")
|
||||
got = resolve_thinking(get_provider("minimax"), cap, Effort.AUTO, model="MiniMax-M2.7")
|
||||
assert got.payload == {}
|
||||
assert got.payload == {"reasoning_effort": "medium"}
|
||||
assert got.applied_effort is Effort.AUTO
|
||||
|
||||
def test_phase4_passes_when_none_is_registered(self):
|
||||
|
||||
Reference in New Issue
Block a user