Repository navigation
Reasoning Effort “Default” is actually “off” for MiMo / Kimi models #9704
Replies: 2 comments 1 reply
|
Thanks for the write-up — I checked the chain against the current 1. The synthetic entry is narrower than "every
2. Publishing a default is not only a picker fix — it becomes the effective effort for every call on that route.
3. The picker is not the only reader, and one method does not cover them all. If a deployment wants this before upstream lands, the seam exists:
Anything doing this must also leave alone a route that already declares Related but a different defect: |
|
A plugin-shaped workaround, for the case the profile default cannot cover. Published: Setting npm install @argszero/dsh-effort-default-fallbackMount the shipped patch, then list the routes: - insert:
- id: effort-default-fallback
name: '@argszero/dsh-effort-default-fallback'
config:
mode: enforce # observe (the default) counts the same decisions and changes nothing
defaults:
xiaomi: high
moonshot/kimi-k2-thinking: medium
Two things from building it that bear on the fix above:
Neither changes the complaint: "Default" should not mean "off", and the narrowest fix is still that the picker should not offer a row the route cannot honour. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Where: DeepSeek Harness ·
llm-pi-ai(third-party providers and custom gateways)Summary
The extra Effort item labeled “Default” shows up on
llm-pi-aimodels that publish a reasoning ladder and have no profiledefaultEffort— typically toggle models (Xiaomi MiMo, Moonshot/Kimi). Models with no ladder offer no effort control at all.Three faces of one defect, fixed together (the last two are one idea: empty ≡ off on this path):
defaultEffortis missing.Toggle models that think unless told otherwise are hit hardest: users expect “Default” to mean “on,” and get “off” with no error.
Chain:
What you see
llm-pi-airoutes.reasoningincordis.patch.yml.reasoning_content. Usually no error.Same on every model that publishes a ladder without a profile
defaultEffort— Xiaomi is the clearest case, not the only one.Where to look
packages/client/ui-model-selection/src/client/ModelSelect.tsxdefaultEffort === undefined, the picker inserts{ effort: undefined, label: 'Default' }packages/llm/llm-pi-ai/src/adapter.ts—profileOptions()'off'and unset both become no reasoning field before pi-aipackages/llm/llm-pi-ai/src/adapter.ts—describableReasoningLevel()defaultEffortis only published when the profile setsreasoningpackages/llm/llm-deepseek/src/model-info.tsdefaultEffort— no synthetic “Default” therepi-ai’s “missing effort means off” is taken as given here; this report is only that DSH must not offer a “Default” that lands on it.
Workaround
“Default” disappears; the picker starts on “High”. If a session already saved “Off”, pick “High” once.
Suggested fix
Picker-scoped: resolve the picker’s own default instead of synthesizing “Default”.
defaultEffort, thenhigh, then the first non-off level (picker-effort.ts)./modelpopup share the same resolution.This does not publish
defaultEfforton the adapter, so dispatch and auxiliary calls that name no effort keep today’s behaviour (same seam as #8670). A route-widedefaultEffortwould change every unnamed call on the route.Sketch (
packages/client/ui-model-selection/src/client/picker-effort.ts):External PR kept only as a readable diff of this picker change:
yanyihan-xiaomi#2
Related
reasoning: highworkaroundAll reactions