前言¶
在 DeepSeek Harness(DSH)桌面版里,带推理能力的模型通常要在每条请求前手动选 reasoning_effort。简单问答用高档浪费 latency 和 token,复杂任务用低档又容易断链。社区里曾有把「自动」写进档位下拉的方案,但在切换模型或快照残留时,伪档位 auto 可能被原样发给 API,触发 UNSUPPORTED_REASONING_EFFORT。维护者 xclj123 的 dsh-effort-auto-toggle 把「自动」从下拉框挪到模型选择器旁的独立按钮,并在手动透传路径上消毒非真实档位;0.2.0 起还会向宿主查询当前模型的真实档位表再映射调度结果。
这是什么¶
dsh-effort-auto-toggle 是 DSH 桌面版 Cordis 插件(MIT,当前 package 版本 0.2.2),分类属于模型推理。项目在 GitHub 为 xclj123/dsh-effort-auto-toggle,目录页见 SkillHub。它是 dsh-adaptive-effort 的 fork,核心目标是:点亮「自动」后按消息复杂度选档;熄灭后恢复进入自动前的手动选择,且不在档位列表里注入假档位。
核心功能¶
按钮与手动优先¶
点亮「自动」表示从下一条消息起由插件调度 reasoning_effort;熄灭则立刻回到原生手动选档,并还原进入自动前的选择。模型选择器里手选的档位(含各 adapter 独有名称如 ultra)始终原样透传。
模型自适应档位表(0.2.0+)¶
插件不写死 low/high/max。每次请求通过宿主 llm 服务的 resolveModelInfo(provider, model) 读取当前模型真实档位表(例如 glm-5.3 为 low/high/max,其他 adapter 可能是 low/high/highx/max/ultra 等)。调度器内部三档语义映射为:轻 → 最轻档、重 → 最重档、中 → 约 2/3 处(3 档取第 2 档,5 档取第 3 档)。
复杂度打分与回退¶
默认 mode 为 minimax:用任意 OpenAI 兼容 chat 端点的小模型对最近一条用户消息打分(打分时关闭思考)。无 key、超时或网络不可用时回退零依赖启发式(关键词、长度、代码块);回退结果不缓存,下一条消息会重试打分模型。安装时可选用 --mode heuristic 纯启发式运行。
工具连续性与会话隔离¶
开启 allowToolUpgrade(默认 true)时:同一会话内若闲聊已定低档,10 分钟内出现重工具调用会自动升档,减轻长链推理在低档下断链。连续性逻辑按会话隔离,避免跨会话泄漏(相对上游 fork 的改进点)。
显示、安全与账本¶
点亮时按钮显示 adapter 原文档名(如 自动·low、自动·highx),消息角标同步(如 glm-5.3 · low)。对 GLM-5.3 等强制思考模型,手动选 off 会被钳到最轻档(clampForcedThinkingOff,默认 true),而不是等 API 报错。每次调度决策与实际 token 用量写入 JSONL(默认目录 ~/.dsh/effort-auto-toggle/),可用报告脚本汇总。
前置要求¶
- DSH 桌面版(README 写明在 2026-10 宿主上验证;依赖
agent/requestwaterfall、session/event、llm、settings现代 API、客户端conversation.input.right等锚点,宿主大改时需插件跟进)。 - Node.js ≥ 20(安装脚本与测试;也可用 DSH 自带 Node)。
打分模型可选:不配 key 时用启发式模式安装仍可工作,精度低于小模型打分。
安装与启用¶
在已取得插件源码并进入 dsh-effort-auto-toggle 目录后,用官方安装脚本写入指定 profile(脚本会改 package.json / cordis.patch.yml,改动前留 .bak-<时间戳> 备份;--dry-run 可预览)。
先看本机有哪些 profile(不传 --profile 时会自动列出):
node tools/install.mjs
装进非 live 的测试 profile(推荐先试用):
node tools/install.mjs --profile "<profile 目录>"
带 MiniMax(或任意 OpenAI 兼容)打分端点安装:
node tools/install.mjs --profile "<profile 目录>" \
--mode minimax --minimax-key <你的key> \
--minimax-url https://open.bigmodel.cn/api/coding/paas/v4 \
--minimax-model glm-5.3-flash
写入 desktop 直播 profile 需显式 --force(脚本默认拒绝 desktop,防误伤):
node tools/install.mjs --profile "<…>/profiles/desktop" --force
装完后重启 DSH。Windows / macOS / Linux 通用;profile 默认探测 ~/.dsh/profiles/。
配置¶
安装时写入 profile 的 cordis.patch.yml,之后可在设置卡直接修改(无需重启):
| 字段 | 默认 | 说明 |
|---|---|---|
enabled |
true |
总开关 |
autoOn |
false |
按钮是否点亮 |
mode |
minimax |
minimax / heuristic |
minimaxApiKey |
— | 打分端点 key |
minimaxBaseUrl |
— | OpenAI 兼容 chat 端点 |
minimaxModel |
— | 打分模型名 |
allowToolUpgrade |
true |
工具连续性升档 |
仅 yaml 可改:scoreTimeoutMs(默认 9000ms)、clampForcedThinkingOff(默认 true)、ledgerDir(默认 ~/.dsh/effort-auto-toggle)。
典型用法¶
- 重启 DSH 后,输入栏模型选择器左侧出现「自动」按钮(初始为熄灭)。
- 点亮后,从下一条消息起自动调度;按钮随实际请求显示当前档(如
自动·low→自动·high)。 - 再次点击熄灭,恢复进入自动前的手动档位。
- 每条回复下方角标显示该请求实际使用的档位。
查看某会话的调度与 token 汇总:
node lib/report.js <sessionId前缀>
卸载(恢复 profile 内被改文件并删除插件文件,需重启 DSH):
node tools/install.mjs --profile "<profile 目录>" --remove
适用场景与注意¶
适合经常在 DSH 里切换「轻问快答 / 重推理 / 工具长链」、又不想每条消息手调档位的开发者。自动模式依赖宿主 llm 档位表与请求 waterfall;打分模式还依赖外网或自建兼容端点。
DSH 生态是「一切皆插件」;SkillHub 为社区目录,与 DeepSeek / 幻方无官方从属关系。插件以当前 DSH 进程权限运行,会向 profile 打补丁并可能调用外部打分 API;安装前请阅读 仓库源码与 LICENSE,确认 --force 写入 desktop profile 的影响。仓库提供 npm test(21 个用例,node --test,无需 npm install)覆盖 passthrough 消毒、手动优先、五档模型链路等。
结尾¶
dsh-effort-auto-toggle 用独立「自动」按钮和 passthrough 消毒规避伪档位 API 错误,并按模型真实档位表做语义映射;配合可选小模型打分、启发式回退与会话内工具升档,在手动档与自动调度之间可一键切换。详情与更新见 SkillHub 目录页 与 GitHub 仓库。