dsh-subagent-setup:按别名把子任务委派到指定子智能体与模型

前言

在 DeepSeek Harness(DSH)里做复杂任务时,主会话往往希望把某类工作交给「另一条模型 + 另一套上下文」去跑,而不是在同一会话里硬切换模型。常见做法是手写 YAML 或散落在多处配置,改路由、改「什么时候用谁」都不直观,也和 DSH「一切皆插件」的扩展方式不太一致。

下面介绍的 dsh-subagent-setup(维护者 twoweeks1995)是面向 DSH 的子智能体模型路由插件:用本地 JSON 和中文设置页维护一张「别名 → 子智能体代理 + 模型」表,主智能体通过工具按别名委派;配置不碰 YAML。社区目录页:https://www.skillhub.cn/plugins/twoweeks1995/dsh-subagent-setup;源码与说明:https://github.com/twoweeks1995/dsh-subagent-setup(当前 package 版本 0.2.2,MIT 许可,GitHub 星标为 0)。

这是什么

一句话:给模型一组可委派的子智能体句柄(别名),每个别名绑定真实的 provider / model,并用「何时使用」字段指导选路。

配置保存在 <DSH_HOME>/subagent-setup/config.json,首次启动用默认值;全部在设置页「子智能体设置」完成,不需要改任何 YAML。

开发与验证环境为 DSH 桌面版 0.2.1-rc.3(开发起始于 rc.2)、Node ≥ 20。更早的 DSH 版本未实测;若装到旧版本,可查看 <DSH_HOME>/subagent-setup/last-startup.log,其中逐行记录 tracker / wait / close / sessionQuery / webServer 等能力探测结果。

核心功能

资料中明确列出的能力如下。

五个工具

工具 用途
subagent_route 按别名委派;前台等结果原样返回,后台返回 childId
subagent_route_catalog 只读列出本机所有子智能体代理与模型(配路由时查真实标识)
subagent_route_configure 读/写本插件配置,可在对话里协助改路由
subagent_route_wait 后台委派后调用,阻塞到结束并返回结果
close_subagent 释放驻留的 continuable 子智能体(释放内存与上下文,不退 token 账)

配套技能 subagent-route-setup(也可 /subagent-route-setup 手动触发)说明如何按场景选路、如何写「何时使用」、如何安全改配置。

重要行为:把子智能体列表清空等于关闭委派——列表为空时委派工具不会被注册。

设置页与界面

  • 中文设置页:模型采用二级下拉(先选子智能体代理,再选子智能体模型),末尾有「其他」可手动填写模型标识。
  • 子代理会话头部:胶囊显示实际路由(悬停可见完整「子智能体代理 / 模型标识」);可一键释放驻留的后台子智能体。
  • 后台委派 + 汇合:派出去拿 childId,最后用 subagent_route_wait 一次性收齐结果。
  • 开关:会话头部的路由胶囊与释放按钮各有独立开关(showRouteDock、showCloseAction),可单独停用。

架构(两个条目)

主+设置条目 subagent-setup 负责工具、系统提示、技能、设置页 /settings 与目录 /catalog;会话条目 subagent-setup-session 负责头部 /subagent-model、/close-subagent。停用会话条目时,头部组件消失,设置页与工具不受影响。

安装与启用

侧边栏「插件」→「安装第三方插件」,下面三种输入任选其一。

① npm 包名

dsh-subagent-setup

② GitHub 链接

https://github.com/twoweeks1995/dsh-subagent-setup

③ 本地 tgz

先从 Releases 下载 tgz,安装框填绝对路径(版本号以 Releases 页为准),例如:

D:\temp\dsh-subagent-setup-0.2.2.tgz

安装后完全退出 DSH 再启动,设置页会出现「子智能体设置」。

配置要点

委派默认值(节选)

设置页 配置键 默认 说明
执行方式 subagentProvider spawn spawn 每次新建独立上下文;fork 继承当前会话
最大委派深度 maxDepth 3 子智能体是否还能继续往下派
闲置多少轮后从列表隐藏 listingInactivityTurns 20 连续多少轮未联系则不出现在 list_agents;0 表示不过滤
允许后台运行子智能体 enableRunInBackground 开 关则 subagent_route 不提供 run_in_background

每条子智能体

必填:别名 alias、子智能体代理 provider、子智能体模型 model、何时使用 description(给模型看的选路依据,需写清任务长什么样)。

可选:显示名 displayName、最大令牌数 maxTokens、默认思考档位 reasoningEffort、Agent 预设 agentPreset、标签 tags(kebab-case,逗号分隔)。

保存时会校验别名格式(小写字母、数字、下划线、连字符,以字母或数字开头、不可重名)等;填错会当场报错、存不进去。

别名建议用中性词

别名是模型写进工具调用的句柄,比「何时使用」更容易被注意到。README 记载:带模型身份或强弱暗示的别名在实测中 0/2 命中,换成中性别名(如 a1…aN)后 8/8 命中。人可读名称放「显示名」,用途写进 description 与标签,不要写进别名。

典型用法(可复现流程)

  1. 在「子智能体设置」里新增若干条目:为每条填中性 alias、选好 provider / model、写好 description。
  2. 主会话中模型调用 subagent_route,传入目标 alias 与任务内容;需要并行时可后台委派,记下返回的 childId。
  3. 后台任务结束后调用 subagent_route_wait 收齐结果。
  4. 若有 continuable 子智能体需要结束占用,在会话头部使用「终止可持续状态」,或调用 close_subagent。
  5. 不确定本机有哪些代理与模型标识时,先调用 subagent_route_catalog 或打开设置页二级下拉核对。

需要模型按规范改路由时,可触发技能 /subagent-route-setup,或使用 subagent_route_configure。

适用场景与注意

适合谁:在 DSH 桌面版上希望「主会话统一调度、子任务走不同代理/模型」的开发者;希望配置集中在 JSON + 设置页、不写 YAML 的用户。

权限与安全:插件以当前 DSH 进程权限运行,会读写 <DSH_HOME>/subagent-setup/ 下配置与日志。安装前应自行查看源码与 MIT 许可证,确认路由与委派行为符合预期。

已知限制(README 原文要点):

  • 路由选择不保证正确;模型可能按模型名自行脑补而越过 description。重要任务应由调用方显式指定别名。
  • 可能与其它「子智能体路由 / 委派」插件冲突:工具重名、两套 subagent_route 清单并存、派发与等待跨插件使用可能收空结果。建议只保留一套,或保证派发、等待、释放来自同一插件。

Headless:主条目依赖 webServer,headless 环境不再加载;作者说明本机场景以桌面应用为主。

结尾

dsh-subagent-setup 把子智能体路由收成「别名 + 本地 JSON + 五个工具 + 中文设置页」,并支持后台委派汇合与会话头部的路由展示、释放控制。若要安装或查版本,以 GitHub README 与 Releases 为准。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye