🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

三省六部审核 Caoran1314/dsh-edict

DeepSeek Harnessv0.1.8
Caoran13147 天前有提交已提供中文文档扫描:未发现敏感能力

三省六部制多智能体审核流程,移植为 DeepSeek Harness 插件:12…

36.8/100
综合分
6
GitHub 星标
77
npm 周下载
—/5
用户评分

数据截至 2026/10/25 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-edict
npm 源 · dsh-edict 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · security
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 7 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-edict @ 0.1.8
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/1 08:20:33

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 4 处,展示前 4 条)
  • 发起网络请求
    lib/client.js:92
    fetch('/edict/board', { credentials: 'same-origin' })
  • 发起网络请求
    lib/client.js:96
    fetch('/edict/audit?limit=40', { credentials: 'same-origin' })
  • 发起网络请求
    lib/client.js:105
    fetch('/edict/task?id=' + encodeURIComponent(id), { credentials: 'same-origin' })
  • 发起网络请求
    lib/client.js:179
    fetch('/edict/url', { credentials: 'same-origin' })
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
展开完整介绍(81 字)↓

三省六部制多智能体审核流程,移植为 DeepSeek Harness 插件:12 状态状态机、门下省封驳、高风险确认、越权矩阵、委派防死锁、完整审计、军机处看板。

