前言¶
在 DeepSeek Harness(DSH)里派发子代理(Subagent)时,常见情况是:子代理只能继承父级主模型或调用方传参,无法按子任务单独选型;格式化、查资料等轻量任务与架构设计类任务共用高配主模型,既占配额又拖慢响应。若只靠 Prompt 让主模型自行决定是否派发,判定慢且不稳定,敏感操作也缺少确定性的前置门禁。
dsh-subagent-custom 面向上述场景:在请求发出前接入 Jev 分类器做结构化评估,并在 DSH 的 agent/request 钩子上硬性改写子代理的 provider、model 与 reasoningEffort;同时提供会话级手动选模与 Web 界面。插件由社区维护者 xingzhen199186 发布,npm 包名与仓库均为 dsh-subagent-custom,在 SkillHub 目录中归类为「模型推理」;项目说明其能力合并自 vitas/dsh-jev-subagent-dispatch 与 ringoage/dsh-subagent-model-picker。协议为 MIT,当前 npm 版本为 0.1.1(以 package.json 为准)。
这是什么¶
一句话:dsh-subagent-custom 是 DSH 的子代理模型决策与分流扩展——可按会话手动指定子代理模型,或由 Jev 按任务类别自动映射到预设角色与模型,并在子代理实际请求层强制生效。
维护者与来源:
- 目录页:https://www.skillhub.cn/plugins/xingzhen199186/dsh-subagent-custom
- 源码与文档:https://github.com/xingzhen199186/dsh-subagent-custom
SkillHub 为社区插件目录,与 DeepSeek / 幻方无官方从属关系;安装前请自行审阅源码与许可证。插件在 DSH 宿主进程内运行,权限与当前 DSH 进程一致。
核心功能¶
下面按 README 已说明的能力归纳,不涉及未在资料中出现的配置细节。
请求级模型改写¶
插件基于 DSH 核心钩子 agent/request 拦截子代理请求,直接改写 provider、model、reasoningEffort,覆盖调用方默认传参,使调度决策在子代理侧落地。
Jev 语义判型¶
接入 TypeSafe System One 架构的 Jev 判定模型,对用户任务做结构化评估,维度包括任务类别(Task Class)、工作量(Effort)、爆炸半径(Blast Radius)与高危属性(Risky)。判定前对 API Key、Token、Bearer 等特征做正则脱敏并限制输入长度;默认超时 4000 ms 或网络异常时静默放行(Fail-Open),不阻断主会话。
双层开关¶
两层含义不同,需分开理解:
| 控制维度 | 配置位置 | 取值 | 作用 |
|---|---|---|---|
| 插件全局侦听 | config.mode |
off / once / auto |
控制 Jev 何时介入:off 关闭;once 仅命中触发词时评估;auto 对每轮普通输入评估 |
| 会话模型绑定 | selections.<会话>.mode(由输入框上方选择器写入) |
inherit / auto / manual |
inherit 不强行重写;auto 按 Jev 结果映射角色与模型;manual 会话内固定模型与思考程度 |
once 模式下默认触发词为 /route、/jev;支持 /route preview <任务> 仅评估不派发。
角色、类别与「三点对齐」¶
出厂预置 5 个角色与 8 种任务类别。派发需同时满足:目标角色有合法模型、任务类别映射到该角色、活跃档位白名单允许该类别,否则不派发。
角色与类别对应关系(摘自 README 预置表):
junior→mechanical(机械性改动,如格式化、重命名)implementer→bugfix(根因可控的缺陷修复,亦为兜底角色)researcher→research(查阅与收集事实,不改代码)reviewer→review(审查差异或方案,不直接修复)writer→documentation(README、Changelog 等文档)
feature_work、refactor、meta_chat 出厂默认不绑定子角色,由主模型处理。
角色前置提示词¶
在插件设置「路由」区域,字段为 routes.<角色>.prompt。仅在会话选择器为 auto、且 Jev 指派该角色、且提示词非空时,在子代理首步以一条独立消息(非 System Prompt)注入一次。manual 与 inherit 不注入。
Web 界面与本地化¶
注入 DSH Web:输入框上方模式切换器、会话标题状态徽章、右侧边栏「子代理模型」标签(状态、角色矩阵、最近 20 条派发流水)。界面支持中文、英文、俄语。
其它¶
- 升级时通过
adoptedClasses等机制增量补全出厂新增类别,不自动放宽用户已收紧的档位规则。 - 提供离线策略回放工具
jev-replay(bin/jev-replay.mjs)。 - README 标注测试 97 passed;运行环境要求 Node.js
>= 22.0.0,DSH^0.1.7-rc.2或兼容版本。
安装与启用¶
环境依赖(来自 README):
- Node.js
>= 22.0.0 - 建议 pnpm
>= 9.0.0 - DSH
^0.1.7-rc.2或兼容版本 - Peer:
@deepseek-ai/schemastery>=3.18.1,@deepseek-ai/dsh-typert-protocol>=0.1.7-rc.2 <0.3.0等
方式一:DSH 桌面端(README 推荐)
- 打开 DSH 桌面客户端,进入「插件」页面。
- 点击「添加插件」。
- 输入包名
dsh-subagent-custom,安装源选 npm 官方源,确认安装。
插件安装后 README 说明暂不支持自动更新;升级需先卸载再重装。安装或更新后须重启 DSH 桌面端,宿主侧拦截逻辑方可完全生效。
方式二:命令行(适用于 web 等 profile)
在资料给出的命令为:
dsh plugin --profile web add dsh-subagent-custom
方式三:本地 .tgz 或目录
在仓库内 pnpm install 与 node scripts/build-client.mjs 后执行 pnpm pack,再在桌面端或上述 dsh plugin --profile web add <路径> 安装生成的包。此路径面向改源码场景,需自行 clone 与构建,本文不展开 clone 步骤。
安装完成后在插件设置中调整 mode、判定 provider(默认 typesafe,可选 bai、openrouter)及各角色路由;全局默认 mode 为 "off",需显式改为 once 或 auto 才会启用 Jev 侦听。
典型用法¶
1. 会话级:继承、自动或手选¶
在主对话输入框上方、主模型选择器右侧切换:
- 继承主模型:对应
inherit,子代理沿用主模型,插件不强行改写。 - 交给 Jev 自动分配:对应
auto,结合全局mode为auto或once+触发词,由判型结果映射角色与模型。 - 手动指定:对应
manual,会话内固定所选模型与思考程度。
边栏「子代理模型」页可查看当前会话状态、各角色实际模型与最近派发流水。
2. 插件级:按需打开 Jev¶
- 在插件设置将
mode设为off可零开销关闭判定。 - 设为
once时,在输入中以/route或/jev开头触发单次评估;用/route preview <任务>可只看判定结果而不派发。 - 设为
auto时,每轮普通用户输入都会走 Jev(仍受脱敏、超时 Fail-Open 约束)。
3. 调整路由与前置提示词¶
在插件设置「路由」区域为各角色指定 provider/model/reasoningEffort 及可选前置提示词。出厂示例模型多指向 OpenRouter 上的具体模型 ID(如 openrouter/qwen3.8-flash),实际部署需替换为你账户可用的 provider 与模型,并保证「三点对齐」白名单允许对应任务类别。
4. 命令行 profile 与回放¶
使用 web profile 的管理方式时,安装命令见上一节。需要离线验证策略时,可使用包内提供的 jev-replay 入口(详见仓库 README「离线策略回放」章节)。
适用场景与注意¶
适合谁
- 经常在 DSH 里 spawn 子代理,希望机械性、调研、审查、文档类子任务走轻量模型,复杂功能与重构仍由主模型承担。
- 需要在会话粒度「这次全部手选某个子代理模型」或「全部交给 Jev」的开发者。
- 希望在 Web UI 里看见派发决策与流水,而不是只在日志里猜模型的人。
使用注意
- 插件含宿主侧 Node 逻辑,权限等于 DSH 进程;安装前请阅读源码与 MIT 许可证。
- Jev 判定依赖所配置的
provider/endpoint;超时或异常时 Fail-Open,可能出现「未按预期改写模型」的情况,需结合边栏流水与日志排查。 - 默认
mode为off,新装后若未见分流效果,先检查全局mode与会话选择器是否为auto。 - README 明确:安装后需重启桌面端;插件暂不支持自动更新。
结尾¶
dsh-subagent-custom 把「子代理选什么模型」从继承主模型或 Prompt 自觉,收敛为可配置的会话策略与 Jev 前置判型,并在 agent/request 层硬性落地;与仅做 UI 选模的方案相比,多了类别—角色矩阵、白名单派发与 Fail-Open 安全边界。若你在 DSH 多智能体流程里关心算力分配与派发可控性,可从 npm 包 dsh-subagent-custom 或 SkillHub 目录页入手,详细参数与截断未写入本文的配置项以 GitHub README 为准。
- SkillHub:https://www.skillhub.cn/plugins/xingzhen199186/dsh-subagent-custom
- GitHub:https://github.com/xingzhen199186/dsh-subagent-custom