Rules execution engine for dsh: parses AGENTS.md, hard-blocks rule-violating tool calls, text-based B/D rule auditing, /guard command, version-guard for versioned files, and free-zone support (engine skips free-zone sections).
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-rule-engine
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:jilian-dsh/dsh-rule-engine
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time. Only install sources you trust, and pin a commit (github:owner/repo#sha).
README
This plugin publishes its README in Chinese only.
DSH 规则执行引擎 v3 的插件实现。它把 ~/.dsh/AGENTS.md 当作唯一真相源,自动解析规则四要素与执行等级,再通过「工具守卫 + 文本检测 + 时序检查 + 审计台账」执行用户规则,而不是内置一套与用户无关的安全清单。
项目背景
这个项目来自一个非常具体的个人需求:
- 作者是零编程基础用户,但极其重视规则的制定、执行、遵守与复盘。
- 作者发现:规则如果只写在文本里、靠模型“自觉”执行,会反复失效(例如时间词写错、内联命令违规、交付前漏验证等)。
- 因此核心思路是:规则的执行不能只靠自觉,要尽量靠插件在机制层强制。
- 本插件所有规则均从
AGENTS.md动态解析,规则增删改后无需重写插件。
当前实现基于已有的 AGENTS.md 规则体系拓展,社区暂无类似插件供参考(大概率为该等约束可能限制开发自由性,不适用于专业编程人员),可能存在大量不完备、误判或边界问题。欢迎任何使用者提出调整建议、提交 issue 或 PR。项目仍处于“可运行但需要持续打磨”的阶段。
功能分层
- 阶段 1 容器:解析 AGENTS.md 全部规则 → 理解产物(
rule-understanding.json可生成) - 阶段 2 匹配机 + 工具守卫 + 文本检测
- 阶段 3 时序检查 + 授权询问集成
- 阶段 4 D 级自证调度 +
/guard命令完善
当前实现以「模式库兜底」为主,LLM 理解器预留扩展点;所有规则均从 AGENTS.md 实时解析。
命令
| 命令 | 作用 |
|---|---|
/guard status |
引擎状态(规则数/置信度/放行/解锁) |
/guard rules |
规则清单 + 理解产物 |
/guard active |
最近激活了哪些规则、为什么 |
/guard log [N] |
最近 N 条审计 |
/guard unlock [N] |
解锁配置写保护 N 分钟(仅用户) |
/guard bypass [N] |
临时整体放行 N 分钟(仅用户) |
/guard lock |
立即恢复全部守卫(取消解锁/放行) |
/guard revoke |
撤销全部授权记录 |
/guard reload |
强制重解析 AGENTS.md |
装配方式
本插件已按官方 bundle 规范打包,包内自带 cordis.patch.yml。
推荐安装方式:
dsh plugin --profile web add dsh-rule-engine
或手动将 dsh-rule-engine 加入 profile 的 dsh.profile.bundles 数组。包内的 cordis.patch.yml 会自动挂载插件行:
- insert:
- id: dsh-rule-engine
name: 'dsh-rule-engine'
如果你是从源码手动调试,也可以沿用 insert 方式挂载,但正式安装建议走 bundle。
安全设计
- 只读操作(read/grep/glob/read_image/str_replace_editor view)无条件放行,拦截只针对变更类操作
- 插件自身配置/理解产物对模型只读:直接
edit/write会被守卫拒绝,需/guard unlock - AGENTS.md mtime 变化后自动重解析(
fs.watch+ stat 兜底),规则增删改无需重启 - 低置信规则不参与硬拦,避免误伤;在
/guard rules中标记人工复核 - 授权证据按“操作类型 + 目标路径前缀”结构化匹配,区分“询问”与“授权”
- 备份证据按“目标路径 → 备份路径”记录,删除/覆盖前必须存在对应路径且备份文件真实存在
- 版本/手册类文件写后自检:版本号连续、append 不覆盖上一行,失败自动回滚并审计
- 跨工具一致性:同一敏感操作经
edit/write/str_replace_editor/pwsh必须得到相同拦截/放行结论 - 命令输出静默错误检测:全 false/0/null 或与上一条完全一致时审计 + 注入提醒,不阻断
- 技能目录实时联动:
ctx.skills目录变化后自动刷新,已禁用/不存在的技能不触发 12B - LLM 增量理解:对非 high 置信规则调用
ctx.llm补全结构化理解,失败自动回退模式库 - D 级自证泛化:按规则特征触发自证提示,每规则每会话限 3 次
- 授权记录默认 10 分钟 TTL,无路径的全局授权 TTL 缩短为 2 分钟;可用
/guard revoke撤销 - 用户直接命令式指令(如“删除这个文件”)也视为授权
- 规则 1 支持“用户明确要求重试”豁免
- 会话状态有容量上限并自动清理,防止长跑内存膨胀
- LLM 理解按“规则 + AGENTS.md mtime”去重,避免重复烧 token
- 审计日志:
~/.dsh/rule-engine.log.jsonl - 守卫使用
ctx.tools.guard()单调拒绝,模型无法自行绕过
当前局限与后续优化路线
当前版本已经具备完整四层骨架,但距离“成熟”仍有距离。以下是一些难度较高、尚未完全实现的优化方向,欢迎社区共同推进:
LLM 理解器深化 当前只对非 high 置信规则做一次 LLM 增量理解;未来应支持“规则变更窗口期”、增量重理解、低置信人工复核队列。
授权语义精确化 当前 ask 授权记录为宽泛
any+ 路径前缀;未来可要求 ask 面板显式声明操作类型,或支持“一次授权仅针对单个 callId”。备份证据完整化 当前校验备份文件存在;未来可增加哈希/大小一致性校验、备份链管理与自动清理。
规则 12C / 13B / 10 / 15 / 19 等流程类规则深度执行 这些规则需要更多业务语义(下载校验、会话三层验证、版本判断、知识沉淀),目前偏“自证提示”,尚未做到机器可判定。
跨会话持久化 授权/备份目前为内存态,重启失效。持久化涉及写入保护、并发与恢复,风险较高,暂未实现。
输出文本实时拦截 受 DSH 官方架构限制,
assistant/message无法“拦下不发”,只能事后审计 + 纠正注入;这是平台边界,不是插件能单独突破的。
致谢
感谢以下项目与作者的无私开源付出,本项目在开发过程中直接受益:
- DeepSeek Harness 官方团队(@deepseek-ai):提供了 DSH 平台、插件机制与官方文档。
- 本机已安装插件的作者们:
- dsh-guardian(lonelymoon87)
- dsh-visualize(Nagi-ovo)
- dsh-usage(kestiny18)
- dsh-rules-manager(jilian-dsh)
- dsh-vision-router、dsh-super-injector 等未列出的作者
- 学习参考的社区文档/库作者:
- dsh-handbook(Electricitysheep)
- SandBase deepseek-harness-handbook(sandbaseai)
- 以及 DSH 官方文档镜像与源码维护者
免责声明
本项目是个人/社区项目,不属于 DeepSeek Harness 官方项目,与官方无隶属关系。使用风险自负,请在生产环境前充分测试。
开发与测试
npm test
bash scripts/build.sh
License
MIT
Links
More in this category
PerryLink/dsh-auto-review★ 29
Second-model auto-review on the approval answerer chain: a read-only reviewer subagent returns structured allow/deny verdicts with reasons, fail-closed by default.
omdsh-dev/dsh-security-audit★ 12
Local security audit: config, plugin origins, sessions, network exposure — read-only redacted risk report.
slywalker2006/dsh-passwords★ 11
Turns DeepSeek Harness into a server-grade multi-tenant platform: remote access + auto HTTPS, subuser permissions & token/daily quotas, sandbox enforcement, encrypted auth & audit log.
PerryLink/dsh-permission-rules★ 8
Claude Code-style declarative permission rules: ordered allow/deny/ask YAML rules matching tool names, arguments, workspace paths, and agent identity on the tools/pre-execute waterfall, with full session-log audit, dry-run mode, and hot reload.
Yuuz12/dsh-webui-auth★ 7
WebUI authentication enforced at the HTTP/transport layer: four-layer login gate (resources, plugin bundles, /api, WebSocket), server-side sessions with HttpOnly cookies.
Letter2025/dsh-approval-llm★ 6
Model-based permission approval: an approval-request answerer backed by a separate reviewer model.