v0.1.82026-10-14
· [0.1.8] — 2026-10-14 · 修复 · 独立看板打开是 403 "拒绝访问"。根因是我用错了栅栏: connection.requestRejection 内含 login-token cookie 校验(见 dsh-schedule 源码注释), 而浏览器新标签页的顶层导航不会自动带 cookie —— 拿它当"拒绝外部访问"的栅栏, 必然把用户自己堵在 403。 现在区分对待: - 页面路由 /edict:放行顶层导航(无 Origin 头),只拒跨站 fetch(有 Origin 且与 Host 不符) - 数据路由(/edict/board / audit / task):保留 requestRejection 栅栏 · 独立看板改为服务端渲染:看板数据与最近审计直接内嵌进 HTML,页面首次打开即可用, 不再依赖凭据去 fetch。若能带凭据过栅栏,再自动切换为 3 秒实时刷新(页头会显示"内嵌快照 / 实时")。 · 状态码速查(写给以后的自己) | 状态码 | 含义 | |---|---| | 401 | 路由不存在(被 DSH 通用认证中间件拦,响应体为空) | | 403 | 路由存在,是插件自己的栅栏拒绝了该请求 |
v0.1.72026-10-14
· [0.1.7] — 2026-10-14 · 修复 · 工具调用报 returned invalid output: value is not lossless JSON。 任务对象的可选字段(如 active[].org、now、remark)常为 undefined, 而宿主对工具返回值做 lossless JSON 校验,遇到 undefined 直接判为非法(JSON.stringify 会静默丢弃, 所以本地自测发现不了)。 新增 toLossless() 深度清洗:剥掉 undefined(字段整体删除)、function/symbol → null、 bigint → 字符串、Date → ISO、Buffer → utf8、NaN/Infinity → null、检测循环引用。 在 execute 出口与 render 两处生效。 这个缺陷是作者自己调用工具时发现的 —— 说明"发布后真用一遍"比任何自测都重要。
v0.1.62026-10-14
· dsh-edict v0.1.6 这是首次真正可用的版本。0.1.0–0.1.2 存在致命缺陷,请勿使用。 --- · ⚠️ 三个致命缺陷(本版修复) · 1. 声明了 dsh.client 却未导出 ./client → 整个 DSH 启动失败 dsh-edict declares dsh.client but exports no "./client" bundle 宿主 ClientModuleRegistry 抛出后,DSH 启动失败并触发自愈逻辑清空 profile 里所有插件层 (用户侧表现为"我的插件怎么全没了")。0.1.0 / 0.1.1 均为此缺陷版本。 · 2. 15 个工具与 5 条看板路由全部注册失败(且无任何报错) 两个叠加原因: | 问题 | 后果 | |---|---| | 工具缺少必需的 output { schema, render } | tools.register() 抛 must declare output ...,异常被静默吞掉 | | apply() 时 tools/webServer 服务尚未就绪,取不到即永久放弃 | 看板路由 0 条 → /edict 返回裸 401 | 现改为:统一 withOutput() 补齐契约 + 监听 internal/service 事件 + 1.5 秒定时重试双保险。 · 3. 独立看板无法打开(新标签页不带凭据) window.open('/edict') 是顶层导航,不携带 DSH 浏览器凭据,被认证中间件拦掉。 新增 GET /edict/url,由宿主用 connection.authenticatedUrl 生成带 token 的地址。 (签名是从 dsh-host-frontend-static 里挖出来的:要传完整 base URL。) --- · 修复清单(按版本) | 版本 | 修复 | |---|---| | 0.1.2 | 补 exports["./client"](致命启动缺陷) | | 0.1.3 | 工具 output 契约 + 服务晚到重试;edict_role 用错 store 实例 | | 0.1.4 | 新增 /edict/url(带凭据地址) | | 0.1.5 | last-load.json 写入 store.dir(此前测试会覆盖真实加载证据,造成误判) | | 0.1.6 | 修正 authenticatedUrl 调用签名 | · 新增的诊断能力 · ~/.dsh/edict/last-load.json —— 记录每次加载的 tools / routes 数量, 用于区分"插件没加载"与"加载了但没注册" · 注册失败不再静默:走 logger.warn · 测试 · 单元测试 28/28 通过(状态机转换表与上游 task.py 的 EXPECTED_TRANSITIONS 逐条对齐) · 冒烟测试新增 3 条回归守卫(本版的三类缺陷各一条): - 每个工具必须声明 output { schema, render } 与 execute - 5 条看板路由必须注册 - 服务晚到时必须能补注册(模拟 apply 时服务未就绪) · mock 宿主已改为符合真实契约(ctx.get('tools') + ctx.effect + internal/service 事件) · 安装 dsh plugin --profile desktop add dsh-edict --- · 完整变更 见 CHANGELOG.md。 踩坑记录见 docs/RELEASE.md 与 docs/PLUGIN-RELEASE-CHECKLIST.md。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-edict ⚔️ 三省六部制多智能体审核流程,移植为 DeepSeek Harness 插件。 玩法来自 cft0808/edict(MIT,★16k+):用 1300 年前的三省六部制重新设计多智能体协作。 本插件是它审核流程逻辑的忠实移植——状态机、封驳规则、高风险确认、越权矩阵、委派防死锁、审计留痕,逐条对齐。 你(皇上) → 太子(分拣) → 中书省(规划) → 门下省(审议·可封驳) → 尚书省(派发) → 六部(并行执行) → 回奏 为什么要有这个移植 | | 原版 edict | dsh-edict | | 宿主 | OpenClaw(必装) | DeepSeek Harness | | 语言/依赖 | Python 3.9+ / FastAPI / Postgres 可选 | 纯 Node,零依赖 | | 安装 | install.sh / Docker / 注册 agent 到 openclaw.json | dsh plugin add dsh-edict | | 数据 | kanban JSON / Postgres | ~/.dsh/edict/(JSON,原子写) | | 多智能体从哪来 | OpenClaw 的 11 个 agent 进程 | DSH 子代理 / 你自己扮演衙门 |
展开完整文档(README 剩余 1 节)
dsh-edict ⚔️

三省六部制多智能体审核流程,移植为 DeepSeek Harness 插件。

玩法来自 cft0808/edict(MIT,★16k+):用 1300 年前的三省六部制重新设计多智能体协作。
本插件是它审核流程逻辑的忠实移植——状态机、封驳规则、高风险确认、越权矩阵、委派防死锁、审计留痕,逐条对齐。

你(皇上) → 太子(分拣) → 中书省(规划) → 门下省(审议·可封驳) → 尚书省(派发) → 六部(并行执行) → 回奏

为什么要有这个移植

