Agent Tree:DSH Web 端的迷你 agent 樹

前言

在 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)。卸載與排查見倉庫 安裝與配置。

典型用法

  1. 打開 DSH Web,看右下角膠囊或展開後的 Agent Tree Dock。
  2. 優先處理頂部的琥珀色「待答 / 待批 / 待審」行;綠色/藍/紫點行表示各層 agent 在跑或剛結束的狀態。
  3. 需要跳轉時點擊對應行,會打開該會話(含 subagent)。
  4. 多開端口時展開 dsh :端口 節點,查看其它實例上仍在運行的分支;本機 codex/claude 在頂層與 dsh 並列。
  5. 窗口頭轉圈按鈕手動檢查 npm 最新版;有新版會給出可複製升級命令,結果緩存約 30 分鐘。

界面元素對照表見 GitHub README「怎麼用」 與 使用手冊。

適用場景與注意

適合經常在 DSH 裏跑主 agent + subagent、或同時開多個 Web 端口、並在本機還有 claude/codex CLI 的開發者:用一張小卡統一看「誰在跑、在哪一層、用什麼模型、定時何時觸發、哪裏需要你拍板」。

請注意:

  • 插件以當前 DSH 進程的用戶權限運行;宿主半部會執行只讀的 ps、lsof 並讀取本機會話與 codex rollout 等路徑。安裝前應閱讀源碼與 MIT 許可證,確認可接受其數據範圍(README「外部進程監控:範圍與邊界」一節有說明)。
  • 引擎約束見 package.json:dsh peer 爲 >=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
羽毛球分组比赛记分
小程序二维码

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

小夜