前言¶
在 DeepSeek Harness(DSH)裏用主智能體統籌、子代理並行幹活,常見難點不在「能不能派活」,而在「任務邊界是否被改寫擴權、拆解是否合理、每步有沒有可覈對證據、能不能驗收」。會話裏文字來回說,很難一眼看出當前 run 卡在哪一步。社區插件 dsh-orchestrator-canvas(維護者 MrXiongBear)把「Brief → Decompose → Dispatch → Verify → Accept」做成宿主側工具鏈 + 磁盤上的 run.json 證據鏈,並在客戶端提供只讀編排畫布;它不另寫調度引擎,而是組合宿主已有的 ctx.subagents 與可選的 dsh-flowglass 流視圖。
這是什麼¶
dsh-orchestrator-canvas 歸類爲 DSH 社區目錄中的「工作流」插件。一句話定位:工作畫布流——圖即真相的編排閘門(Brief→Decompose→Dispatch→Verify→Accept)+ 只讀編排畫布。
數據落在 <dsh-home>\orchestrator\runs\<runId>\ 下的 run.json 與 events.jsonl;畫布、抽屜與 /_dsh/orchestrator-canvas/api/* 均爲只讀,圖只能經 orch_plan 等工具寫入。倉庫 README 標明:實驗性、自用性質、100% 由 AI 生成並經人驗收,未發佈到 npm,且僅在編寫時的 DSH 版本上驗證過;宿主升級後可能失效。當前 package.json 版本爲 0.1.6,聲明兼容 DSH >=0.2.1-rc.2 <0.3.0、desktop profile,Node >=22.19。
與現有能力如何組合¶
下面是對 README 中對照表的歸納,便於判斷要不要和別的插件一起裝。
| 能力 | 現有件 | 本插件取向 |
|---|---|---|
| 並行派子代理 | 宿主 ctx.subagents / subagent 工具 / Agent Teams |
直接使用,不自寫調度引擎 |
| 會話流程圖投影 | dsh-flowglass |
可並裝,與編排圖正交 |
| 圖數據模型 | @xiaoso/dsh-workflow-lite |
不對齊整包 schema,僅借鑑 nodes/edges/status 等命名 |
| 閘門 + 證據鏈 + 接受摘要 | 無現成直替 | 本插件增量 |
核心功能¶
宿主側五工具¶
主智能體可見五個模型工具:orch_plan、orch_dispatch、orch_verify、orch_accept、orch_state。主智能體統籌,子代理執行 step;每一步完成與否以落到 run.json 的內容爲準。
五道閘門¶
1. Brief(改寫,不擴權)
orch_plan 的 brief 是對用戶原話的改寫,寫入 run.json.brief,畫布頂部只顯示它。brief 只能收斂範圍,不能新增需求;後續 orch_verify 也要對着 brief 判定。
2. Decompose(DAG)
節點類型:step(子代理執行)、check(掛在 step 之後,產出證據)、merge(可多父,匯合驗收)。落盤前校驗 id 唯一、邊合法、無環、類型合法、每個 step 至少被一個合法 check 覆蓋。返回 runId、拓撲序 order、layers、dispatchable。
3. Dispatch(真派活)
orch_dispatch 調用 ctx.subagents.startActivation 派發子代理,把 prompt、childId、原始輸出、stopReason 寫入 run.json.nodes[].attempts[]。默認並行上限 maxParallel: 3;依賴未完成、check/merge 節點會被拒。失敗重跑產生新 attempt,不覆蓋歷史。派發異步,下一輪用 orch_state 看結果。
4. Verify(證據非空)
orch_verify 要求 evidence 每項含 kind(command|test|artifact|review)、value、author、at;空或缺字段直接拒絕。verdict: fail 會標記 check 失敗並將下游標爲 blocked。
5. Accept(人工顯式確認)
前置條件:所有 step 爲 done、所有 check verdict=pass、用戶顯式確認。不滿足則拒絕並列出缺口;滿足時寫「交付物 → 節點 → 證據」摘要到 run.json.acceptance。確認經 ctx.userQuestions,且僅在 root agent 工具調用裏彈出。
狀態機與審計¶
節點狀態:pending → running → done,失敗則 failed 並阻塞下游;另有 blocked。events.jsonl 逐行記錄 plan / dispatch / verify / accept / prune 等事件;run.json 採用寫臨時文件再 rename 的原子寫。
只讀編排畫布¶
入口在輸入框工具欄左側「◈ 編排畫布」(conversation.input.left),點開爲 shell.overlay 全幀面板,Esc 或點遮罩關閉。頂部可按 本會話 / 本工作區 / 全部 過濾 run(範圍僅內存,客戶端不寫 localStorage)。佈局爲依賴深度分列,卡片展示狀態、類型、目標、子代理、證據數等;點卡片打開右側抽屜查看 attempt 與證據。v0 不支持拖節點改圖。
安裝與啓用¶
DSH profile 加載爲全有或全無:任一插件 import 失敗可能連坐整個 profile。安裝前請備份 profile 裏的 package.json 與 cordis.patch.yml。
本插件沒有 npm 發佈;官方 README 給出的路徑是讓插件管理器執行 install_bundle,target 指向本倉庫目錄,或等價手工方式:
- 將本目錄放入 profile 的
node_modules,或在dependencies中使用"dsh-orchestrator-canvas": "link:<本目錄絕對路徑>"(必須是link:,不能用file:,否則 pnpm 會複製目錄,客戶端 bundle 修改後不生效)。 - 在 profile 的
package.json的dsh.profile.bundles中登記dsh-orchestrator-canvas。 - 在 profile 目錄執行
pnpm install,使node_modules指向源碼 junction。 - 裝完後在 workspace 跑審計再重啓 DSH:
node <workspace>\tools\audit-dsh-plugins.mjs # 期望 PROBLEMS: none
卸載:從 dsh.profile.bundles / dependencies 移除後重啓。注意:remove_bundle 對 link: / file: 依賴可能刪除本地源碼目錄,卸載前請歸檔倉庫副本。可選刪除歷史:Remove-Item -Recurse -Force <dsh-home>\orchestrator。
cordis.patch.yml 中可選配置示例:
- id: orchestrator-canvas
name: dsh-orchestrator-canvas
config:
runsDir: '<dsh-home>\orchestrator\runs'
maxParallel: 3
subagentProvider: spawn
subagentCwd: ''
autoPrune: true
retentionDays: 30
retentionBytes: 209715200
outputLimit: 12000
典型用法(流程)¶
下面是可復現的主線,具體 prompt 由會話決定,順序以 README 接縫測試爲準:
- 主智能體用
orch_plan提交 brief 與 DAG(step / check / merge),得到runId與可派發列表。 - 對
dispatchable中的 step 節點調用orch_dispatch;並行不超過配置的maxParallel。 - 子代理完成後,主智能體用
orch_state查看節點與 attempt,再對 check 節點調用orch_verify提交 evidence 與 verdict。 - 全部 step 完成且 check 通過後,調用
orch_accept觸發用戶確認;確認後 run 狀態爲 accepted。 - 隨時點 ◈ 編排畫布 只讀查看當前 run 的圖與抽屜詳情。
證據 JSON 形態示例(字段缺一不可):
{ "kind": "command|test|artifact|review", "value": "npm test → 26/26 pass", "author": "model", "at": "2026-10-29T13:20:00+08:00" }
適用場景與注意¶
適合:需要在 DSH desktop profile 下,用固定閘門約束「拆解 → 派子代理 → 驗證據 → 人工驗收」,並希望會話旁有一張只讀 DAG 投影的開發者。
務必注意:
- 插件以當前 DSH 進程權限運行;安裝前應自行閱讀 GitHub 源碼 與倉庫聲明(實驗性、非商業、AI 生成)。
- 社區目錄 skillhub.cn 插件頁 與 DeepSeek / 幻方無官方從屬關係,屬於 DSH「一切皆插件」生態中的獨立收錄。
- README 未在已抓取片段中給出 SPDX 許可證字段;以倉庫根目錄實際 LICENSE 文件爲準。
- 修改客戶端源碼後需執行
node tools/build-client.mjs重建client.js(link:安裝下才會反映到運行實例)。
結尾¶
dsh-orchestrator-canvas 把多智能體編排裏最容易扯皮的部分——範圍 brief、DAG 拆解、派發記錄、非空證據、顯式 accept——釘在 run.json 與五道工具閘門上,畫布只做真相投影。若要進一步瞭解說明與自測命令,見社區目錄頁與 GitHub 倉庫:
- 目錄頁:https://www.skillhub.cn/plugins/MrXiongBear/dsh-orchestrator-canvas
- GitHub:https://github.com/MrXiongBear/dsh-orchestrator-canvas