前言¶
在 DeepSeek Harness(DSH)裏同時開多個 workspace、主對話和 subagent 時,側欄通常只列會話,不會把 agent 譜系攤開。想確認「某個 subagent 在跑什麼、掛在哪一層、下次定時什麼時候到」,往往要逐個會話切進去看。Activity 類面板要麼佔用面積大,要麼和當前 rc 版本對不上。Agent Tree 是社區維護的 DSH Web 客戶端插件,用一張常駐右下角的小卡片,把 workspace → 對話 → subagent(及更深層)的實時狀態畫成樹形,並補上待辦交互、定時任務倒計時和本機 claude/codex 進程等觀測信息。
這是什麼¶
Agent Tree(npm 包名 dsh-plugin-agent-tree)由 yuna78 維護,分類爲客戶端插件。它在 DSH Web 頁面注入一張 288px 寬的浮動卡(空閒時收成膠囊,不會消失),用類似 git log --graph 的連接線展示 dsh → workspace → 對話 → subagent → 孫代理;只保留正在幹活或有定時任務的分支,避免卡片無限變長。數據走 DSH 客戶端公開的 UI 契約,不 patch 宿主、不讀數據庫;本機多實例與外部 CLI 由插件宿主半部通過 ps、lsof 等只讀方式發現。
目錄頁:skillhub.cn/plugins/yuna78/dsh-agent-tree
源碼與文檔:github.com/yuna78/dsh-agent-tree(MIT)
核心功能¶
樹形結構與層級¶
- 頂層並列
dsh實例與本機claude/codex(及 Claude 桌面版等識別到的節點),各自向下展開 workspace、對話、subagent。 - 用
├─、└─、│縮進;▾ / ▸摺疊。顏色表示層級:頂層對話綠點、第 2 層 subagent 藍點、更深層紫點、已結束灰點。 - 每行右側顯示模型短標籤(來自會話投影
modelSelection,next→lastUsed);subagent 無獨立記錄時繼承上級,懸停有說明。
膠囊與窗口頭¶
- 空閒時收成膠囊,例如
🌳 Agent Tree Dock加可選計數:琥珀「N 待處理」、綠色🤖N(在跑)、⏰N(定時);非零才顯示。點擊或Enter/Space展開,可拖動;位置記在localStorage(dsh-agent-tree:pos)。 - 卡片頂欄(Agent Tree Dock):狀態副行(待處理 · 在跑 · 定時)、換皮膚、檢查更新(僅點擊時向 npm registry 只讀 GET)、最小化。
待辦與定時¶
pendingInteraction爲question/approval/plan-review的會話:琥珀色行、待答 / 待批 / 待審徽標,排在在跑會話之前(避免「沒在跑就從列表消失」)。- 定時任務讀 Automation 的
schedule.catalog()(服務remote.schedule,命名空間未掛載時用ctx.get兜底);間歇工作的會話即使當前未跑也會列出,右側顯示⏱倒計時。
多 DSH 實例與本機外部 agent¶
- 同時運行多個
dsh web --port 30xx時,其他實例上仍在幹活或待拍板的會話會出現在卡上,每個實例一個頂層節點(如dsh :3083);點行可在新標籤打開對應實例。發現方式爲本機ps+lsof,走本地文件,無需跨實例鑑權。 - 宿主半部只讀接口
GET /local/dsh-agent-tree/processes:識別本機 claude / codex CLI 及 Claude 桌面版主進程等,與dsh同級展示;codex 行名優先取自 rollout 首條真實用戶消息,子線程按parent_thread_id從~/.codex/sessions/**/rollout-*.jsonl還原。除用戶主動點「檢查更新」外,插件不聯網、不外發會話內容。
交互與其它¶
- 點任意一行:
subagentAddress(id)+uiWorkspace.openSession(),subagent 可直達其對話。 - 內置六套皮膚(默認 / 櫻花 / 鯨魚娘等),可經
window.__DSH_AGENT_TREE_SKINS__擴展,見倉庫 皮膚指南。 - macOS 可選
npm run dock將同一張卡片以透明置頂浮窗顯示(見 桌面浮窗指南)。
卡高隨內容自適應,最多約 48 行;底部有會話 / 子代理 / 運行中數量自檢,live 表示接入了官方實時狀態流。
安裝與啓用¶
前置與 DSH 運行時一致:Node.js ^22.19 或 ≥24,pnpm 10+,DSH ≥ 0.2.0-rc.2 且 < 0.3(README 寫明 0.2.0-rc.2 與 0.2.1-rc.2 已實測)。
下面用獨立 profile 安裝並啓動:
# 1) 建一個專用 profile(也可以裝到現有的 web profile)
dsh --profile agent-tree --from-default-profile web
# 2) 從 npm 安裝
dsh plugin --profile agent-tree add dsh-plugin-agent-tree
# 3) 啓動
dsh --profile agent-tree --port 13090
裝到已有 profile:
dsh plugin --profile web add dsh-plugin-agent-tree
從 GitHub 源碼安裝(適合改代碼):
dsh plugin --profile web add "github:yuna78/dsh-agent-tree"
裝完後必須重啓一次 dsh(宿主半部註冊了進程接口),瀏覽器硬刷新(Cmd/Ctrl + Shift + R)。卸載與排查見倉庫 安裝與配置。
典型用法¶
- 打開 DSH Web,看右下角膠囊或展開後的 Agent Tree Dock。
- 優先處理頂部的琥珀色「待答 / 待批 / 待審」行;綠色/藍/紫點行表示各層 agent 在跑或剛結束的狀態。
- 需要跳轉時點擊對應行,會打開該會話(含 subagent)。
- 多開端口時展開
dsh :端口節點,查看其它實例上仍在運行的分支;本機 codex/claude 在頂層與dsh並列。 - 窗口頭轉圈按鈕手動檢查 npm 最新版;有新版會給出可複製升級命令,結果緩存約 30 分鐘。
界面元素對照表見 GitHub README「怎麼用」 與 使用手冊。
適用場景與注意¶
適合經常在 DSH 裏跑主 agent + subagent、或同時開多個 Web 端口、並在本機還有 claude/codex CLI 的開發者:用一張小卡統一看「誰在跑、在哪一層、用什麼模型、定時何時觸發、哪裏需要你拍板」。
請注意:
- 插件以當前 DSH 進程的用戶權限運行;宿主半部會執行只讀的
ps、lsof並讀取本機會話與 codex rollout 等路徑。安裝前應閱讀源碼與 MIT 許可證,確認可接受其數據範圍(README「外部進程監控:範圍與邊界」一節有說明)。 - 引擎約束見
package.json:dshpeer 爲>=0.2.0-rc.2 <0.3.0;與更高或更低主版本是否兼容需自行對照 DSH 發行說明。 - 社區目錄 skillhub.cn 與 GitHub 倉庫由社區維護,與 DeepSeek / 幻方無官方從屬關係;DSH 生態本身是「一切皆插件」的思路,本插件是其中一條可觀測性補充。
結尾¶
Agent Tree 不替代 DSH 側欄,而是補 agent 譜系與跨實例、跨 CLI 的一屏視圖:288px 常駐、有活展開、無活收成膠囊。若要安裝命令、皮膚與桌面浮窗細節,以倉庫 README 與 docs/ 爲準。
- 目錄頁:https://www.skillhub.cn/plugins/yuna78/dsh-agent-tree
- GitHub:https://github.com/yuna78/dsh-agent-tree