dsh-jev-subagent-dispatch:用 Jev 把例行任务路由到廉价子代理模型

前言

在 DeepSeek Harness(DSH)里跑智能体,主模型往往既要写代码,又要在每一轮里判断「这类活该不该交给子代理、交给哪条模型路由」。后者本身也要消耗 token,而重命名、格式化、查资料、修小 bug 等任务,用更便宜的子模型往往就够。社区插件 dsh-jev-subagent-dispatch(维护者 vitas,SkillHub 分类:模型推理)走另一条路:用 TypeSafe 的 Jev 决策模型在几十毫秒内回答若干结构化问题,再按你配置的路由策略给出 dispatch recommendation(建议哪条 subagent 模型接这一棒)。主模型仍通过 DSH 原生的 subagent 工具完成交接;插件本身不实现委派机制,注入的是建议而非强制。

这是什么

dsh-jev-subagent-dispatch 是面向 DeepSeek Harness 的 Jev 引导子代理路由插件。Jev 不是聊天 LLM,也不写代码;它对 choice / score / noul 等 typed 问题并行作答,并返回概率与 confidence。插件把当前轮任务摘要发给 Jev,套用 profiles 里的策略,在消息里追加路由建议。当前 npm 包版本为 0.8.0,许可证 MIT,要求 Node ≥ 22。

核心功能

分工与前提

插件 不负责 提供子代理能力。DSH 需要子代理服务、背后的 child provider,以及 agent 可见的委派工具(如 subagent / subagent_fork)三件套;委派深度为 0 时委派被完全关闭。每次路由请求都会在运行时重新检查上述能力,不依赖安装时的快照。

Subagent 插件需要处于启用状态,否则仍可能得到分类结论,但没有可执行的委派目标。设置卡片会读取 Subagent 相关命名空间并在缺失时警告。

路由里写的模型必须在会话 allowlist 允许范围内;否则分类仍可能「看起来正常」,实际无法派发。设置页为每个 role 提供下拉框,选项仅限 allowlist 中的模型。

任务类别与默认路由(auto profile)

Jev 任务类 角色 内置示例路由 auto 是否委派
mechanical junior openrouter/qwen3.8-flash 是
bugfix implementer openrouter/deepseek-v4-flash 是
research researcher openrouter/qwen3.8-flash 是
review reviewer openrouter/qwen3.8-flash 是
refactor、feature_work、meta_chat — — 否(未出现在 profiles.*.delegate.taskClass)

更严格的 careful profile 默认只委派 mechanical。routeFor 把 task class 映射到 role,routes 把 role 映射到 { provider, model };内置路由均为占位,应在卡片里改成你环境中真实可用的模型。

运行模式

默认 mode: off,不注册监听、不产生调用。三种模式:

模式 行为
off 无 pre-step 监听,零 Jev 成本
once 仅带触发前缀的轮次调用 Jev
auto 每条普通用户消息都可能分类(适合在 verdict 日志证明有效后再开)

触发前缀可通过 triggers 配置,默认 ["/route", "/jev"]。示例:

/route fix the failing tests        → 一次 Jev 调用 + 路由建议
/jev should I delegate this?        → 向 rubric 的自由形式决策请求
/route preview rename everything    → 仅评估、不据此委派(preview)

建议 不是强制执行:主模型可以忽略。README 建议先用 Measuring impact 衡量再日常依赖。

能力检查与失败行为

能力检查失败时:显式 /route 请求会注入诊断且 不调用 Jev;普通 auto 轮次 完全静默。Jev 调用失败时:/route 注入一行诊断;普通轮次同样静默。会话或插件变更在 下一次请求 生效,无启动缓存。

隐私与观测

发往 TypeSafe 的 state 在出机前脱敏:主要是用户轮次文本与截断的 workspace: 行(默认整包上限 stateChars 1200),不含 diff、工具输出或文件全文。内置模式会替换 sk-…、ghp_… 等凭证形字符串;logDir 与 logTurnText 控制是否落盘及是否记录轮次原文。

安装与启用

在 web profile 下添加插件(命令来自官方 README):

dsh plugin --profile web add /path/to/dsh-jev-subagent-dispatch   # local checkout
# or, once published:
dsh plugin --profile web add dsh-jev-subagent-dispatch

说明:host 侧通过运行中 DSH 解析可选 peer @deepseek-ai/dsh-llm;link: 开发目录无自有 node_modules 时行为与已安装副本一致。

接着按 provider 预设准备 API Key(每次调用前解析:凭证存储优先,其次进程环境变量):

provider Jev 端点(预设) 固定 model Key 环境变量名
typesafe(默认) https://api.typesafe.ai/v1/systemone jev-1.13.0 TYPESAFE_API_KEY
openrouter https://openrouter.ai/api/v1/systemone jev-1.13 OPENROUTER_API_KEY
bai https://api.b.ai/v1/decisions jev-1.13.0 OPENROUTER_API_KEY

Models 页若已存同名凭证,通常无需再设环境变量;若用环境变量,需对运行 dsh web 的进程可见。once 模式下,在未发送 trigger 前不会向 Jev 发送数据。

无 Key 时可设 mock: true 做接线测试:按关键词返回固定 confidence 的 mock 分类,便于查看注入与阈值,但不应用于真实路由。

典型用法

  1. 启用 Subagent 插件与子代理 provider,确认 agent 可见 subagent(或你在 delegationTools 中声明的自定义工具名)。
  2. 安装本插件,在 Plugins 设置页或插件 Configure 表单中把 mode 设为 once 或 auto,按 allowlist 为各 role 选模型。
  3. 在 once 模式下先试用:
/route fix the failing tests
  1. 需要只看分类、不自动委派时:
/route preview rename everything
  1. 开启 logDir 后,每条 verdict 追加一行 NDJSON,便于对照 latencyMs、usage 与主模型节省的 token 再调 confidenceMin 与 profile 谓词。

常用配置项(默认值见 README 表格):activeProfile(auto / careful)、timeoutMs(默认 4000)、skipSubagentSessions(默认 true,仅主 agent 轮次路由)。

适用场景与注意

适合:已在 DSH 中组合 Subagent 与子模型 allowlist,希望把 mechanical / bugfix / research / review 等可识别任务导向更便宜模型,并愿意用 verdict 日志迭代策略的开发者。

注意:

  • 插件以 当前 DSH 进程权限 运行;安装前请阅读 GitHub 源码 与 MIT 许可证,自行评估向 TypeSafe / OpenRouter / B.AI 发送的任务摘要是否符合合规要求;敏感仓库可设 enabled: false 或保持 mode: off。
  • 纯 ESM,运行时无 npm 依赖;开发测试针对 DSH 0.1.5、0.1.7、0.2.0(web profile)。设置 UI 在 0.1.7+ 可在包页内联渲染,0.1.5 使用 Plugins 设置 tab。
  • SkillHub(https://www.skillhub.cn)是社区插件目录,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本插件是其中一条可选路由层。

结尾

dsh-jev-subagent-dispatch 用 Jev 替主模型完成「谁来做、用哪条子模型」的轻量决策,把昂贵 token 留给 refactor、feature 等未委派类别;前提是 Subagent 栈已就绪,且你通过日志验证建议质量。进一步了解与 issue 反馈:

  • SkillHub 目录页:https://www.skillhub.cn/plugins/vitas/dsh-jev-subagent-dispatch
  • GitHub:https://github.com/vitas/dsh-jev-subagent-dispatch
羽毛球分组比赛记分
小程序二维码

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

Xiaoye