Repository navigation
Closed
Labels
bug功能异常、崩溃、数据错误(agent 诊断 → 人工确认)功能异常、崩溃、数据错误(agent 诊断 → 人工确认)
Description
环境信息
- dsh-mneme 版本:0.8.2(实例打了 feat(client): 路由旧值显式标记 + 行级提示与测试说明(#191) #213 的面板 client.js 补丁;本缺口与补丁无关——测试请求体自 dc6af8f(v0.7.26)起就是
{ provider, model },0.8.2 原版同样复现) - DSH 版本与 profile:DSH Desktop 2.0.10,desktop
- 操作系统 / 平台:Windows(注册表 ProductName "Windows 10 Home China",DisplayVersion 25H2,build 26200)
复现步骤(从新会话开始)
- 面板 → 记忆库 → 设置 → 功能开关,确认巩固/睡眠/实体抽取路由已选定 Provider 与模型,任一路由的 reasoning effort 配置为非「跟随默认」;
- 打开 DevTools(F12)→ Network 面板;
- 点该路由行的「测试连通性」;
- 查看
POST /api/dsh-mneme/test-model的请求体。
实际行为 vs 预期行为
- 实际:请求体仅
{ provider, model }(dsh-mneme/lib/client.js:1885,自 dc6af8f 未变),不含reasoningEffort——即使配置了dreamReasoningEffort/sleepReasoningEffort/entityExtractionReasoning(src/config.js:108、369、308)。测试报「连通正常」不代表配置档位被服务商接受;运行时侧 dream 与 entity 被拒会回退重试不带 effort(src/dream.js:350-360、887-911;src/index.js:60-83),sleep 按配置透传、未见显式回退(src/dream/sleep.js:240、391)。 - 预期:测试说明文案写明「真实发起一次最小巩固调用,验证 Provider/模型连通与 effort 支持」(modelTestHint,v0.7.26 定义、feat(client): 路由旧值显式标记 + 行级提示与测试说明(#191) #213 首次接线渲染),测试应把各路由配置的档位透传给
/test-model。服务端早已支持(e13aa6a,fix: 补齐 LLM 连通性测试端点(v0.7.26 遗漏的 settings-panel 后端) #100:testLlmConnectivity(llm, provider, model, reasoningEffort),'none'/缺省时省略字段,src/api.js:317、332)。
相关 console / log 片段
观察来源(均经本人核实):
- 代码路径
dsh-mneme/lib/client.js:1885:body: JSON.stringify({ provider, model }); - 上述环境在 [Feature] 面板:provider/model 改动缺「重启后生效」提示,且不校验二者是否配套 #191 验收时真实运行过「测试连通性」按钮(结果连通正常)。
请求体在 DevTools Network 下一步可复核,形状即第 4 步所示:{"provider":"<已配 provider>","model":"<已配 model>"},无 reasoningEffort 字段。
背景(为什么现在报)
#191 的 PR #213 把 v0.7.26 起定义、一直未渲染的 modelTestHint 文案接成了按钮说明行,文案与行为的落差首次可见;CodeRabbit 在 #213 提了同一条 Minor,核实为既有缺口后按规范单独开本 issue 跟进,#213 保持 #191 范围不变。
已查现状
README、CHANGELOG、路线图与已有 issue 中未发现覆盖此点;服务端 /test-model 的 reasoningEffort 参数自 #100 起存在但客户端从未使用。
期望的行为变化
测试各路由时透传各自配置的档位,'none'/未配置时省略字段(与服务端 src/api.js:332 同口径)。实现细节供讨论:dream 未配置时运行时会自动取模型支持的最低档(src/dream.js:411),测试侧无法预解析模型信息,该场景维持省略即可。
事实:以上提交与行号在 main 可复核;报告环境即第 1–3 项所列,#191 验收时在该环境真实运行过测试按钮。
推断:sleep 无显式回退是否使该缺口对 sleep 场景影响更大,未验证。
Metadata
Metadata
Assignees
Labels
bug功能异常、崩溃、数据错误(agent 诊断 → 人工确认)功能异常、崩溃、数据错误(agent 诊断 → 人工确认)
Activity
[-]连通性测试未透传 reasoningEffort[/-][+][Bug] 连通性测试未透传 reasoningEffort,与说明文案承诺不符[/+]modusensus commentedon Sep 17, 2026
已对照 main 逐条核实,全部属实,且这报告的定位精度值得一提——
lib/client.js:1885的请求体自 dc6af8f(v0.7.26)起就只有{ provider, model },而服务端testLlmConnectivity自 #100(e13aa6a)起就接受并透传reasoningEffort('none'/缺省时省略字段,src/api.js:332)。九个版本的「参数已备、客户端未接」,被 #213 把说明文案接上后才显形——正好是文案承诺(「验证 Provider/模型连通与 effort 支持」)与行为的落差。补一个定性:你标为「推断」的 sleep 影响其实可以从代码直接证实——dream 与实体抽取在档位被拒时有去掉 effort 的回退自愈(
src/dream.js两处 fallback),sleep 则按配置透传、未见回退,档位被拒时睡眠轮会直接失败。所以这个透传对 sleep 场景价值最大:测试按钮是目前唯一能在真实 run 之前暴露「配置档位被服务商拒绝」的口子。期望的实现契约(与报告一致,供认领者直接照做):
dreamReasoningEffort/sleepReasoningEffort/entityExtractionReasoning)——测试按钮本来就是按路由行的,routeSelects闭包里需要把 effort 键名一并传入;'none'/ 未配置 → 省略字段(与服务端src/api.js:332同口径);dream 未配置时运行时自动取模型支持的最低档,测试侧无法预解析模型能力,维持省略即可(说明文案无需改);lib/client.js请求体与client.test.js回归断言。已打
bug标签,欢迎认领(按惯例动工前在 issue 说一声即可;不认领的话我们也会修)。heptaspirit commentedon Sep 17, 2026
认领,感谢逐条核实的回复——sleep 无回退这个定性补充收到,实现契约三条都清楚。方案:从 upstream/main(26ec125)切 eat/test-model-effort-215,
outeSelects 传入各路由的 effort 键名(dreamReasoningEffort / sleepReasoningEffort / �ntityExtractionReasoning),
unModelTest 请求体在 'none'/未配置时省略字段(与 src/api.js:332 同口径),服务端零改动;client.test.js 更新 payload 断言并补各路由透传的回归断言。本地实例验收后再提 PR。
fix(client): 连通性测试透传 reasoningEffort(#215) (#216)
fix(llm): 连通性测试与真实 run 同语义——档位被拒时降级而非报红(#215 后续)