What Sub-Agents Are Doing Now: Returning Progress Written by Sub-Agents to the Parent Agent

前言

在 DeepSeek Harness(DSH)里用 subagent 或 subagent_fork 派后台子代理时,父代理常用的 list_agents 往往只返回 lead 自己,子进程不在 Agent Teams 的 roster 里。父模型容易误判「子代理丢了」而重复委派,而子代理其实仍在跑。即便 spawn_teammate 创建的 teammate 能被 list_agents 看到,接口通常也只给 running / inactive 这类粗粒度状态,分不清「干完了」「卡死」「在等子任务」还是「429 额度失败」。session 里本来就有子代理每一步的旁白,但官方没有只读工具把它汇总给父代理用。

下面介绍社区插件 what-sub-agents-doing-now(维护者 REALOIYO,分类:工作流)。它从 subagent 自己的登记目录读取信息,以只读、不遮蔽(non-shadowing)方式暴露步数、最后工具、空闲时间与子代理自述进度,装完即用,无需改配置或提示词。

这是什么

what-sub-agents-doing-now 是 MIT 许可的 DSH 插件(package 名 what-sub-agents-doing-now,当前资料中版本 0.2.2,要求 dsh >= 0.2.1-rc.1、Node >= 22)。定位一句话:看到每个子代理此刻在干什么——回传它自己写的进度,而不只是 running/inactive。

与 list_agents 查 Agent Teams roster 不同,本插件读 subagent 目录里登记的那批子代理,因此 subagent / subagent_fork 派出的子代理也能被看见,并附带比二值状态更细的现场信息。

它解决的具体问题

子代理不在 list_agents 里

DSH 有多条派活路径:subagent、subagent_fork、spawn_teammate、workflow、ralph 等。只有 spawn_teammate 创建的 teammate 会出现在 list_agents。 用 subagent / subagent_fork 时,典型返回只有父代理一行,例如:

[{"target":"lead","role":"lead","status":"running"}]

父代理缺少可见性,可能重复派活。本插件从另一套登记集合读取,能列出例如多个子代理 ID、运行/空闲状态与任务标题。

看得见之后,粒度仍不够

即便 teammate 能被 list_agents 列出,状态往往仍收敛为 running 或 inactive。inactive 同时覆盖「正常结束」「崩溃」「卡在半句话」「在等自己的子代理」等情况,父代理只能轮询或猜测。本插件在 README 中给出的对比示例里,what_subagents_are_doing 一类输出会包含步数、最后调用的工具、idle 秒数以及子代理写的要点,例如「11 steps, last tool: read, idle 0s」和「读完 14 页,发现 3 处数值和正文对不上,正在逐条核对」。

覆盖范围(以 README 为准)

派活方式 list_agents 本插件
spawn_teammate 可见,但多为状态词 可见,含步数与旁白
subagent 不可见 可见
subagent_fork 不可见 可见
workflow 的 agent() 不可见 未实测
ralph 的每轮 不可见 未实测

README 写明:spawn_teammate、subagent、subagent_fork 在真实会话中验证过;workflow 与 ralph 在代码路径上经 subagents.startActivation 登记,尚未端到端实测。

插件不修改上游行为:进度数据已在 session 中存在,插件只是只读投影给父代理使用。DSH 官方 Discussions 中有多条与「父代理看不见子代理真实状态」相关的讨论(如 #6216、#10770、#5360 等),截至 README 撰写时仍无官方等价接口;本插件属于社区侧补齐观测能力,非 DeepSeek / 幻方官方应用;目录页在 skillhub.cn,与 Harness 主仓库无官方从属关系。

核心功能(已核实)

  1. 列出 subagent / subagent_fork 等路径创建的子代理,弥补 list_agents 的 roster 盲区(对 teammate 仍提供更细进度)。
  2. 展示运行状态、步数、最后工具名、idle 时间,并 surface 子代理 session 里自写的进度旁白(README 示例中的 bullet 行)。
  3. 只读、non-shadowing:不替换或遮蔽 Harness 自带工具,父代理在需要时调用插件提供的观测能力即可。
  4. 零配置:README 明确「装上就用,不用改配置、不用写提示词」。

安装与启用

插件以当前 DSH 进程的权限运行;安装前建议自行查看 GitHub 仓库 源码与 MIT 许可证。

方式一:桌面端(推荐,带事务回滚)

README 说明插件管理器支持事务回滚,是资料中唯一强调带安全网的安装路径。

  1. 打开 设置 → 插件
  2. 点击 添加插件
  3. 在「包名或地址」粘贴仓库地址:
https://github.com/REALOIYO/what-sub-agents-doing-now
  1. 确认安装,装完后重启 DSH

方式二:命令行

将 <profile> 换成你使用的 profile 名:

dsh plugin --profile <profile> add what-sub-agents-doing-now
dsh plugin --profile <profile> add link:/path/to/what-sub-agents-doing-now

README 注明:只有 link: 能配合 dsh-hmr 热重载;file: 为真实拷贝,改代码后需重启 DSH。

典型用法

安装并重启后,父代理在编排多子代理任务时,用插件暴露的工具(README 示例中对比 list_agents 与 what_subagents_are_doing 的输出)查看现场,而不是仅依赖:

// list_agents / before — 子代理不在列表中
[{"target":"lead","role":"lead","status":"running"}]

期望看到的是类似 README 中的聚合视图(ID 前缀、状态、任务标题、步数与最后工具、子代理自述):

b147d0d8 [running] — 核对第三章数据表
    11 steps, last tool: read, idle 0s
    • 读完 14 页,发现 3 处数值和正文对不上,正在逐条核对。

典型场景:并行委派多个 subagent 做检索、核对、整理;父代理在 join 或决定是否重派之前,先确认某个子代理仍在推进而非静默失败,避免 duplicate delegation。

适用场景与注意

适合谁: 在 DSH 里频繁用 subagent / subagent_fork(或已验证的 spawn_teammate)做多智能体编排、又需要父模型「看见进度叙述」而不是猜 inactive 含义的开发者。

注意:

  • workflow、ralph 路径 README 标注为未实测,生产环境请先小规模验证。
  • 观测能力依赖 Harness 内部登记与 session 投影实现;DSH 大版本升级后应回归测试。
  • 社区插件星标(目录页资料:2 stars)不代表官方背书;问题反馈可走仓库 Issues。

结尾

what-sub-agents-doing-now 把子代理已写入 session 的进度旁白和运行元数据读出来,专门补上「父代理看不见 subagent 子树」和「状态只有 running/inactive」这两块缺口,且只读、不遮蔽上游工具。

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

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

Xiaoye