前言¶
在 DeepSeek Harness(DSH)里写对话、调模型时,常见做法是依赖宿主自带的模型选择组件,或在提示词里手写编排说明。模型列表、推理强度(reasoning effort)和「快一点 / 多开子代理」往往分散在不同入口,改强度时也不一定和宿主目录里该模型声明的档位一致。
下面介绍社区插件 dsh-model-gear(维护者 chenyuxuan-official):在 composer 输入区挂一块面板,集中做模型选择、强度滑条、本机显示名,以及闪电编排三档;除闪电相关契约外,不向提示词注入人设、身份或核查段落。分类为「模型推理」,仓库当前约 1 star(以目录页与 GitHub 为准)。
这是什么¶
dsh-model-gear 是 DSH 桌面版插件:替换 conversation.input.model 槽位上的 composer 控件(priority -10),提供模型目录、按宿主 reasoning.efforts 绘制的强度滑条、localStorage 里的显示名别名,和 off / fast / tree 三档 Lightning 编排开关。宿主侧通过 agent/pre-step 按会话档位追加契约与每轮提醒;子会话则根据提示词首行 Tier: N of 2 注入分层说明。
许可为 MIT;包版本以仓库 package.json 为准(资料中为 0.4.2)。衍生于 dsh-codex-ui 一脉,上游同为 MIT。
核心功能¶
模型与强度面板¶
面板通过槽位 inject(sessionId) 接入宿主模型目录的 directory / load / select,以及编排档位的 gear.read / gear.select。子会话里 available 为 false,不提供选择。
- 模型列表:按 provider 分组、可搜索;「默认」组为当前模型加最近五个(键
dsh-model-gear/recent-models,仅存本机 localStorage)。 - 强度滑条:档位全部来自该模型在宿主目录中的
reasoning.efforts,不造虚拟档;拖动仅本地预览,松手或键盘操作才写回;「重置」写回模型的defaultEffort。 - 显示名:以
provider/model为键写入 localStorage(键名沿用dsh-codex-ui/model-aliases),只影响列表展示。 - 未同步:读不到宿主档位状态时不猜测「标准」——滑条不画填充、闪电为灰、三档菜单禁用并提示「未同步」。
说明:官方模型选择组件在 conversation.input.model.label 子槽位上挂发布徽标等装饰;本插件替换整个 composer 控件后,框架不允许第二个注册项复用该子槽位,因此这类装饰不会出现在本面板里。
闪电编排三档¶
编排状态由宿主持有,客户端挂载时读一次、切换时乐观更新(失败回滚)、每次打开面板再对齐。持久化文件为 $DSH_HOME/storages/dsh-model-gear-orchestration.json(无 DSH_HOME 时落在 ~/.dsh/storages/),最多保留 40 个会话;off 即删行。
| 模式 | 父会话注入要点 |
|---|---|
fast |
LIGHTNING_POLICY(首次或换档时) |
tree |
LIGHTNING_POLICY + SUPERFAST_POLICY |
| 每轮 step 1–3 | 带 turn / step 的提醒(每轮每条不同) |
切回 off |
一次性关闭说明(按日志去重) |
| 子会话 | 仅当首行含 Tier: N of 2 时注入对应分层说明 |
去重依据载体(本 step 消息、会话日志、inbox 队列),不依赖进程内记忆;切换档位以日志里最新契约为准。
超快第二层:SUPERFAST_POLICY 要求 tier-1 子代理再开孙代理;宿主默认子代理 maxDepth 为 1 时,超快实际约为 2 个直接子代理。要把第二层跑起来需将 maxDepth 调到 2,改法见仓库 docs/subagent-depth.md。
提示词边界¶
插件往提示词里追加的内容以 src/orchestration-policy.js 导出的 Lightning / Superfast 契约、每轮提醒、子会话分层说明与关闭提示为主;source.kind 为 plugin:dsh-model-gear,form 为 instructions。路由、写盘、注入均用 try/catch 兜底,失败不应拖垮宿主的一步或一次请求。
安装与启用¶
当前正式方式是从 GitHub 安装(安装后需重启一次应用):
dsh plugin --profile desktop add github:chenyuxuan-official/dsh-model-gear
发布到 npm 之后可用:
dsh plugin --profile desktop add dsh-model-gear
dsh 为桌面版自带 CLI;dsh plugin --profile <名字> <参数> 的参数原样交给 pnpm。GitHub 安装锁定提交号,仓库有新提交后需重新执行 add 才会更新。卸载:
dsh plugin --profile desktop remove dsh-model-gear
装完后插件会出现在 profile 的 package.json 依赖里。本地开发可 dsh plugin --profile desktop add link:<本目录绝对路径>,改 src/ 后执行 node scripts/build.mjs 并刷新;宿主段(src/host.js、src/orchestration-policy.js)改动需重启应用,面板显示「未同步」通常表示仍在跑旧宿主。
典型用法¶
- 安装并重启 DSH 桌面版,打开任意会话,在输入框上方使用模型挡位面板选模型、拖强度滑条,必要时为本机改显示名。
- 在闪电三档菜单中选择 off、fast 或 tree;父会话发送消息后,观察 step 前是否按档位注入契约与 1–3 步提醒(可在会话日志中查看
plugin:dsh-model-gear来源的 instructions)。 - 若使用 tree 且需要孙代理层,按
docs/subagent-depth.md调整宿主子代理maxDepth并验证,不满意再按文档回滚。
编排读写走宿主 Connection,例如:
{ "action": "read", "sessionId": "…" } // → { mode: "off" | "fast" | "tree" }
{ "action": "update", "sessionId": "…", "mode": "tree" }
路由为 POST /api/dsh-model-gear/orchestration(信封 client-request / server-response,rpcId 对齐)。
适用场景与注意¶
适合经常在 DSH composer 里换模型、调 reasoning effort,又希望用固定契约驱动「快速 / 超快」子代理编排的开发者。不需要替换整块模型 UI、也不打算在父会话开 Lightning 的用户可以只当参考,或保持编排为 off。
安装前建议自行查看 GitHub 仓库 源码与 MIT 许可证。插件以当前 DSH 进程权限运行,会读写本机 localStorage 与 ~/.dsh/storages/(或 $DSH_HOME 下路径);编排契约会进入会话 instructions,换档与去重逻辑以 README 描述为准。
DSH 生态强调「一切皆插件」;SkillHub 目录页 为社区收录,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-model-gear 把模型选择、宿主声明的强度档位与 Lightning 三档编排收进输入区一块面板,并把额外的提示词收敛为闪电契约及相关提醒。进一步了解与 issue 见 GitHub,目录入口见 SkillHub。