前言¶
在 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 子命令。
- 規劃:調用 plan 類工具,得到任務圖(節點、依賴、各 worker 任務描述)。
- 查看狀態:
orchestrate_status返回當前圖;重啓後同樣基於日誌投影恢復後再答。 - 派發:dispatch 可並行啓動多個 worker;每個 worker 在 fresh one-shot 上下文中執行,返回結構化 Report。
- 審查:review 對報告給出 Verdict(pass / fail);必要時 reroute 並 re-dispatch。
- 收尾: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