前言¶
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
對應兩處配置:
- 宿主深度:插件 → 子智能體 → 限制,
maxDepth≥ 2(或在cordis.patch.yml裏寫subagent.maxDepth: 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