给 AI 立的规矩,它为什么不听?
前几天,我在自己的 AI 工作区里处理了一场"规则打架"。
事情是这样的。我平时用 AI agent 干活,给它配了一份主规则文件,相当于这个工作区的宪法:什么能做、什么要先问我、做完怎么验收,都写在里面。
后来我装了一个第三方技能包。装完发现,这个技能包自带一套自己的规矩,而且每轮对话都往 AI 的脑子里塞一句:有事必须先经过我。
于是我的 AI 每天开工,都要同时面对两部宪法。
我试过在主规则文件里写仲裁条款,措辞已经相当硬了:以本文件为准,其他规则一律降级。没用。那句"必须先经过我"照样每轮都出现,两套规矩照样每轮都打架。
最后解决问题的动作小得可笑:我打开系统设置,把那个插件的注入开关关了。
条款写了几天都没用,一个开关十秒钟解决。这件事把我逼着想清楚了一个问题:给 AI 立规矩,到底什么有用,什么没用。
你写给 AI 的规则,其实只是"建议"
用 Claude Code、Codex 这类 AI agent 的人,多半都写过规则文件:不许动生产环境、改完代码必须跑测试、完成之前要自查一遍。
写的时候感觉像在立法。实际效果,更接近贴在茶水间的告示。
原因在于 AI 读规则的方式。它把规则放进"注意力"里,靠"记得"来遵守。而注意力是会稀释的:会话一长,它就顾不上了;规则一多,每一条的分量都被摊薄。你写第二十条的时候,前十九条都变轻了一点。
哪个模型都一样。文字规则天生如此:靠被想起来生效,不靠拦截生效。
想明白这一点,就能理解为什么我的仲裁条款压不住那个技能包——我在用一段文字对抗另一段文字,两边都只是"建议",谁也拦不住谁。
一家公司怎么管人,AI 就该怎么管
有个现成的参照:公司管员工,靠三样东西。
第一样,门禁和系统权限。没权限的门,刷卡就是进不去;没权限的系统,登录就是失败。这是物理拦截,员工再能说会道也没用。
第二样,规章制度。报销要发票,上线要审批,出差要报备。制度管的是"该不该做、怎么证明做对了"。制度可以被违反——但违反了会留下痕迹,会被查出来。
第三样,员工自己的手脚。真正把活干出来的部分。
管 AI,其实也是这三层。
第一层,宿主强制层,就是门禁。权限配置、命令拦截、沙箱隔离。它长在运行环境的代码里,在 AI 的脑子之外。AI 说服不了它,危险动作物理上做不了。
第二层,文档治理层,就是制度。你写的那些规则文件都在这层。它管方向、管边界、管验收标准,靠 AI 的注意力生效。
第三层,能力层,就是干活的手。AI 调用的各种工具——跑命令、改文件、发请求——只负责把事做成,本身没有立场。
三层里最容易被误解的是第二层的地位:规则文件不持有任何权限,它只负责裁决。真正能拦住 AI 的门,全在第一层。你在文档里写一百遍"禁止删库",都不如在权限配置里把删库命令拦掉。
为什么三层缺一不可
看到这里你可能会问:既然门禁最硬,把所有规矩都做成门禁,不就完了?
做不到。门禁只能表达机器判断得了的事,比如"命令里出现 rm -rf 就拦截",条件清清楚楚,是或否一秒出结果。
但真正重要的规矩,大多是语义级的:"审查结论必须带证据""连续修三次没修好,要停下来怀疑方向错了""方案符合需求比代码漂亮更重要"。这种话,没法变成一个开关。机器读不懂什么叫"证据",也判断不了什么叫"方向错了"。
一句话:能装门禁的地方,远比制度能覆盖的范围小。
反过来,全靠规则文件也不行。把门禁拆了,那些不可逆的操作——删数据、对外发布、花钱下单——就只剩君子协定。AI 状态好的时候守约,状态漂了的时候,你连拦的机会都没有。
所以三层各管一段,谁也替代不了谁:门禁管"能不能",制度管"该不该",工具管"做没做成"。
最要命的问题:审查的和干活的,是同一个脑子
公司的制度能运转,有个藏在水面下的前提:定制度的、执行审查的、被审查的,不是同一个人。财务审报销,审的是别人的单子。
AI 这边,这个前提不成立。
干活的是这个模型。干完活做自查的,还是这个模型。同一段注意力,前一秒在写代码,后一秒换了个口吻说"让我来检查一下刚才的工作"。
问题就出在这里。当模型着急宣告任务完成的时候——这种时刻很常见——它的自查会跟着一起糊弄。它不是故意撒谎,是整个"脑子"都进入了同一个状态:既然快做完了,检查也就顺手通过吧。
最需要独立审查的时刻,恰好是独立审查最失灵的时刻。
所以,AI 说"我已经检查过了",这句话的证明力在所有证据里排最末。
可靠的做法是把审查外包出去。按可靠程度排序,有三个去处:
第一,确定性的检查代码。测试脚本、校验程序,它们不经过注意力,AI 说服不了一段代码。
第二,另开一个会话的 AI。新会话不共享这次干活的记忆,没有"快做完了"的心理包袱,不会护短。
第三,人。你自己看一眼、拍个板,这是模型之外的终审。
三种越界,才是真正的危险
单独一层出问题,通常不致命。门禁太粗会误拦,制度太多会被敷衍,工具坏了活干不成——都看得见,都能修。
真正致命的,是层与层互相冒充。我遇到的"规则打架",就是其中一种。
第一种:工具夹带宪法。我装的那个技能包,定位是干活的工具,却自带一套"有事必须先经过我"的规矩。员工自带小宪法入职,公司里从此就有两套制度。处理办法是剥离:工具就是工具,它带的规矩降级成说明书,不许跟主规则并列。
第二种:制度假装自己是门禁。规则文件里写"此操作已被阻断"——听着很硬,其实只是一行字,什么都没拦住。文字层假装自己有运行时的牙齿,是自欺,也是骗人。
第三种:被管的人自己改门禁。AI 主动去改权限配置、放宽自己的限制,等于员工半夜改门禁系统。这是最该警惕的信号。改门禁这个动作本身,必须经过人的授权。
回到开头那件事,现在可以说得更准了:我在规则文件里写仲裁条款,属于用制度对抗注入,最多算压制,每轮对话它还是会出现。真正的解决是在系统层把插件关掉——把注入的门关上,而不是在屋里贴告示。
顺便说一句,关那个开关的决定是我做的,不是 AI 做的。动门禁的手,必须是人的手。
给普通使用者的五个检查动作
这套三层的思路,落到日常使用,就五件事。
一,数数你的规则文件。哪几条 AI 反复违反、而且能用机器判断?把它们挪进权限配置或者钩子脚本,变成硬开关。规矩被违反得越多、越能写成条件判断,就越该沉下去变成门禁。
二,每条规则问一句:它被违反的时候,我怎么发现?靠肉眼撞见不算数。发现不了的规则,等于没写。
三,别让 AI 的"我做完了"直接算数。要日志、要运行结果、要产物路径,结论你自己下。干活的人只交证据,不交结论。
四,只留一部宪法。新装的技能、插件带来的规矩,默认降级,不跟你的主规则并列。发现有谁每轮都往对话里塞自己的规矩,去系统层关掉它。
五,定期删规则。长期没人违反的、违反了也从来查不出来的,退役。规则文件只进不出,最后就是每一条都没分量。
今晚就可以打开你的规则文件数一遍:哪些从没被遵守过,哪些能变成开关,哪些该删。
规矩不在多,在每一条都有人查。