前言¶
在 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 主仓库无官方从属关系。
核心功能(已核实)¶
- 列出 subagent / subagent_fork 等路径创建的子代理,弥补
list_agents的 roster 盲区(对 teammate 仍提供更细进度)。 - 展示运行状态、步数、最后工具名、idle 时间,并 surface 子代理 session 里自写的进度旁白(README 示例中的 bullet 行)。
- 只读、non-shadowing:不替换或遮蔽 Harness 自带工具,父代理在需要时调用插件提供的观测能力即可。
- 零配置:README 明确「装上就用,不用改配置、不用写提示词」。
安装与启用¶
插件以当前 DSH 进程的权限运行;安装前建议自行查看 GitHub 仓库 源码与 MIT 许可证。
方式一:桌面端(推荐,带事务回滚)¶
README 说明插件管理器支持事务回滚,是资料中唯一强调带安全网的安装路径。
- 打开 设置 → 插件
- 点击 添加插件
- 在「包名或地址」粘贴仓库地址:
https://github.com/REALOIYO/what-sub-agents-doing-now
- 确认安装,装完后重启 DSH
方式二:命令行¶
将 <profile> 换成你使用的 profile 名:
dsh plugin --profile <profile> add what-sub-agents-doing-now
方式三:本地开发(link)¶
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」这两块缺口,且只读、不遮蔽上游工具。