前言¶
在 DSH 里处理「体检全仓」「多方向调研」「改造加验证」这类任务时,常见做法是反复 spawn 子 agent,或自己写阶段脚本。分工边界、审阅把关和 token 花费往往靠提示词自觉,宿主子 agent 名额(本机实测 active child 上限 8)也容易被一场长任务占满。dsh-court 把一件大事当作圣旨,按太子分拣 → 中书拟敕 → 门下审覆 → 尚书派工 → 六部与二十四司并行 → 御史台按劾与都省覆核的流程跑完,多智能体并行由 DSH 原生 ctx.subagents 驱动,零外部 npm 依赖;制度边界除 PERSONA 外,还有工具白名单与 court_hold 的 sessionId 护栏,越权与误开朝会在代码层 fail-closed。
这是什么¶
dsh-court(三省六部 · 朝堂)是维护者 dashi666666-zxp 发布的 DSH host-plane 工作流编排插件(分类:工作流)。它注册六个 court_* 工具与 /court/api 面板路由,须在 profile 的 host 组合里加载,而不是塞进 agent preset。制度与工程口径参照 cft0808/edict;差别在于 edict 是常驻多 Agent 服务加 Redis EventBus,本插件是一场朝议即一次函数调用链,状态机侧重校验、观测与停滞处理。当前资料中的版本为 0.12.0(GitHub 仓库 dashi666666-zxp/dsh-court)。
核心功能¶
朝议流水线¶
court_hold 下旨开朝(总开关开启为前提)。默认路径包含:太子分拣(闲谈可挡在门外,确需开朝可传 taizi:false)→ 中书出敕草 → 门下审覆(可封驳退回重拟)→ 尚书都省派工 → 六部并行办案;si 默认为 true 时,六部尚书把差事下发本部四司(二十四司并行承差)→ 御史台按劾与都省覆核并行 → 奏疏待御批。v0.8.0 起默认 长线子智能体:各节点用 startContinuable + sendMessage,阶段间不 dispose,面板节点「问对」直连该常任 agent,退朝时 drainContinuableChildren 统一退班;宿主缺原语则退回每阶段一次性 agent 并留痕。
六个工具¶
| 工具 | 作用概要 |
|---|---|
court_hold |
下旨;支持 edict、context、workspace、ministries、draftCount、reviewRounds、rescript、si、taizi、tokenBudget、longLine、quotas、redlines 等 |
court_status |
查朝议或列近期案卷;detail 可选 brief / full |
court_ministries |
六部职权、二十四司、权力线、状态机、旨库(下旨前宜先查) |
court_control |
power / stop / resume / reopen / budget / dismiss |
court_dismiss |
退朝散场,释放长线子 agent |
court_templates |
九条圣旨模板 |
court_hold 默认最多等待 waitMs(120s),超时返回朝议 id,之后用 court_status 续查。
内侍监与 token 约束¶
内侍监站在御前计度线:数字来自 DSH tokenUsage 会话投影实测值,到限额停派新差事。v0.9.0 起运行中可调 tokenBudget、quotas、redlines;可用额度跌破红线即上奏(只奏不停)。因内侍监告匮而止的场次,resume 须同传 tokenBudget 加限,否则一续就再停。
子 agent 名额与总开关¶
v0.10.0 起按在朝总数记账(crewLimit 默认 8、siMaxParallel 默认 2 等),点卯前领名额,领不到可降级为一次性 agent。v0.11.0 起朝堂默认关闭:不主动占子 agent 名额;查阅历史与面板只读仍可用,但 court_hold、续办、重开、问对会被回绝,直到打开总开关。关闭当场收场:在办叫停可续办保留产出,在朝 agent 退班。开关落盘于 ~/.dsh/court/settings.json(settingsPath 可改)。
面板¶
v0.4.0 起为自上而下的组织树:皇帝—太子—中书—门下—尚书干线,六部横分叉,每部下挂四司;御史台走虚线旁支。节点右上角 文 / 问 在树下方就地展开文书与朝堂对话。样式 scope 在 .ct-root 下,跟随 DSH 主题令牌。
安装与启用¶
本插件是 host-plane 编排器,必须落在 profile 的 host 组合里(cordis.patch.yml 的 insert 块),不要放进 agent preset。
桌面 profile 在 dsh plugin add 走不通、本机 pnpm 不可用时,可按与 dsh-arch 相同的手工 link 三步(须在 danger-full-access 下执行,因为要写会话工作区之外的 profile):
# 1) profile package.json 的 dependencies 加: "dsh-court": "link:<本仓路径>"
# 2) 同文件 dsh.profile.bundles 追加 "dsh-court"
# 3) profiles\desktop\node_modules\dsh-court 建 junction 指向本仓路径
改完后由 DSH 配置热加载建 loader entry,无需重启。装好后打开面板「朝堂」页总开关,或调用:
court_control { action: "power", on: true }
否则 court_hold 会直接回绝并提示如何开启。
复跑测试(在插件仓库目录):
node tests/host-smoke.mjs
node tests/client-smoke.mjs --offline
node tests/preview.mjs
典型用法¶
下旨前先看职权与模板:
court_ministries
court_templates
开一场全面体检或并行调研类朝议(示例字段按 README 口径,可按任务改 edict 与 ministries):
court_hold {
edict: "……圣旨正文……",
context: "……",
workspace: "……",
ministries: ["兵部", "刑部", "工部"],
draftCount: 2,
reviewRounds: 2,
si: true,
tokenBudget: 500000,
quotas: { "兵部": 400000 },
redlines: { "兵部": 120000, "_run": 50000 }
}
办理中查进度:
court_status { id: "<朝议id>", detail: "brief" }
叫停、续办或调额:
court_control { id: "<朝议id>", action: "stop" }
court_control { id: "<朝议id>", action: "resume", tokenBudget: 800000 }
court_control { id: "<朝议id>", action: "budget", tokenBudget: 600000, quotas: { "工部": 200000 } }
收场:
court_dismiss { id: "<朝议id>" }
适用场景与注意¶
适合:多角度专业分工、各分片可并行、彼此弱耦合的大任务(全面体检、并行调研、大规模改造加验证等)。
不适合:单文件小改、一问一答、强串行依赖的细碎活——直接自己做通常更快。
安装与运行前请自行阅读 GitHub 源码 与许可证;插件以当前 DSH 进程权限执行,朝议中的子 agent 同样受宿主沙箱与工具策略约束。v0.12.0 起对阶段 JSON 回报有 RESULT_CONTRACT,无 toolFilter 的 spawn 默认禁止 unsandboxed 回退,朝议子会话对全部六个 court_* 工具统一拦截。
社区目录 SkillHub 插件页 提供索引;DSH 生态为「一切皆插件」,该站点与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-court 把 edict 式三省六部分工落到 DSH subagents 原语上:拟敕审覆、派工并行、监察覆核与 token 红线都有明确工具与代码护栏,并配有可视朝堂树与断点续跑、重开朝议等控制面。需要在工作流类目里做「可观测的多 agent 分工」时,可从目录页与 GitHub 取文档与源码,开好总开关后用 court_ministries 与 court_hold 试第一场朝议。