前言¶
在 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」這兩塊缺口,且只讀、不遮蔽上游工具。