dsh-three-level-agent:三级子代理委派与代理树内异步通信

前言

在 DeepSeek Harness(DSH)里用子代理拆分复杂任务时,默认的委派深度和单棵树容量往往不够用;主代理只能再挂一层子代理,树内节点之间也缺少统一的、可异步往来的消息通道。维护者 AntheaLaffy 发布的 dsh-three-level-agent(社区目录分类为工作流)针对这两点做了扩展:把委派深度上限提高到可形成「主 → 子 → 孙」三级结构,并把单棵代理树的驻留容量提升到足以支撑 1×9×9 规模的子代理;同时注册全局工具 agent_message,让同一代理树内任意节点可以互发消息,并附带 Web 端对话 UI 的树形面板(通过客户端注入实现)。下文按安装、配置与能力说明如何启用该插件。

这是什么

dsh-three-level-agent 是 DSH 的三级代理插件,版本 1.0.0(MIT 许可证),要求 DSH 引擎 >=0.2.2-rc.1 且 <0.3.0。它不改变 DSH「一切皆插件」的扩展方式,而是通过 cordis.patch.yml 调整运行时与子代理相关的上限,并增加树内消息投递与前端展示能力。社区目录页:skillhub 插件页;源码与说明:GitHub 仓库。

核心功能

三级子代理与容量

插件允许在子代理运行时继续委派子代理,形成三级结构:

  1. 委派深度:maxDepth 默认为 2,即深度 1 的子代理可以再建自己的子代理(主代理 → 子代理 → 孙代理)。
  2. 树容量:maxActiveSubagents 默认为 128,README 说明该值足以容纳 1×9×9 = 90 个子代理。

树内双向通信(agent_message)

注册全局工具 agent_message,代理树内任意代理之间可以互发消息,包括祖先、后代和同树兄弟。目标地址可使用 list_agents 返回的 id,或使用快捷方式 "parent"、"root"。

异步投递与冷恢复

消息发送采用「入队即返回」模型,发送方不必阻塞等待:

  1. 每个收件人维护一条 FIFO 队列;后台投递线程在互斥锁内线性投递。
  2. 连接就绪采用分轮有界等待;超过 maxWaitMs 仍无法投递时,失败会通知发送方。
  3. 已结束的子代理在父代理仍存活时不会从树索引移除;投递失败时可由运行时的冷恢复(cold resume)唤醒收件人,行为与原生 send_message 一致。

Web UI 树面板

package.json 中声明客户端向 @deepseek-ai/dsh-client-ui-conversation 注入 Web 模块(immediately: true),用于在对话界面展示代理树结构,便于观察多级委派后的节点布局。

安装与启用

推荐从插件市场索引安装,无需本地 clone 仓库。

市场索引(推荐)

在 DSH Discover 页的市场设置里添加索引 URL:

https://raw.githubusercontent.com/AntheaLaffy/dsh-three-level-agent/main/market/index.json

保存后,Discover 页会出现 三级代理 / Three-level agents,通过一键安装(plugin_manager 的 install_bundle,使用市场条目中的 install target)完成部署。索引格式为 format 1,并通过 git 类型的 install source 固定当前 commit。

本地路径安装

若你已有插件目录的本地副本,在 profile 启动的 dsh 会话中执行:

plugin_manager install_bundle /path/to/dsh-three-level-agent

将 /path/to/dsh-three-level-agent 换成实际路径即可。

配置说明

插件配置写在 profile 的 cordis.patch.yml 里,典型条目如下。下列字段含义均来自仓库 README。

- id: three-level-agent
  name: 'dsh-three-level-agent'
  config:
    maxDepth: 2
    maxActiveSubagents: 128
配置项 默认值 说明
maxDepth 2 委派深度上限;≥2 即开启三级代理
maxActiveSubagents 128 单棵树驻留子代理容量上限
readyTimeoutMs 30000 单轮连接就绪等待时长(毫秒)
maxWaitMs 600000 排队消息等待投递的总时间预算,超时则失败并通知发送方
delivery queue queue 在独立下一回合投递;steer 在最近步骤边界注入

按需调整 readyTimeoutMs、maxWaitMs 与 delivery 时,在同一 config 块中追加对应键即可。

典型用法思路

README 未给出完整对话脚本,但能力组合可以这样理解:

  1. 在 profile 中安装并启用插件,确认 maxDepth 至少为 2、maxActiveSubagents 不低于你计划展开的子代理数量(例如扇出接近 9×9 时保持默认 128)。
  2. 主代理按任务拆分子代理;子代理在深度允许时继续 Task 或等价委派,形成三级树。
  3. 需要跨节点协作时,调用 agent_message,用 list_agents 查 id,或对父节点、根节点使用 "parent" / "root"。
  4. 在 Web 对话界面查看注入的树面板,对照运行中的代理 id 与层级。

具体工具名与调用参数以你当前 DSH 版本的内置文档为准;本插件扩展的是深度、容量与 agent_message 投递语义,不替代 Harness 既有的子代理启动方式。

适用场景与注意

适合谁:需要在一次 Harness 会话里做较深的任务分解(例如一层协调、一层专责执行、一层并行子任务),且希望树内节点能异步互发消息、并在 UI 上看到整棵树结构的开发者。

运行与安全:插件与 DSH 进程同权限运行;安装前请阅读 GitHub 源码 与 MIT 许可证,确认 index.js、client.js 与 cordis.patch.yml 符合你的环境策略。社区目录站点 skillhub.cn 为独立生态索引,与 DeepSeek / 幻方无官方从属关系。

引擎版本:package.json 要求 dsh 在 0.2.2-rc.1 至 0.3.0 之前;升级主程序时需核对兼容性。

结尾

dsh-three-level-agent 把子代理委派推到三级、把单树容量拉到 128,并用 agent_message 补上树内异步通信与失败时的冷恢复,适合多智能体工作流编排。进一步了解可访问 社区目录页 与 GitHub 仓库。

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

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

Xiaoye