55.9% → 0.7%。这不是优化。这是一个开关的差距。
上一篇我说了一个概念:Prose Barrier
简单回顾:AI agent 的"自我验证"在结构上就是不可靠的——它说"我遵守了规则"和执行规则,用的是同一个模型、同一套参数。就像考生自己批改自己的卷子。
解决方案是机械门:用文件系统检查、正则表达式、进程退出码来验证,完全绕过 AI 的文字输出。
概念是好的。但数据呢?
实验设计:150 个标准化任务
我设计了一个对照实验:
| 维度 | 说明 |
|---|---|
| 任务 | 150 个标准化开发任务(写代码、改配置、更新文档等) |
| 条件 | 机械门 ON vs OFF |
| 评分 | 确定性正则,不靠 LLM 评判 |
| 模型 | DeepSeek V4 Pro |
| Session | 6 轮独立对话 |
每条规则都有精确的正则表达式来检测是否被遵守。不是"我看了觉得应该没问题"——是正则匹配到了才算通过。
结果:一个开关的差距
机械门 OFF:违规率 55.9%
机械门 ON: 违规率 0.7%
一半以上的 session 在没门的时候有违规。接了门之后,几乎清零。
更关键的是违规的类型。没门的时候,违规分布很散——有的忘了更新文档,有的 hook 没接线,有的直接跳过检查。有门的时候,剩下的 0.7% 几乎全是边界情况(比如文件时间戳刚好跨天)。
这说明机械门不是在"修 bug"。它是在消除一整类问题:agent 说自己做了、但实际没做的事。
但我发现了两个诚实的问题
第一个:天花板效应。
code 格式 + 机械门 OFF 条件下,raw compliance 也高达 98%。这意味着我的合规评分本身就很高——门的效果被天花板压缩了。如果有更敏感的量表,门的效果可能看起来更大。
第二个:单人单卡。
RTX 3060,150 个任务,全是我一个人跑的。评分用的是我自己写的正则。没有第二个评分者。
我在这篇文章里把这两个问题写得很清楚,因为如果你也在做类似的事,你需要知道:合规率容易天花板,评分容易主观。 这是实验设计的真实约束,不是事后找的借口。
实用结论
如果你在给 AI agent 搭规则系统:
1. 规则用正则能查的东西来定义。 不要写"agent 应该仔细检查"。写"agent 必须输出一个包含 [CHECK-PASS] 的行"。能正则匹配的规则,才能机械验证。
2. 门要放在生成回路之外。 门不是 prompt 里的另一个段落。门是一个独立的 Python 脚本,读文件系统、返回 exit code。它不参与 token 生成。
3. 先跑基线,再调规则。 把门关掉,跑 20-30 个任务,看 agent 自然状态下违规率是多少。这个基线决定了你的门到底有没有用。
👋 林宇浩 — FAFU 空间信息大三。完整实验数据: github.com/YuhaoLin200…
📖 上一篇:你的 AI 说它守规矩。但它没法证明。 — Prose Barrier 概念 📖 下一篇:文件系统门只能查"做了没"。我加了一层,查"懂了没"。 — 神经门实验