dsh-taskforce:在 DeepSeek Harness 裏用任務圖拆分長程多智能體協作

前言

在 DeepSeek Harness(dsh)裏處理跨度大、步驟多的請求時,常見做法是讓同一個會話裏的主智能體一路做到底。上下文會不斷疊加規劃、執行細節和中間結論,窗口壓力變大,後面的步驟也更容易被前面的噪聲干擾。

下面介紹社區插件 dsh-taskforce(倉庫 LiSheng5/dsh-taskforce,目錄頁 SkillHub)。它把長任務拆成任務圖(DAG),由規劃者分解工作,各 worker 在一次性、只含本任務所需信息的上下文中執行,並返回結構化報告而非完整對話轉錄;主流程再審查、通過或重做。DeepSeek Harness 的生態是「一切皆插件」;SkillHub 等目錄站由社區維護,與 DeepSeek / 幻方無官方從屬關係。

這是什麼

dsh-taskforce 是面向 DeepSeek Harness 的多智能體編排插件,維護者爲 LiSheng5。package 版本爲 0.1.0(見倉庫 package.json)。

核心循環(資料原文):plan → dispatch(可並行)→ structured reports → review → pass | redo。在完整循環之上,插件還包含跨進程重啓後的圖恢復、Web 編排面板,以及用於「大請求未點名編排時仍可能被選中」的系統提示片段;其中「模型是否會在無人點名時主動調用 orchestrate_plan」的行爲半部分,README 標明曾因無效 API Key 未跑完驗證。

命名說明(有意保留):本地目錄歷史名 dsh-orchestra,GitHub 與包名爲 dsh-taskforce;工具名 orchestrate_*、服務名 orchestra、投影鍵 orchestraGraph 與主機 tool-call 日誌綁定,改名會破壞舊會話恢復,不宜自行「整理」。

核心功能

任務圖與上下文路由

  • 規劃階段生成任務圖;src/graph.js 負責 DAG 校驗、就緒判斷與狀態遷移(CAS)。
  • src/router.js 爲每個 worker 準備「任務書」,只路由該任務需要的上下文。
  • 協議與校驗:src/protocol.js(Task / Report / Verdict 等 JSON Schema)、src/json-schema.js(參數校驗子集)。

編排工具鏈

插件在 src/tools/ 提供 plan、status、dispatch、review、reroute、finalize 及 ping 等能力;對外工具名前綴爲 orchestrate_*。例如 orchestrate_status 在主機重啓後會基於恢復後的圖作答。

審查與重派

審查者對 worker 的結構化報告給出通過或失敗;失敗時可 reroute 並 re-dispatch,直至 finalize 收尾。worker 報告應視爲「主張」,由 reviewer 覈實——這與 README 中的 Safety 說明一致。

重啓恢復

圖默認按會話保存在內存中,進程重啓會丟失;恢復依賴 dsh 已有的會話日誌:

  • 主機記錄 tool/call(完整參數)與 tool/result(渲染輸出);插件不單獨寫會話事件。
  • 註冊 orchestraGraph 會話投影,把上述事件摺疊回任務圖;首次由新進程觸達該會話時加載。
  • 調用效果在 result 落定後生效,避免對正在執行的 call 重複應用;被重啓打斷的 dispatch 不會半應用,任務停留在 orchestrator 上次所見狀態。

若 composition 缺少投影註冊表,插件仍可按純內存模式運行(與舊行爲一致)。早於特定 render 契約的舊會話可恢復計劃、嘗試次數、裁決與 finalized 標記,但無法恢復 dispatch 結果細節——資料明確說明不應僞造成功標記。

Web 面板與提示注入

  • client.js 在對話 composer 上方提供編排面板(lazy __ModuleLoader__ 工廠);package.json 中 dsh.client 注入 @deepseek-ai/dsh-client-ui-conversation,平臺爲 web,immediately: true。
  • src/prompts.js 包含 adoption 片段與 planner 指引;若 composition 沒有 @deepseek-ai/dsh-system-prompt,僅少「自動選用流水線」那一段,顯式點名時各工具仍可用。

安全與 worker 權限

插件會拉起具備真實權限的子智能體:在會話工作區內讀寫文件、執行 shell,受各 worker profile 的工具白名單約束。默認會剝奪主機 agent-plane 的 control 工具(send_message、interrupt_agent、list_agents、subagent、subagent_fork),避免 worker 文本直接進入 orchestrator 會話或干擾父 agent;可通過配置 denyControlPlane: false 保留(README 說明該列表曾由實測校準)。

狀態按會話隔離;worker 工具訪問白名單可配置;src/profiles.js 映射 agent_type 到 persona / reasoning effort。

質量與兼容

  • 離線迴歸:node test/local-loop.mjs(無需 dsh、API Key、網絡);CI 在每次 push/PR 於 Node 20 / 22 / 24 運行(.github/workflows/offline-regression.yml);README 稱 16 個 offline test groups 通過。
  • 兼容(README 表格):
