dsh-subagent-setup:按別名把子任務委派到指定子智能體與模型

前言

在 DeepSeek Harness(DSH)裏做複雜任務時,主會話往往希望把某類工作交給「另一條模型 + 另一套上下文」去跑,而不是在同一會話裏硬切換模型。常見做法是手寫 YAML 或散落在多處配置,改路由、改「什麼時候用誰」都不直觀,也和 DSH「一切皆插件」的擴展方式不太一致。

下面介紹的 dsh-subagent-setup(維護者 twoweeks1995)是面向 DSH 的子智能體模型路由插件:用本地 JSON 和中文設置頁維護一張「別名 → 子智能體代理 + 模型」表,主智能體通過工具按別名委派;配置不碰 YAML。社區目錄頁:https://www.skillhub.cn/plugins/twoweeks1995/dsh-subagent-setup;源碼與說明:https://github.com/twoweeks1995/dsh-subagent-setup(當前 package 版本 0.2.2,MIT 許可,GitHub 星標爲 0)。

這是什麼

一句話:給模型一組可委派的子智能體句柄(別名),每個別名綁定真實的 provider / model,並用「何時使用」字段指導選路。

配置保存在 <DSH_HOME>/subagent-setup/config.json,首次啓動用默認值;全部在設置頁「子智能體設置」完成,不需要改任何 YAML。

開發與驗證環境爲 DSH 桌面版 0.2.1-rc.3(開發起始於 rc.2)、Node ≥ 20。更早的 DSH 版本未實測;若裝到舊版本,可查看 <DSH_HOME>/subagent-setup/last-startup.log,其中逐行記錄 tracker / wait / close / sessionQuery / webServer 等能力探測結果。

核心功能

資料中明確列出的能力如下。

五個工具

工具 用途
subagent_route 按別名委派;前臺等結果原樣返回,後臺返回 childId
subagent_route_catalog 只讀列出本機所有子智能體代理與模型(配路由時查真實標識)
subagent_route_configure 讀/寫本插件配置,可在對話裏協助改路由
subagent_route_wait 後臺委派後調用,阻塞到結束並返回結果
close_subagent 釋放駐留的 continuable 子智能體(釋放內存與上下文,不退 token 賬)

配套技能 subagent-route-setup(也可 /subagent-route-setup 手動觸發)說明如何按場景選路、如何寫「何時使用」、如何安全改配置。

重要行爲:把子智能體列表清空等於關閉委派——列表爲空時委派工具不會被註冊。

設置頁與界面

  • 中文設置頁:模型採用二級下拉(先選子智能體代理,再選子智能體模型),末尾有「其他」可手動填寫模型標識。
  • 子代理會話頭部:膠囊顯示實際路由(懸停可見完整「子智能體代理 / 模型標識」);可一鍵釋放駐留的後臺子智能體。
  • 後臺委派 + 匯合:派出去拿 childId,最後用 subagent_route_wait 一次性收齊結果。
  • 開關:會話頭部的路由膠囊與釋放按鈕各有獨立開關(showRouteDock、showCloseAction),可單獨停用。

架構(兩個條目)

主+設置條目 subagent-setup 負責工具、系統提示、技能、設置頁 /settings 與目錄 /catalog;會話條目 subagent-setup-session 負責頭部 /subagent-model、/close-subagent。停用會話條目時,頭部組件消失,設置頁與工具不受影響。

安裝與啓用

側邊欄「插件」→「安裝第三方插件」,下面三種輸入任選其一。

① npm 包名

dsh-subagent-setup

② GitHub 鏈接

https://github.com/twoweeks1995/dsh-subagent-setup

③ 本地 tgz

先從 Releases 下載 tgz,安裝框填絕對路徑(版本號以 Releases 頁爲準),例如:

D:\temp\dsh-subagent-setup-0.2.2.tgz

安裝後完全退出 DSH 再啓動,設置頁會出現「子智能體設置」。

配置要點

委派默認值(節選)

設置頁 配置鍵 默認 說明
執行方式 subagentProvider spawn spawn 每次新建獨立上下文;fork 繼承當前會話
最大委派深度 maxDepth 3 子智能體是否還能繼續往下派
閒置多少輪後從列表隱藏 listingInactivityTurns 20 連續多少輪未聯繫則不出現在 list_agents;0 表示不過濾
允許後臺運行子智能體 enableRunInBackground 開 關則 subagent_route 不提供 run_in_background

每條子智能體

必填:別名 alias、子智能體代理 provider、子智能體模型 model、何時使用 description(給模型看的選路依據,需寫清任務長什麼樣)。

可選:顯示名 displayName、最大令牌數 maxTokens、默認思考檔位 reasoningEffort、Agent 預設 agentPreset、標籤 tags(kebab-case,逗號分隔)。

保存時會校驗別名格式(小寫字母、數字、下劃線、連字符,以字母或數字開頭、不可重名)等;填錯會當場報錯、存不進去。

別名建議用中性詞

別名是模型寫進工具調用的句柄,比「何時使用」更容易被注意到。README 記載:帶模型身份或強弱暗示的別名在實測中 0/2 命中,換成中性別名(如 a1…aN)後 8/8 命中。人可讀名稱放「顯示名」,用途寫進 description 與標籤,不要寫進別名。

典型用法(可復現流程)

  1. 在「子智能體設置」裏新增若干條目:爲每條填中性 alias、選好 provider / model、寫好 description。
  2. 主會話中模型調用 subagent_route,傳入目標 alias 與任務內容;需要並行時可後臺委派,記下返回的 childId。
  3. 後臺任務結束後調用 subagent_route_wait 收齊結果。
  4. 若有 continuable 子智能體需要結束佔用,在會話頭部使用「終止可持續狀態」,或調用 close_subagent。
  5. 不確定本機有哪些代理與模型標識時,先調用 subagent_route_catalog 或打開設置頁二級下拉覈對。

需要模型按規範改路由時,可觸發技能 /subagent-route-setup,或使用 subagent_route_configure。

適用場景與注意

適合誰:在 DSH 桌面版上希望「主會話統一調度、子任務走不同代理/模型」的開發者;希望配置集中在 JSON + 設置頁、不寫 YAML 的用戶。

權限與安全:插件以當前 DSH 進程權限運行,會讀寫 <DSH_HOME>/subagent-setup/ 下配置與日誌。安裝前應自行查看源碼與 MIT 許可證,確認路由與委派行爲符合預期。

已知限制(README 原文要點):

  • 路由選擇不保證正確;模型可能按模型名自行腦補而越過 description。重要任務應由調用方顯式指定別名。
  • 可能與其它「子智能體路由 / 委派」插件衝突:工具重名、兩套 subagent_route 清單並存、派發與等待跨插件使用可能收空結果。建議只保留一套,或保證派發、等待、釋放來自同一插件。

Headless:主條目依賴 webServer,headless 環境不再加載;作者說明本機場景以桌面應用爲主。

結尾

dsh-subagent-setup 把子智能體路由收成「別名 + 本地 JSON + 五個工具 + 中文設置頁」,並支持後臺委派匯合與會話頭部的路由展示、釋放控制。若要安裝或查版本,以 GitHub README 與 Releases 爲準。

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

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

小夜