dsh-agent-tree:把 Lead→成員→孫代理 畫成一棵實時樹

前言

DSH 裏跑多智能體時,Lead 派出成員,成員再派孫代理。層數一多,人腦就記不住誰派生了誰:排查問題時盯着某個成員的輸出,其實要往上找它的父會話才知道上下文從哪來。現有的辦法是翻日誌、手動對照 session 列表,效率不高。

dsh-agent-tree 解決的就是這件事:它讀取會話快照裏的 parentSessionId,把多層代理關係畫成一棵實時樹,並附帶團隊焦點、真狀態點和模型路由中心。維護者爲 ruaruaTon,分類屬於工作流,來源是 GitHub 倉庫,許可證 MIT,當前版本 0.4.5,倉庫星標爲 0,屬於比較新的項目。

下面按「能做什麼 → 安裝 → 配置 → 數據原理 → 邊界」的順序介紹。

一、核心功能

1. 代際樹

按會話快照的 parentSessionId 建樹,層級沒有上限,成員、孫代理、重孫代理都會掛到對應父節點下。這一層用的是 client 側數據,不需要宿主事件,構建成本低。

2. 兩種視圖

  • 寬容器(中心面板 ≥ 760px)渲染橫向組織樹,卡片加連接線;
  • 窄容器(右欄頁籤)自動切成縮進列表;
  • 拖動分欄會實時切換視圖,不需要重啓或刷新。

3. 真狀態點

host 半訂閱 agent/created 與 agent/status 事件,並結合 agents 的即時活性:🔵活躍、🟢已結束、🟡待命、⚪沉睡、🔴失敗。事件缺失時會降級爲按活躍時間推斷,面板不會因此空白。

4. 團隊焦點與只看活躍

多團隊並行時默認鎖定最新派出的團隊,可以用下拉一鍵切換,焦點視圖支持 1.5× 放大。默認摺疊 2 小時無活動的沉睡葉枝,也可以一鍵展開全量。

5. 模型路由中心(可選增強)

需要 dsh-plugin-subagent-director。開啓後有兩件事:

  • 孫代理默認模型可熱配置,寫入 subagent-director 設置後立即生效;白名單模式開啓時會自動收斂到授權路由。
  • 孫代理節點掛上實際運行路由的標籤,讀取 session 的 request/header,走的是官方通道。

另有團隊覆蓋層,依賴 @nanmicoder/dsh-agent-teams,提供團隊名冊、任務計數和成員模型路由,點 💬 可直接跳到成員會話。

二、安裝與啓用

插件市場

在 DSH 裏走「插件 → 添加插件」,搜索 dsh-agent-tree,或把倉庫地址粘進添加框即可。

npm 方式

dsh plugin --profile <你的profile> add dsh-agent-tree

安裝後重啓一次 DSH,側邊欄出現「代際樹」圖標即表示成功。

環境要求

DeepSeek Harness >= 0.2.1-rc.2,README 記錄在 0.2.1-rc.5 Desktop / Windows 上實測。兩個可選增強不裝也能正常使用,面板會自動降級。

三、想看到孫代理,兩道閘要打開

孫代理(成員的子代理)默認被兩道閘攔住,面板要顯示它們需要同時滿足:

subagent:
  maxDepth: 2
- id: agent-teams
  memberMaxDepth: 1

對應兩處配置:

  1. 宿主深度:插件 → 子智能體 → 限制,maxDepth ≥ 2(或在 cordis.patch.yml 裏寫 subagent.maxDepth: 2)。
  2. 團隊成員派生權限:agent-teams 的 memberMaxDepth: 1,寫在 cordis.patch.yml 的 - id: agent-teams 條目裏。

改完需要重啓一次 DSH。

四、數據從哪裏來

數據 來源 說明
血緣樹 會話快照 parentSessionId(client 側) 無需宿主事件,穩定低風險
團隊 / 成員 / 路由 .agent-teams/*/team.json(host 半讀取) 成員 id 即會話 id,可直接跳轉
真狀態 agent/created + agent/status 事件 + agents 即時活性(host 半訂閱) 事件僅本進程內,重啓後舊會話自動降級爲時間推斷
孫代實際路由 subagent-director 橋接 subagentModel(session request/header) 官方可觀測性同源
模型目錄 宿主模型目錄(三級回退讀取) 與任務看板同款

數據源不止一個,排查顯示問題時可以先定位是快照缺失還是事件缺失。

五、故障排除

  • 啓動失敗彈窗:只點「Exit」,不要點 Disable third-party plugins。把 %APPDATA%\@deepseek-ai\dsh-desktop\logs\crash-*.log 附到 issue 上。
  • 面板空白 / 沒有圖標:改過 client.js 之後要重啓一次;同時確認 bundles 裏有 agent-tree。
  • 團隊覆蓋層提示 cwd 缺失:當前根會話的快照沒有工作區字段,血緣樹不受影響。

六、適用場景與注意

適合已經在 DSH 裏跑多智能體、層級至少到成員一層,並且希望在界面上而不是日誌裏看到代理關係的人。如果只有一層 Lead → 成員,這個面板帶來的增量有限。

安裝前應該自己讀一遍源碼。插件以當前 DSH 進程的權限運行,其中自帶的 cordis.patch.yml 會修改宿主運行時行爲。許可證是 MIT,使用和修改都比較自由。

已知邊界:模型路由中心的寫入依賴 subagent-director 橋接。在 headless 環境或未安裝該插件時,該區塊只顯示降級提示,其餘功能不受影響。

結尾

dsh-agent-tree 沒有引入新的代理調度邏輯,只是把已有的會話快照和宿主事件投影成一棵可交互的樹。分層一深,這層可見性的提升會比較明顯。

  • GitHub:https://github.com/ruaruaTon/dsh-agent-tree
  • 插件目錄頁:https://www.skillhub.cn/plugins/ruaruaTon/dsh-agent-tree
羽毛球分组比赛记分
小程序二维码

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

小夜