dsh 版本 說明
0.1.7-rc.2 開發對標版本;完整循環、重啓恢復與 Web 面板已驗證
0.2.0-rc.2 桌面應用運行時;安裝、掛載與提示組裝在無頭環境驗證——完整編排循環與 Web 面板尚未在該版本重跑

dsh 爲開發者預覽,官方可能引入破壞性變更;升級 dsh 後建議跑一次上述離線套件。

安裝與啓用

插件 bundle 含 npm 依賴 @deepseek-ai/schemastery;在本地目錄需先 pnpm install(README Install 節)。

CLI(web profile 示例):從本地絕對路徑安裝:

pnpm install
dsh plugin --profile web add <path-to>/dsh-taskforce

<path-to> 必須爲絕對路徑。README 同時說明 dsh plugin add 可直接接受 git 規格,由 pnpm 在安裝時解析依賴:

dsh plugin add github:LiSheng5/dsh-taskforce

(具體 profile 以你使用的 dsh 配置爲準;web 場景常用 --profile web。)

桌面應用:使用自帶 launcher,且 desktop profile 僅由應用管理,CLI 不能 boot/dump 或向其中安裝。Windows 示例:

"<DeepSeek Harness>\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add <path-to>\dsh-taskforce

應用側欄 Plugins 頁支持 registry 名、git 地址、tarball 或本地絕對路徑,方式與上一致;bundle 默認啓用。修改插件後需重啓應用加載。

安裝前請自行閱讀倉庫源碼與許可證(private: true 的 npm 包仍應在 GitHub 查看授權與代碼),並閱讀 dsh SAFETY 說明。插件以當前 dsh 進程權限運行,不宜在未審計的工作區上直接跑大規模編排。

典型用法

資料中的主路徑是 orchestrator 在會話中驅動 orchestrate_* 工具,而不是單獨一條 shell 子命令。

  1. 規劃:調用 plan 類工具,得到任務圖(節點、依賴、各 worker 任務描述)。
  2. 查看狀態:orchestrate_status 返回當前圖;重啓後同樣基於日誌投影恢復後再答。
  3. 派發:dispatch 可並行啓動多個 worker;每個 worker 在 fresh one-shot 上下文中執行,返回結構化 Report。
  4. 審查:review 對報告給出 Verdict(pass / fail);必要時 reroute 並 re-dispatch。
  5. 收尾:finalize 標記全部工作完成。

對話界面中,composer 上方的 Web 面板用於查看編排狀態(與 0.1.7-rc.2 上「已 live 驗證」的表述一致)。若希望大任務在未口頭指定「用 taskforce」時仍可能被模型選用流水線,composition 需包含 @deepseek-ai/dsh-system-prompt(adoption 片段位置在 workflow 與 subagent 段之後,提示文本到達模型已驗證;自動調用行爲見前文「未完全驗證」說明)。

升級 dsh 或插件後,在工作區根目錄(插件倉庫內)執行:

node test/local-loop.mjs

若從「重啓恢復修復」之前的舊版升級,README 指向「Upgrading from a version that predates the fix」及 scripts/ 下維護腳本,用於修復舊會話日誌;細節以 GitHub 該節爲準。

更完整的設計說明見倉庫旁的 DESIGN.zh.md(README 引用路徑爲 ../DESIGN.zh.md,以倉庫實際佈局爲準)。

適用場景與注意

更適合:需要把「調研 + 多文件改動 + 交叉驗證」拆成可並行子任務的長程開發或分析;希望 worker 上下文乾淨、產出爲結構化報告便於審查;需要在 dsh Web / 桌面 UI 裏看圖狀態,並依賴會話日誌在重啓後繼續編排。

需要謹慎:任何會寫盤、跑 shell 的多 agent 編排;務必保留 per-task timeout 與 attempt 上限(README Safety);在重要倉庫上先小範圍試跑;桌面與 CLI 的 profile 不要混用(desktop 僅應用管理)。

資料未寫或不作斷言的內容:SkillHub 目錄頁當前星標爲 0;未在已抓取片段中給出具體 cordis.patch.yml 字段或 worker profile 的完整配置示例——實施前請直接閱讀倉庫 cordis.patch.yml、src/profiles.js 與 index.js 的 inject/apply 邏輯。

結尾

dsh-taskforce 把「規劃 → 並行派發 → 結構化報告 → 審查 → 通過或重做」做成可恢復、可面板觀測的閉環,並刻意與 dsh 工具日誌對齊以便重啓恢復。若你在 Harness 裏做長任務多 agent 協作,可從安裝與 node test/local-loop.mjs 自檢開始,再按會話內 orchestrate_* 流程試跑。

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

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

小夜