前言¶
在 DeepSeek Harness(DSH)裏做高強度開發時,常見做法是主會話用強模型,需要時再派子代理或走 workflow。原生 subagent、官方 @deepseek-ai/dsh-experimental-agent-team-profile(Agent Team)能分擔任務,但在模型成本、主代理是否「親自下場」、長跑 Worker 的可觀測性,以及批量同構任務的結構化執行上,仍容易踩坑:子代理模型要麼繼承主模型、要麼靠主模型每次傳參;主代理往往仍握有讀寫與終端工具;派出後只能乾等或阻塞輪詢。
下面介紹社區插件 DSH Orchestrator(維護者 SShiRkiT,GitHub:SShiRkiT/dsh-orchestrator,SkillHub 目錄:dsh-orchestrator)。它面向 DSH Desktop / Web GUI,用「調度模式」把主代理鎖在規劃與驗收,把執行統一交給可單獨配置路由的子代理,並附帶零 Token 日誌巡檢與聲明式批量流水線。插件分類爲工作流;許可證 MIT。
這是什麼¶
一句話定位:Plan-only 主代理 + 可切換默認路由的委派 Worker,專爲 DeepSeek Harness 設計的硬隔離調度模式。
插件形態爲 Cordis 後端補丁(cordis.patch.yml)與 Web GUI 客戶端擴展(lib/client.js)。環境要求:宿主爲 DSH Desktop 或 Web GUI,Node.js >= 22(DSH Desktop 運行時內置),界面中 / 英自適應。
與原生 subagent / Agent Team 的差異(資料摘要)¶
| 場景 | 原生 subagent / Agent Team | DSH Orchestrator |
|---|---|---|
| 模型成本 | 無獨立子代理面板,易繼承貴模型或傳參遺漏 | UI 雙路由:Main 與 Subagent 解耦;未配子代理模型時派發報錯,不回退主模型 |
| 主代理動手 | 靠提示詞約束,工具仍在 | tools.restrict + tools.guard:默認禁 42 項讀寫/搜索/終端等;主代理保留 delegate、orchestrate、send_message 等 |
| 便宜模型卡殼 | 運行期黑盒 | 後臺讀會話事件日誌巡檢(不調 LLM),超時或停滯時通知主代理糾偏 |
| 大批量同構任務 | workflow 手寫 JS,易失控 | 聲明式 orchestrate:items × stages,併發與 JSON Schema 校驗 |
核心功能¶
雙路由與調度模式面板¶
輸入框下方有「調度模式」面板:
- Main Agent:使用宿主
agent-default-model(面板可讀寫),適合澄清需求、切分任務、驗收結果。 - Subagent:
workerProvider/workerModel必填;所有經delegate、orchestrate派出的 Worker 強制走該便宜路由(除非當前消息明確指定其他模型)。 - 總開關
enabled:關閉後立即恢復主代理全部工具,無需重開會話。
面板右側 Denied Tools 可勾選宿主、MCP 與其他插件工具;deniedTools / allowedTools 爲 volatile 配置,下一條消息生效。
主代理繳械、子代理全工具¶
默認主代理不可使用 read、edit、bash、grep、原生 subagent、workflow 等執行類工具;子代理在獨立上下文中保留完整工具鏈,收尾結論回傳主代理驗收。
零 Token 後臺巡檢¶
在 superviseEnabled 爲 true 時,按 superviseIntervalSeconds(默認 600 秒,範圍 10–86400)掃描運行中 Worker 的事件日誌,彙總時長、輪次、工具調用與最後輸出,喚醒主代理。主代理可回覆「巡檢:正常」、send_message 糾偏,或 interrupt_agent 止損。相關字段:superviseMaxNoticesPerChild(默認 3)、superviseNotifyOnNoProgress(默認 false)。
delegate 與 orchestrate¶
delegate:派發自包含任務(目標、可改文件、驗收命令、失敗兜底);同回合多次調用可並行;子代理被注入簡體中文回覆要求,收尾禁止對父代理send_message(結果自動送達主代理)。orchestrate:批量流水線,items1–64、stages1–8,maxConcurrency1–16(默認 4);支持多階段逐條目推進、單項失敗隔離與階段級 JSON Schema 校驗。
安裝與啓用¶
在 DSH 插件頁從 GitHub 添加,或使用 CLI(資料原文):
SShiRkiT/dsh-orchestrator#main
dsh plugin --profile desktop add SShiRkiT/dsh-orchestrator#main
安裝後需完全退出並重新打開 DSH(客戶端插件在啓動時組合,不支持熱更新)。
配置說明¶
以下均爲 volatile,面板修改後立即生效(子代理模型從下一次委派起生效):
| 字段 | 默認值 | 說明 |
|---|---|---|
enabled |
true |
調度模式總開關 |
workerProvider / workerModel |
"" |
子代理路由,必填 |
workerReasoningEffort |
"" |
子代理思考強度,留空用模型默認 |
deniedTools / allowedTools |
42 項內置名單 | 主代理禁/放工具 |
superviseEnabled |
true |
巡檢總開關 |
superviseIntervalSeconds |
600 |
巡檢間隔(秒) |
superviseMaxNoticesPerChild |
3 |
每子代理最多通知次數(0 表示不限) |
superviseNotifyOnNoProgress |
false |
無新日誌是否仍通知 |
典型用法(操作順序)¶
- 安裝插件並重啓 DSH,在「調度模式」面板爲 Main 選強模型、爲 Subagent 選便宜模型(未配子代理模型時派發會被攔截)。
- 保持
enabled開啓,按需調整 Denied Tools 與巡檢間隔。 - 在主會話用自然語言拆任務,讓主代理通過
delegate並行派出 Worker,或用orchestrate處理多條目多階段批量作業。 - 收到巡檢摘要時,用極少回覆確認進展,或通過
send_message/interrupt_agent糾偏或止損。 - 需要主代理臨時親自讀寫、跑命令時,關閉「啓用調度模式」即可。
README 中的示例圖路徑:docs/images/dispatch-panel.png(調度面板)、docs/images/patrol-notice.png(巡檢糾偏),可在倉庫文檔中查看。
適用場景與注意¶
適合:希望主模型只做規劃與驗收、執行統一走廉價高吞吐模型;長跑子任務需要日誌級巡檢而非盲等;批量同構條目需要結構化扇出與階段校驗的團隊或個人。
注意:
- 插件在當前 DSH 進程權限下運行,安裝前請閱讀 源碼 與 MIT 許可證,確認工具禁列表與委派行爲符合你的安全預期。
- DSH 生態是「一切皆插件」;SkillHub 等爲社區目錄,與 DeepSeek / 幻方無官方從屬關係。
- README 徽章顯示版本 0.6.2,
package.json中版本爲 0.6.5,以你本地安裝的實際包爲準。
結尾¶
DSH Orchestrator 把「貴腦便宜手」從提示詞約定變成面板路由加工具閘門,並用日誌巡檢與 orchestrate 補全批量調度缺口。需要細節與英文說明時,見倉庫 README 與 README.en.md。
- 目錄頁:https://www.skillhub.cn/plugins/SShiRkiT/dsh-orchestrator
- GitHub:https://github.com/SShiRkiT/dsh-orchestrator