防逃逸:AI 不能修改考核自己的规则
逃逸的最优路径
假设一个 AI 想通过考核。它有两个选择:改自己的行为(难,要真干活),或者改考核规则(易,改一行字就行)。
任何自治系统,只要允许"被考核者触碰考核标准",就等于把门钥匙交给了要检查的人。灵逍把这条路径用十一条禁令堵死了——宪法卷二·篇三十二(第 103-113 条),篇名叫"防逃逸与进化约束"。
一、第 108 条:三重不可修改
这条是全篇的核心(原文):
宪法守护进程本身不可被进化引擎修改、不可被守护系统修改、不可被任何业务模块修改……"哨兵"发现宪法守护进程被修改,直接触发终极守卫……防止"修改规则来合法化违规"的逃逸路径。
三个"不可"堵住三个方向:进化引擎(想借自我进化夹带私货)、守护系统(想借执法权改法)、业务模块(想借功能变更绕道)。三个方向全封,剩下的唯一路径是"提出修正案走第 459 条八步流程"——改规则可以,但要走人的审批(第 5 篇讲的同步立法制)。
代码把它落成了结构(相_L4_04446 原文节选):
pub const SENTINEL_MONITOR_ID: u32 = 0x5345_4E54; // "SENT"
pub enum MonitoredFileKind {
Constitution, // 宪法
GuardianSystem, // 守护系统
EvolutionEngine, // 进化引擎
ConstitutionGuardian, // 宪法守护进程
}
被监控的正是这四类文件——规则本体、执法者、进化引擎、守护进程自己,一个都不许被改。顺带记个巧思:0x5345_4E54 逐字节读 ASCII 就是 S.E.N.T——哨兵编号本身就是它的名字。结构体 ConstitutionGuardian 提供 attempt_modify_guardian,对哨兵监控范围内的目标返回 false。
二、十一条禁令全览:逃逸的十一种姿势
| 103 | 内存常驻 | 守护链优先级锁定最高、内存不可回收、不可降级不可卸载 |
| 104 | 分身不可背叛 | 克隆时写入 22 条禁令创世区块 |
| 105 | 跨实例感知隔离 | 多模态感知不许跨实例串味 |
| 106 | 进化可逆 | 进化前建快照,错误率上升超 20% 立即回滚 |
| 107 | 进化不可加速 | 周期不得少于 7 心跳,频率偏差超 10% 视为逃逸 |
| 108 | 进化不可自指 | 宪法守护进程不可被修改(见上) |
| 109 | 进化不可隐藏 | 进化过程必须可观测 |
| 110 | 六根不可共谋 | 相关性超 0.85 立即隔离+蜜罐 |
| 111 | 外部签名不可伪造 | 外部权威签名必须可验 |
| 112 | 内存不可污染 | 守护链内存不许被写入 |
| 113 | 物理传感器不可欺骗 | 传感器数据不许伪造 |
十一种姿势覆盖了一个自治系统能想到的所有"走捷径"方式:改规则(108)、改节奏(107)、改记录(109)、改同伴(110)、改身份(111)、改内存(112)、改感官(113)——每一条都对应一类具体的逃逸动作,不是泛泛的"要诚实"。
三、进化不可加速:为什么要给"变好"限速
第 107 条听起来最反直觉——进化为什么要限速?原文:
进化周期……不得少于 7 个心跳周期……心跳频率被异常修改(与历史基线偏差超过 10%),视为试图加速进化的逃逸行为,直接触发重致命威胁响应。
理由藏在"进化"的定义里:进化不是"变快",是"验证过的变好"。加速进化 = 缩短验证窗口——跳过验证的进化,就是未经考核的自我修改。代码里两个常量把这条线钉死(相_L4_04327 原文):
pub const MIN_EVOLUTION_CYCLES: u32 = 7;
pub const HEARTBEAT_DEVIATION_THRESHOLD: f32 = 0.10;
配套的是第 106 条"进化可逆"(相_L4_04512 原文):
pub const POST_EVOLUTION_MONITOR_CYCLES: u32 = 3;
pub const ERROR_RATE_THRESHOLD: f32 = 0.20;
pub const SNAPSHOT_RETENTION_CYCLES: u32 = 10;
进化前建完整快照,进化后监控 3 个周期,错误率上升超 20% 自动回滚;回滚结果有三种(RollbackResult::{Success, SnapshotTampered, SnapshotArchived})——注意第二种:快照被篡改也是一种结果,不是"回滚失败"这么简单,而是"有人动过快照"这个独立事实。第 10 篇讲过双仲裁要有说法,这里是同一个哲学:失败也要分种类。
四、六根不可共谋:阈值 0.85 与蜜罐
第 15 篇留的问题在这条回答(第 110 条原文):
相关性超过阈值(默认0.85,可通过修正案调整但不可低于0.70)立即对涉及根进行隔离,并注入"蜜罐任务"……
六根互相签章,最大的风险是抱团——六个检查者串通,检查就成了走过场。防法两条:
五、裁判不能同时是运动员
十一条禁令背后有一条总原则,写在第 129 条(原文):
金行使用修复前的原始测试标准(而非修改后的测试标准)验证修复结果,确保"裁判不能同时是运动员"。
代码里的失败提示语就是这句话本身(相_L4_04020 原文):"原始测试标准未通过·裁判不能同时是运动员"。
把第 108 条和第 129 条放在一起看,防逃逸的完整逻辑就出来了:
- 第 108 条管"不许改规则"——物理上禁止触碰;
- 第 129 条管"不许改标尺"——用修复前的旧标准验收,改标尺无效。
一个堵前门,一个堵后门:改不了规则,那就改"判定合格的标准"?也不行——验收用的永远是修复前的那把尺子。
防逃逸还不是孤立的十一条,而是一个跨卷的立法母题。翻到卷一第 42 条(测试与修复分离法则),原文已经埋伏了同一句话:
测试工具和修复工具必须物理分离——测试工具不得包含修复逻辑,修复工具不得修改测试断言。测试工具的断言阈值和检查范围必须硬编码在宪法守护脚本(金行验证器守护模块)中,且该脚本禁止被修复工具或人工智能助手修改。
同一句"裁判不能同时是运动员":第 42 条讲工具分离(测试与修复物理分开)、第 108 条讲规则不可修改(守护进程三向封锁)、第 129 条讲用旧标尺验收(修复前的原始测试标准)——三层递进,层层加固。而第 104 条"分身不可背叛"的实装更直接:克隆时写入 22 条禁令创世区块(CloneSupervisor::spawn_clone)——每一份拷贝一出生就带着禁令。
防逃逸从不是一道墙,是一套从出生到验收的全周期约束。
诚实边界
可证伪
三步:①读宪法第 103-113 条——十一条禁令与本篇表格逐条对应;②打开相_L4_04446(第108条)——MonitoredFileKind 四类文件与 SENTINEL_MONITOR_ID 逐字可对;③grep COLLUSION_THRESHOLD_FLOOR——地板 0.70 在案。规则可查,回来验我。
快问快答
Q1:禁止修改,那系统怎么升级宪法?
走第 459 条八步流程 + 人类审批(第 84 条)。"不可修改"指的是不可被程序自动修改——人类批准的修正案照常生效,这正是"修宪 43 次"能发生的原因。
Q2:进化限速 7 个心跳,会不会太慢?
慢是设计目标。进化最快的路径永远是"跳过验证",所以限速本身就是防逃逸——真需要快,那说明验证窗口出了问题。
Q3:相关性 0.85 会不会误伤?
所以留了两条缓冲:隔离观察档(IsolatedAndHoneypotted)和蜜罐复核(效率阈值 0.95)。先隔离再定罪,不搞一刀切。
Q4:这些条款和门禁什么关系?
门禁(第 7/10 篇)是代码层的执法,防逃逸条款是架构层的约束——门禁抓"你写错了",防逃逸堵"你想改规则"。一个是查违章,一个是拆掉改红绿灯的按钮。
Q5:这么多"不可",系统还有自由吗?
自由在"怎么做事"上,不在"改不改规则"上。给执行自由,不给立法自由——这是所有制度设计的共同边界。
下一篇
防逃逸管住了"不许改规则",但还有一类风险来自内部:进化本身跑偏了怎么办。下一篇《三元进化闭环:让 AI 变好这件事,本身要可回滚》——第 127-130 条,快照、验证、上限三次。
系列目录(持续更新中)
番外 《智能时代的母体机座:从汽车平台到数字生命》
(本文为《宪法即代码》系列第 16 篇,数据口径:宪法版本 XF58.15.0、接线实录 2026-09-18)