| | 原版 edict | dsh-edict |
| 宿主 | OpenClaw(必装) | DeepSeek Harness |
| 语言/依赖 | Python 3.9+ / FastAPI / Postgres 可选 | 纯 Node,零依赖 |
| 安装 | install.sh / Docker / 注册 agent 到 openclaw.json | dsh plugin add dsh-edict |
| 数据 | kanban JSON / Postgres | ~/.dsh/edict/(JSON,原子写) |
| 多智能体从哪来 | OpenClaw 的 11 个 agent 进程 | DSH 子代理 / 你自己扮演衙门 |
| 审核规则 | 见下 | 逐条一致(有测试证明) |

规则(与 edict 逐条对齐)

12 状态状态机

Pending → Taizi → Zhongshu → Menxia → Assigned → Next/Doing → Review → Done
终态:Done / Cancelled(无出边)

完整合法转换表:

| 状态 | 可转到 |
| Pending | Taizi, Cancelled |
| Taizi | Zhongshu, Cancelled |
| Zhongshu | Menxia, Cancelled, Blocked |
| Menxia | Assigned, Zhongshu(封驳打回), Cancelled |
| Assigned | Doing, Next, Cancelled, Blocked |
| Next | Doing, Cancelled, Blocked |
| Doing | Review, Done, Blocked, Cancelled |
| Review | Done, Menxia(复审), Doing, Cancelled, PendingConfirm |
| PendingConfirm | Done, Review, Cancelled |
| Blocked | Taizi, Zhongshu, Menxia, Assigned, Next, Doing, Review, Cancelled |

非法转换一律拒绝,并写 state_rejected 审计。

高风险操作要确认(拦在 PendingConfirm)

| 转换 | 确认方 |
| Review → Done(完结任务) | menxia(门下省) |
| Doing → Cancelled(执行中取消) | shangshu(尚书省) |
| Menxia → Cancelled(审核中取消) | zhongshu(中书省) |

不直接生效:先落 PendingConfirm,由确认方 approve(落到目标状态)或 reject(退回 Review 复审)。

硬校验

- done 前置:当前状态必须是 Doing/Next,且 todos 全部完成,否则拒绝("todos 未完成(1/2),禁止直接收口")
- 单一 in-progress:同一任务同时最多 1 个 in-progress todo
- 委派防死锁:深度 ≤ 3,路径成环直接拒绝
- 委派权限链:太子→中书省;中书省→门下省/尚书省;尚书省→六部;六部→只能回报尚书省
- 标题校验:长度 ≥6 且不能是闲聊词(好/收到/测试…)
- 越权矩阵:六部不能改状态,门下省不能 create……(11 个角色的命令白名单)

审计

每条动作都落 ~/.dsh/edict/audit_log.json(保留最近 5000 条),含 ts / task / agent / action / from / to / reason。拒绝也留痕。

安装

从 npm 装(推荐,一行):

dsh plugin --profile desktop add dsh-edict

从 GitHub 装(想跟最新提交,或 npm 不可用时):

dsh plugin --profile desktop add github:Caoran1314/dsh-edict

本地开发(改代码即时生效,无需重装):

dsh plugin --profile desktop add link:D:\path\to\dsh-edict

装完重启 DSH。数据目录 ~/.dsh/edict/。

--profile 填你实际在用的那个:桌面客户端用 desktop,dsh web 用 web。

提供的工具

| 工具 | 对应衙门/命令 | 说明 |
| edict_create | 皇上/太子 create | 下旨建任务 |
| edict_move | 三省 state | 状态流转(含合法性与高风险拦截) |
| edict_flow | 各省 flow | 部门间流转留痕 |
| edict_progress | 六部/各省 progress | 实时进展 + ✅/🔄 清单同步 todos |
| edict_todo | 六部 todo | 子任务(单一 in-progress) |
| edict_done | 六部 done | 回报完成 → Review(前置硬校验) |
| edict_block | 六部 block | 标记阻塞 |
| edict_confirm | 门下/尚书 confirm | 批准 / 驳回高风险操作 |
| edict_delegate | 中书/尚书 delegate | 委派(深度+循环+权限链校验) |
| edict_delegate_result | 六部 delegate-result | 回写子任务结果 |
| edict_memory | 全部 memory | 衙门记忆(上限 200,pinned 优先) |
| edict_task_memo | 全部 task-memo | 任务级决策/警示备忘 |
| edict_shared_memo | 尚书 shared-memo | 全局共享备忘 |
| edict_status | 只读 | 军机处看板:各状态数量 / 任务详情 / 流转链 / 待确认项 |
| edict_role | — | 设置当前衙门身份(越权矩阵据此生效) |

