dsh-subagent-custom:DSH 子代理模型管控与 Jev 智能分流

前言

在 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 推荐)

  1. 打开 DSH 桌面客户端,进入「插件」页面。
  2. 点击「添加插件」。
  3. 输入包名 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

  1. 在插件设置将 mode 设为 off 可零开销关闭判定。
  2. 设为 once 时,在输入中以 /route 或 /jev 开头触发单次评估;用 /route preview <任务> 可只看判定结果而不派发。
  3. 设为 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye