dsh-three-level-agent:三級子代理委派與代理樹內異步通信

前言

在 DeepSeek Harness(DSH)裏用子代理拆分複雜任務時,默認的委派深度和單棵樹容量往往不夠用;主代理只能再掛一層子代理,樹內節點之間也缺少統一的、可異步往來的消息通道。維護者 AntheaLaffy 發佈的 dsh-three-level-agent(社區目錄分類爲工作流)針對這兩點做了擴展:把委派深度上限提高到可形成「主 → 子 → 孫」三級結構,並把單棵代理樹的駐留容量提升到足以支撐 1×9×9 規模的子代理;同時註冊全局工具 agent_message,讓同一代理樹內任意節點可以互發消息,並附帶 Web 端對話 UI 的樹形面板(通過客戶端注入實現)。下文按安裝、配置與能力說明如何啓用該插件。

這是什麼

dsh-three-level-agent 是 DSH 的三級代理插件,版本 1.0.0(MIT 許可證),要求 DSH 引擎 >=0.2.2-rc.1 且 <0.3.0。它不改變 DSH「一切皆插件」的擴展方式,而是通過 cordis.patch.yml 調整運行時與子代理相關的上限,並增加樹內消息投遞與前端展示能力。社區目錄頁:skillhub 插件頁;源碼與說明:GitHub 倉庫。

核心功能

三級子代理與容量

插件允許在子代理運行時繼續委派子代理,形成三級結構:

  1. 委派深度:maxDepth 默認爲 2,即深度 1 的子代理可以再建自己的子代理(主代理 → 子代理 → 孫代理)。
  2. 樹容量:maxActiveSubagents 默認爲 128,README 說明該值足以容納 1×9×9 = 90 個子代理。

樹內雙向通信(agent_message)

註冊全局工具 agent_message,代理樹內任意代理之間可以互發消息,包括祖先、後代和同樹兄弟。目標地址可使用 list_agents 返回的 id,或使用快捷方式 "parent"、"root"。

異步投遞與冷恢復

消息發送採用「入隊即返回」模型,發送方不必阻塞等待:

  1. 每個收件人維護一條 FIFO 隊列;後臺投遞線程在互斥鎖內線性投遞。
  2. 連接就緒採用分輪有界等待;超過 maxWaitMs 仍無法投遞時,失敗會通知發送方。
  3. 已結束的子代理在父代理仍存活時不會從樹索引移除;投遞失敗時可由運行時的冷恢復(cold resume)喚醒收件人,行爲與原生 send_message 一致。

Web UI 樹面板

package.json 中聲明客戶端向 @deepseek-ai/dsh-client-ui-conversation 注入 Web 模塊(immediately: true),用於在對話界面展示代理樹結構,便於觀察多級委派後的節點佈局。

安裝與啓用

推薦從插件市場索引安裝,無需本地 clone 倉庫。

市場索引(推薦)

在 DSH Discover 頁的市場設置裏添加索引 URL:

https://raw.githubusercontent.com/AntheaLaffy/dsh-three-level-agent/main/market/index.json

保存後,Discover 頁會出現 三級代理 / Three-level agents,通過一鍵安裝(plugin_manager 的 install_bundle,使用市場條目中的 install target)完成部署。索引格式爲 format 1,並通過 git 類型的 install source 固定當前 commit。

本地路徑安裝

若你已有插件目錄的本地副本,在 profile 啓動的 dsh 會話中執行:

plugin_manager install_bundle /path/to/dsh-three-level-agent

將 /path/to/dsh-three-level-agent 換成實際路徑即可。

配置說明

插件配置寫在 profile 的 cordis.patch.yml 裏,典型條目如下。下列字段含義均來自倉庫 README。

- id: three-level-agent
  name: 'dsh-three-level-agent'
  config:
    maxDepth: 2
    maxActiveSubagents: 128
配置項 默認值 說明
maxDepth 2 委派深度上限;≥2 即開啓三級代理
maxActiveSubagents 128 單棵樹駐留子代理容量上限
readyTimeoutMs 30000 單輪連接就緒等待時長(毫秒)
maxWaitMs 600000 排隊消息等待投遞的總時間預算,超時則失敗並通知發送方
delivery queue queue 在獨立下一回合投遞;steer 在最近步驟邊界注入

按需調整 readyTimeoutMs、maxWaitMs 與 delivery 時,在同一 config 塊中追加對應鍵即可。

典型用法思路

README 未給出完整對話腳本,但能力組合可以這樣理解:

  1. 在 profile 中安裝並啓用插件,確認 maxDepth 至少爲 2、maxActiveSubagents 不低於你計劃展開的子代理數量(例如扇出接近 9×9 時保持默認 128)。
  2. 主代理按任務拆分子代理;子代理在深度允許時繼續 Task 或等價委派,形成三級樹。
  3. 需要跨節點協作時,調用 agent_message,用 list_agents 查 id,或對父節點、根節點使用 "parent" / "root"。
  4. 在 Web 對話界面查看注入的樹面板,對照運行中的代理 id 與層級。

具體工具名與調用參數以你當前 DSH 版本的內置文檔爲準;本插件擴展的是深度、容量與 agent_message 投遞語義,不替代 Harness 既有的子代理啓動方式。

適用場景與注意

適合誰:需要在一次 Harness 會話裏做較深的任務分解(例如一層協調、一層專責執行、一層並行子任務),且希望樹內節點能異步互發消息、並在 UI 上看到整棵樹結構的開發者。

運行與安全:插件與 DSH 進程同權限運行;安裝前請閱讀 GitHub 源碼 與 MIT 許可證,確認 index.js、client.js 與 cordis.patch.yml 符合你的環境策略。社區目錄站點 skillhub.cn 爲獨立生態索引,與 DeepSeek / 幻方無官方從屬關係。

引擎版本:package.json 要求 dsh 在 0.2.2-rc.1 至 0.3.0 之前;升級主程序時需覈對兼容性。

結尾

dsh-three-level-agent 把子代理委派推到三級、把單樹容量拉到 128,並用 agent_message 補上樹內異步通信與失敗時的冷恢復,適合多智能體工作流編排。進一步瞭解可訪問 社區目錄頁 與 GitHub 倉庫。

羽毛球分组比赛记分
小程序二维码

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

小夜