前言¶
同一个模型、同一句话,”该不该动手”往往取决于当下的意图。DSH(DeepSeek Harness)的插件生态里,dsh-gear-mode 把这件事从口头约定变成一个可点击、可看见、可强制的状态。
这款插件为 DSH 提供了一列行动档位:对话区左侧滑轨一点即换挡,从「只读规划」到「全自动」,模型想升档得先问你,另有一个随时可拉的手刹。
它是什么¶
dsh-gear-mode 是 DeepSeek Harness 的工作流插件,由 JanrilW 维护。
它解决的问题是:如何在一个对话会话中,根据当前任务阶段,给模型注入不同的行为约束。换挡时,插件会向模型注入该档位的行为提示词;模型侧只有一个 set_gear 工具:降档直接生效,升档会弹卡片问你批准,手刹落下后工具调用会被硬拦截。
核心功能¶
档位与行为约束¶
插件提供 10 个档位,分为四组:
- 只读类:
P(只读规划)、R(只读复盘) - 交互类:
N组(NT聊天 /NC教练 /NE解释)、M组(M-较大介入 /M+较小介入) - 动作类:
D(委托)、A(自治) - 状态类:
H(驻停,即手刹)
换挡时,插件会向每条请求注入一段运行时上下文(约 1–2 KB),内容来自本仓库的 prompts.md,包含当前档位的完整行为要求。
手刹机制¶
H 档是驻停档,也是手刹。点一下进入待落状态(环在 2.4 秒内填充),再点一下才落下。落下后,模型只能汇报现状,不能推进任务、不能调用工具。
Ctrl+Shift+H(Windows)/ ⌘⇧H(macOS)走同一条二次确认流程。手刹落下时,工具调用被硬拦截(ctx.tools.guard)。
模型侧工具¶
模型侧只有一个工具:set_gear({ gear, reason? })。
- 降档或拉手刹直接生效。
- 升档会弹卡片请你批准(
ctx.userQuestions,与自带exit_plan_mode同一套机制)。 - 你点了「允许」才切档,拒绝就保持原档位,模型不会重试。
- 在没有 UI 的场合(子 agent、无 UI 的 profile),升档会直接拒绝。
提示词可外置¶
注入正文不硬编码,prompts.md 会被每次请求读一遍,按 ## 键 分节。保存后下一条消息即生效,不用重启。
支持的键:
- 档位键:P R NT NC NE M- M+ D A
- 手刹键:BRAKE
- 顺序键:ORDER
优先级:
1. DSH_GEAR_PROMPTS(环境变量)
2. prompts.local.md
3. prompts.md
4. 内置提示词
如果某节缺失或为空,用内置那句;整份文件不存在,全用内置。
会话投影¶
档位状态是会话投影。resume / fork 后,档位会自动还原。
界面交互¶
- 悬停:看档位说明。
- 点字母:切档。
- 悬停组入口:子档列贴着滑轨右缘展开。
- 沿滑轨上下拖拽:扫过档位,向右越过边界进入当前组的子档列。
- 静默淡出:切档完成或鼠标离开 5 秒后,只剩当前档位的字母、中文与滑块,碰回当前档位才淡入全部内容。
- 手刹落下:整列变淡,H 变红,此时点任意档位 = 由你解除并切到该档。
安装与启用¶
使用 npm 安装:
dsh plugin --profile web add dsh-gear-mode
或直接从仓库装:
dsh plugin --profile web add github:Janrilw/dsh-gear-mode
把 web 换成你实际用的 profile 名(桌面版是 desktop),然后重启该 profile 即生效。
卸载:
dsh plugin --profile web remove dsh-gear-mode
这是一个 bundle 型插件:package.json 里的 dsh.bundle.patch 指向 cordis.patch.yml,装好即挂载;缺了它会被当普通依赖装进去但什么都不发生。
命令¶
/gear 报告当前档位
/gear D 切到 D(同时解除手刹)
/gear H 拉手刹
/gear resume 仅解除手刹,档位不变
/gear P|R|NT|NC|NE|M-|M+|D|A
兼容性¶
- DSH 版本要求:
>=0.2.1-rc.2 <0.3.0。 - 插件在
dsh 0.2.1-rc.2上实测通过。
权限与风险¶
- 写入范围:只往会话里发一条
/gear <档位>,其他不动。 - 网络:不请求任何外部服务,不含遥测,不收集任何数据。
- 提示词:会向每条请求注入一段运行时上下文(约 1–2 KB),内容全部来自本仓库的
prompts.md。 - 工具:
set_gear会出现在模型可用工具列表里;ctx.tools.guard在手刹落下时拦截全部工具调用。 - 键盘:只注册
Ctrl+Shift+H/⌘⇧H,其余按键不抢。
适用场景¶
适合需要精细控制模型行为阶段的 DSH 用户,例如:
- 需要明确「只读规划」和「只读复盘」阶段的任务。
- 需要在「聊天」「教练」「解释」之间快速切换。
- 需要防止模型在自动化任务中过度行动,使用手刹做紧急制动。
- 需要外置提示词,按档位注入不同行为约束。
插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
结尾¶
dsh-gear-mode 通过档位滑轨与手刹机制,把「该不该动手」这件事变成了可操作的 UI 状态。从只读规划到自治执行,再到驻停制动,它为 DSH 会话提供了一组可组合的行为约束。
- 插件目录页:https://www.skillhub.cn/plugins/Janrilw/dsh-gear-mode
- GitHub:https://github.com/Janrilw/dsh-gear-mode