编排台(dsh-orchestra):把长任务拆成可验收的隔离子对话

前言

把一整个长任务丢进同一个 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-

羽毛球分组比赛记分
小程序二维码

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

小夜