前言¶
把一整個長任務丟進同一個 DSH 對話,通常會撞上三類問題:子任務順手改到別的文件,越做越大;說「做完了」但沒有證據,也沒有人逐條對驗收標準;多個子任務之間互相「聽說」,責任和證據都追不回來。編排臺(插件名 dsh-orchestra,倉庫 chen-rong1alkdwjlak/dsh-)就是把這三件事做成結構:一個總對話負責拆解目標,派生出互相隔離的普通子對話去執行,所有任務受一套分級禁忌知識庫約束。維護者是 chen-rong1alkdwjlak,社區目錄裏歸在「工作流」分類。
這是什麼¶
一句話定位:一個 ComfyUI 式的連線工作臺,裝在 DeepSeek Harness 裏,通過側欄「編排臺」入口使用。它綁定你當前的 DSH 網頁對話作爲總對話(不另開一套聊天),每個任務新建一個普通 DSH 會話作爲子對話,子對話只看得見自己的任務書,彼此沒有消息通道。
它要解決的不是「模型不夠強」,而是長任務在單一對話裏的邊界、驗收和上下文隔離問題。
核心功能¶
1、總對話拆解:點頂欄「拆解任務」,總對話輸出 JSON 計劃,插件把它變成任務節點並按依賴自動排布;解析失敗會明確報錯,不會靜默生成節點。
2、隔離子對話:每個任務派發時新建一個普通 DSH 會話,任務書(目標 / 邊界 / 輸入 / 交付物 / 驗收標準 + 適用禁忌 + 前置結果摘要)作爲第一條消息發進去。
3、驗收節點:子對話跑完後停在「待驗收」,可人工通過或駁回打回,也可讓總對話按驗收標準先複覈,給出 PASS/FAIL 與證據缺口。
4、分級禁忌知識庫:四級,一級最高且不可關閉。
5、依賴連線:任務 A 連到任務 B 表示 B 要等 A 通過才能派發,B 的任務書會附上 A 的結果摘要,標註「由總對話轉交」。
禁忌的四級生效範圍如下。
| 等級 | 名稱 | 生效範圍 |
|---|---|---|
| 1 | 一級禁忌 | 最硬。總對話、每個子對話、本機每個嚴格對話的系統提示都會帶上;不可關閉、內置條目不可刪除 |
| 2 | 二級禁忌 | 當前編排板的所有任務 |
| 3 | 三級約束 | 按任務勾選,或從「禁忌節點」連線附加 |
| 4 | 參考資料 | 只在任務顯式引用時附帶,不算禁令 |
內置一級禁忌是:不捏造、不擅自破壞、不泄露祕密、不繞過驗收,文本可以改但不可刪除。任務書裏會再次完整列出適用的 1/2/3 級條目,即使系統提示被其他插件改寫,任務書仍然帶着禁令。數據存在 <DSH_HOME>/orchestra/orchestra.json,會話正文不復制到那裏,仍只存在 DSH 會話日誌裏。
安裝與啓用¶
這個插件沒有提供 github:owner/repo 形式的一鍵安裝命令,README 給的是 desktop profile 的手動步驟。先克隆倉庫到任意目錄(下面用 <repo> 代指該目錄):
git clone https://github.com/chen-rong1alkdwjlak/dsh-.git <repo>
1、在 <DSH_HOME>\profiles\desktop\package.json 的 dependencies 里加一條,路徑換成你自己的 <repo>:
"dsh-orchestra": "link:C:/path/to/dsh-"
2、在同一個文件的 dsh.profile.bundles 末尾追加 "dsh-orchestra"。
3、在 <DSH_HOME>\profiles\desktop\node_modules\ 下建一個目錄聯接:
New-Item -ItemType Junction -Path "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\dsh-orchestra" -Target "C:\path\to\dsh-"
4、重啓一次 DeepSeek Harness,側欄就會出現「編排臺」。
也可以用 CLI,它會走 pnpm,但仍需手動確認 bundles 列表:
& "<DeepSeek Harness 安裝目錄>\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add link:C:/path/to/dsh-
插件要求 DSH >= 0.2.1-rc.2(因爲用到了 ctx.sessionController.create/prompt/inspect 與 session/event),Node 引擎要求 >=22.19.0,許可證是 MIT。
五分鐘上手¶
1、打開側欄「編排臺」,新建編排板,填名稱、總目標、工作目錄。
2、選中「總對話」節點,點「用當前對話作總對話」。默認是固定綁定,切換網頁對話不會把它帶走;只有勾選「跟隨當前 DSH 對話」纔會自動改綁。
3、點頂欄「拆解任務」,總對話輸出 JSON 計劃,插件變成任務節點並按依賴排布。
4、逐個點任務節點檢查「邊界」和「驗收標準」,這一步不要跳過。
5、點「派發」:新建隔離子對話,把任務書作爲第一條消息發進去,節點變成「子對話運行中」。
6、子對話跑完,節點變「待驗收」,右側能看到結果、產物和逐條自檢。
7、需要的話點「讓總對話先複覈」,它會按驗收標準給 PASS/FAIL 和證據缺口,這只是建議。
8、你點「通過」,或寫清駁回要求點「駁回並打回」,同一個子對話繼續重做。
驗收協議是子對話必須按下面的 XML 輸出,節點才推進到「待驗收」:
<orchestra-result>
{"status":"done|blocked|failed","summary":"...","artifacts":["..."],"checks":[{"criterion":"...","pass":true,"evidence":"..."}]}
</orchestra-result>
解析失敗時,整段回答會當作摘要保留,節點仍停在「待驗收」,不會自動通過。
總對話默認是一條 DSH 會話,走 DSH 的模型路由,通常會消耗 API token。想改用 chat.deepseek.com 網頁版的免費額度:先 dsh plugin --profile desktop add dsh-deepseek-web-login,重啓後在「設置 → DeepSeek 網頁登錄」裏登錄,然後在編排臺選中總對話,右側「總對話模型」點「網頁版 · 快速」或「思考」。這隻改這一條總對話會話,不改 DSH 的默認模型,子對話仍按 DSH 默認模型創建。
給總對話用的工具¶
只有哪些被綁定爲總對話的會話裏,模型纔可以直接調用這些工具:
| 工具 | 作用 |
|---|---|
orchestra_board |
看當前板的全部任務、狀態、驗收標準、依賴 |
orchestra_dispatch |
派發一個任務(前置未通過時默認拒絕,force 可強推) |
orchestra_accept |
通過或駁回一個待驗收任務(駁回會把修改要求打回子對話) |
子對話調用會被拒絕,返回「當前會話還沒有綁定爲任何編排板的總對話」。編排工具(orchestra_board / orchestra_dispatch / orchestra_accept)在子對話裏調用同樣直接被拒絕。
適用場景與注意¶
適合需要把一次長任務拆成多個可驗收子任務、且希望子任務邊界清晰的 DSH 使用者。插件以當前 DSH 進程的權限運行,安裝前應先讀一遍源碼(倉庫公開,MIT 許可),確認它對會話、工作目錄和文件的操作符合你的預期。
需要留意的點:
- 計劃質量取決於總對話,它一般輸出 3–7 個任務。
- 子對話是一次性普通會話,「重新派發」會新開一個,舊會話仍留在 DSH 側欄。
- 拆解和複覈默認等待 4 分鐘,超時按失敗處理,可重試。
- 單機單進程假設:同一份
orchestra.json被兩個 DSH 進程同時寫時是「後寫覆蓋」。 - 網頁版 DeepSeek 登錄是網頁端私有接口的非官方客戶端,有風控和限流風險,自行判斷。
結尾¶
編排臺的價值在於把「拆任務、看邊界、逐條驗收、隔離上下文」從口頭約定變成畫布上的結構。如果你已經有一批要並行推進的子任務,可以先從「拆解任務」這一步開始試。
目錄頁:https://www.skillhub.cn/plugins/chen-rong1alkdwjlak/dsh-
倉庫:https://github.com/chen-rong1alkdwjlak/dsh-