
Security News
Deno Goes the Way of the Dinosaur
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.
dsh-rule-engine
Advanced tools
这个项目来自一个非常具体的个人需求:
AGENTS.md 动态解析,规则增删改后无需重写插件。当前实现基于已有的 AGENTS.md 规则体系拓展,社区暂无类似插件供参考(大概率为该等约束可能限制开发自由性,不适用于专业编程人员),可能存在大量不完备、误判或边界问题。欢迎任何使用者提出调整建议、提交 issue 或 PR。项目仍处于“可运行但需要持续打磨”的阶段。
DSH 规则执行引擎 v3 的插件实现。它把 ~/.dsh/AGENTS.md 当作唯一真相源,自动解析规则四要素与执行等级,再通过「工具守卫 + 文本检测 + 时序检查 + 审计台账」执行你的规则——不是内置一套与用户无关的安全清单。
四层骨架:
AGENTS.md 的全部规则(可生成理解产物);/guard 命令。规则全部从 AGENTS.md 实时解析,规则增删改后无需重写插件。语义类判定按「词表只产嫌疑 → 模型裁决确认」两段走:只有裁决确认为违规才提醒;无真实用户消息的回合不检测、不投递。
0.6.6(以 package.json 的 version 为准)。
本插件已按官方 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。
~/.dsh/AGENTS.md(或你的 DSH_HOME 下的同名文件)。没有它也能用——引擎零错加载、零规则、零误拦。>=22(见 package.json 的 engines)。默认零配置即可用。 只有下面两类需求才需要写 ~/.dsh/rule-engine.json:
配置在插件启动时读取;改完保存后重载插件(或重启 DSH)生效。命令面见下一章。
| 层 | 在哪 | 内容 | 谁维护 |
|---|---|---|---|
| 通用层 | lib/(随包发布) | 机制 + 语言无关最小集 | 插件作者 |
| 个人层 | ~/.dsh/rule-engine.json | 你的语言/习惯词表、本机集成开关 | 你 |
一句话:代码里只有机制;中文与本机专属设置都写在 rule-engine.json。
{} 或删键 → 回退内置默认。{
"lexicons": {
"approval": "确认|同意|可以",
"action_words": "执行|落盘|部署"
},
"patterns": {
"time_words": "今天|昨天|刚才",
"self_cert_hints": { "example": "占位词一|占位词二" }
},
"criticismPersonal": ["示例词一", "示例词二"],
"localIntegrations": {
"entryScript": "your-entry-script.mjs",
"protectedFiles": ["skills/your-manual/SKILL.md"],
"m8": { "enabled": true, "entryMarker": "your-entry-script.mjs" },
"manualExempt": {
"skills": ["your-manual", "your-planner"],
"paths": ["your-manual/SKILL.md"]
}
},
"qualityLedger": { "enabled": true, "window": 5 }
}
| 键 | 作用 | 缺省行为 |
|---|---|---|
lexicons | 行为词表(许可词、动作词、拒绝词、疑问词、状态信号词等) | 用内置通用最小集 |
patterns | 文本健康检测正则 + 规则激活词 | 用内置通用最小集 |
criticismPersonal | 批评检测的个人词表(通用层只留语言无关形态) | 空——仅靠形态判据 |
localIntegrations | 本机集成:entryScript(统一入口脚本名)/protectedFiles(追加受保护文件)/m8(记忆沉淀链)/manualExempt(手册与技能豁免) | 全部不存在:配置存在=守卫存在,配置不存在=该守卫在代码路径上根本不存在 |
qualityLedger | 质量账本(每单一行,默认关;不开不产生任何文件) | 关闭 |
localIntegrations 的设计原则值得单独记一句:不是“可覆盖”,是“默认无”——通用用户零配置即零本机行为,发布物无权限制其他用户的写入方式。
~/.dsh/rule-engine.json(或你 DSH_HOME 下的同名文件);lexicons / patterns 里找到对应键,用 | 追加词(正则元字符需转义);非法正则/未知键会在启动时记审计,不会静默半套生效。
默认关闭。开启后:
~/.dsh/quality-ledger.jsonl(每单一行,本机数据,永不发布);/guard quality(账本未开启或无记录时如实说明,不编造趋势);sha256(归一化内容) 取前 12 位(归一化:去引号 → 绝对路径替换为 <path> → 数字替换为 <n> → 折叠空白 → 小写),机制层公开可审计;rework(返工数)、interventions(介入数)、frictions(引擎拦截次数)、tokens;| 命令 | 作用 |
|---|---|
/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 |
/guard mode <模式> | 设置任务契约模式(review/answer/change/monitor/watch/off) |
/guard budget ... | 设置预算(agents=N files=... deps=allow hash=allow) |
/guard contract | 查看当前任务契约 |
/guard contract categories ... | 设定契约类别白名单(build/test/install 等非破坏类) |
/guard label <id> <label> | 给审计记录打标(correct/incorrect/inconclusive) |
/guard tools | 查看工具放行白名单(永久+本会话,含时间/来源会话) |
/guard tools revoke <名> | 撤销白名单条目(持久化+会话集同步移除) |
任务契约与反过度工程默认关闭:可在设置页开启总开关,开启后默认观察模式(只审计提醒),切到 armed 才真正拦截;把某个操作锁进“只读/只改”等边界,用的是 /guard mode。
面向插件商城自动审核与安装者;普通用户可跳过。
AGENTS.md 与 rule-engine.json。写入仅限插件私有状态文件;对用户业务文件的写动作只在你的规则触发的守卫流程内执行(例如版本守卫的备份/回滚)。package.json 解析(不访问任意地址)。child_process/子进程调用;“命令检测”= 对命令文本做正则分析(词表),不运行任何被检测的命令。DSH_LLM_PROVIDER/DSH_LLM_MODEL/DSH_WORKSPACE);不读取 API Key、令牌;审计与注入消息不含凭据。dependencies;peer 依赖为官方接口包;package.json 无安装期生命周期脚本。安全设计要点(与上面同源,单独列出便于速览):
edit/write 会被守卫拒绝,需解锁;AGENTS.md 变化后自动重解析(watch + stat 兜底),规则增删改无需重启;而修改插件自身 lib 代码后必须重启 DSH 生效,重启后以行为实测验证;edit / write / str_replace_editor / pwsh 必须得到相同结论;user/message 先判来源,系统/插件注入一律跳过(不覆盖回合状态、不产生授权),并留审计;unknownPolicy 或写成 off 时首次调用放行并留审计,写成 deny 才拒绝,写成 ask 才询问;取值不区分大小写和首尾空格,认不出的取值按拒绝处理;已归类的只读命令按命令链分段判定后无条件放行;当前版本已经具备完整四层骨架,但距离“成熟”仍有距离。以下方向难度较高、尚未完全实现,欢迎社区共同推进:
只收已发布版本,每行一句变化。历史全量见 git 历史。
| 版本 | 日期 | 变化 |
|---|---|---|
| 0.6.6 | 2026-09-23 | 分域词表迁配置;契约拒绝进卡片/deniedKeys;ask 按类型授权;unknownPolicy 缺键默认放行;规则2按 lane 记账与合并投递 |
| 0.6.5 | 2026-09-20 | 注释里的行号引用改为稳定标识 |
| 0.6.4 | 2026-09-10 | 待决询问提升为会话级;官方 bundle 豁免兑现(装配不一致的收敛豁免);授权登记改复数路径、多路径匹配 |
| 0.6.3 | 2026-09-09 | 词表全量配置化;新增分层残留闸与三项门禁修复 |
| 0.6.2 | 2026-09-08 | 兼容新版 Remote 合同;peer 锚扩;只读白名单 3 轮扩充 |
| 0.6.1 | 2026-09-07 | 发布脚本豁免预插;豁免判定单源化;发布语境严格计数 |
| 0.6.0 | 2026-09-04 | 通用与本机分离:本机集成层改为“配置存在=守卫存在”;相应语义反转 |
| 0.5.17 | 2026-09-03 | 时间词拆组(当下词与历史日期分判);证据锚扩充 |
| 0.5.16 | 2026-09-02 | 批评≠授权双层重构(强形态直接提醒/弱形态交裁决);权限披露 |
| 0.5.15 | 2026-09-02 | 回合末裁决卡片(可交互;判例登记一次性;重启不丢) |
| 0.5.14 | 2026-09-01 | 分点三柱;技能词收紧;引证检测扩展;查证纪律 |
| 0.5.13 | 2026-08-31 | 通用化(声明式绑定/禁用语义/会话寻址/验证通道)+ 阶段二三能力 |
| 0.5.12 | 2026-08-30 | 意图优先级修正、意图兜底同步等待、只读判定三档、授权粒度并入会话 |
| 0.5.11 | 2026-08-29 | 判定内核第一轮:新建豁免、分析通道收紧、判据同源、词表唯一源 |
| 0.5.10 | 2026-08-27 | 分析通道单真源、写类判定单真源、统一入口加固、误判打标闭环 |
| 0.5.9 | 2026-08-27 | 工具分类单真源、官方工具全集覆盖、前缀自动归类、未归类工具默认拒绝 |
| 0.5.8 | 2026-08-26 | 白名单持久化、只读命令词表补全 |
| 0.5.7 | 2026-08-26 | 注入噪音治理(词表只产嫌疑+裁决+投递资格闸+审计完整性);注入通道重入修复 |
| 0.5.6 | 2026-08-26 | 同回复聚合注入、已自证规则不重复触发、规则统计面板接口 |
感谢以下项目与作者的无私开源付出,本项目在开发过程中直接受益:
本项目是个人/社区项目,不属于 DeepSeek Harness 官方项目,与官方无隶属关系。使用风险自负,请在生产环境前充分测试。
MIT
FAQs
DSH 规则执行引擎 v3:容器解析 AGENTS.md + 理解器 + 匹配机 + 执行框架
The npm package dsh-rule-engine receives a total of 130 weekly downloads. As such, dsh-rule-engine popularity was classified as not popular.
We found that dsh-rule-engine demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.

Security News
Anthropic’s free OSS Scanner uses Mythos and other Claude models to find open source vulnerabilities and send maintainers reports with proposed fixes.

Security News
On Front Lines’ Early Adopters: CISO podcast, Andrew Becherer shares lessons from Datadog, weighs the long-term costs of AI-built tools, and explains how founders can actually gain a CISO’s trust.