命令(无 UI 界面时用):edict(看板)、edict-audit(审计)、edict-reset-role。

身份如何确定

越权矩阵需要一个"当前是谁"。DSH 的子代理没有独立环境变量(不像 OpenClaw 的 OPENCLAW_AGENT_ID),所以推断链是:

工具参数 agent → EDICT_AGENT_ID 环境变量 → ~/.dsh/edict/current_role → 默认 taizi

子代理开工前先调 edict_role 设定身份,之后再调 edict_*,越权矩阵才按你的身份生效。

用法示例

你:用三省六部流程做「把首页加载时间降到 1 秒以内」

1. edict_create(title:"把首页加载时间降到 1 秒以内") → Pending
2. edict_role(role:"taizi") + edict_move(state:"Taizi") → 太子分拣
3. edict_role(role:"zhongshu") + edict_move(state:"Zhongshu")→ 中书省规划
4. edict_todo ×N(拆子任务)+ edict_move(state:"Menxia") → 交门下省审议
5. edict_role(role:"menxia")
- 不通过 → edict_move(state:"Zhongshu", now:"封驳:缺少回滚方案")
- 通过 → edict_move(state:"Assigned")
6. edict_role(role:"shangshu") + edict_move(state:"Doing")
+ edict_delegate(to:"hubu", instruction:"…") → 派发给六部
7. edict_role(role:"hubu") + edict_progress / edict_todo / edict_done
8. edict_role(role:"shangshu") + edict_move(state:"Done")
→ 落 PendingConfirm,edict_role(role:"menxia") + edict_confirm(action:"approve") → Done

与本移植的差异(诚实清单)

规则一致,适配层有三处必然差异,另有两处实现层差异(语言/内部一致性问题,非规则改动):

| 项 | 原版 edict | 本移植 | 性质 |
| 身份来源 | OPENCLAW_AGENT_ID 等环境变量 | 同上 + 工具参数 + 角色文件 | 适配(DSH 无 per-subagent env) |
| 存储 | kanban JSON / Postgres 双写 | ~/.dsh/edict/ JSON 原子写 | 适配 |
| 多 Agent | 11 个 OpenClaw agent 进程 | DSH 子代理 / 人工扮演 | 适配 |
| todos 清单解析 | Python item[:-1](按码位) | Array.from 后删末位(按码位) | 语言差异:JS 里 slice(0,-1) 会切断 emoji 代理对,故必须按码位处理 |
| progress 替换 todos 后 | 不重算 ready_to_close(cmd_todo 才置位) | 重算,保持标记与 todos 一致 | 实现增强(上游内部不一致) |

另:垃圾词比较刻意保持上游行为——上游 if t in _JUNK_TITLES 是集合精确匹配、不忽略大小写,因此 'OK'/'Yes' 这类大小写变体不会被拦。本移植没有"顺手修好"它,以对齐上游。

测试

node test/edict.test.mjs

28 项,覆盖:状态机守卫(移植自 edict 的 tests/test_state_machine_consistency.py,期望表逐字抄自上游 task.py)、高风险确认、封驳路径、done 前置、单一 in-progress、委派深度/循环/权限链、越权矩阵、审计结构、文本清洗。

路线图

- [ ] 军机处看板 UI(dsh.client 浏览器半侧 + HTTP API),对齐 edict 的 10 个面板
- [ ] 奏折阁:已完成旨意自动归档为 Markdown
- [ ] 旨库:预设圣旨模板
- [ ] 官员总览:Token/耗时排行(progress 已在记 tokens/cost/elapsed)

许可与署名

MIT。审核流程设计来自 cft0808/edict(MIT),本移植保留其规则语义并注明出处;实现代码为本项目独立编写。
预览分享卡片长什么样 ↓Caoran1314/dsh-edict
分享 · DeepSeek Harness Hub
Caoran1314/dsh-edict

三省六部制多智能体审核流程,移植为 DeepSeek Harness 插件:12…

回到顶部