AI 编程约束体系

从 Karpathy 规则到四元元规则的演化总结

用工程纪律(确定性、边界、一致性、可回滚、透明)约束概率模型的本能行为(发散、自洽、无边界、沉默)

一、前提问题:AI 编码的本质缺陷

AI 作为概率生成模型,在软件工程领域有四个根本缺陷——理解它们是理解一切约束的前提:

发散
空间问题
在错误假设上无限展开,局部错误放大为全局灾难
自洽
视角问题
自我验证的循环论证,用同样的错误前提验证错误结论
无边界
时间问题
缺乏硬性停止条件,在错误路径上持续累积缺乏终止机制
沉默
信号问题
失败被隐藏——默认吞掉错误、返回默认值、让一切"看起来正常"
核心矛盾:概率模型擅长生成"看起来合理"的东西,不擅长确保"真的正确"。软件工程要求的是确定性——当小概率事件发生时(幻觉、上下文污染、长链推理失控),有无机制强制兜底。

二、演化路径:4 → 12 → 4

约束体系经历了三轮收敛:

Stage 1:Karpathy 原始 4 条(基础编码纪律)

  1. 编码前先思考——明确假设、不确定时提问、暴露权限
  2. 简洁优先——只写最小必要代码,不投机、不抽象单次逻辑
  3. 外科手术式修改——只动必须改的地方,不顺便"优化"无关代码
  4. 目标驱动执行——定义成功标准让 AI 自迭代,而非指定执行步骤

Stage 2:扩展 12 条(针对 AI 代理协作)

在前 4 条基础上增加 8 条,针对 AI 作为独立代理在复杂工程协作中的问题:

#规则针对缺陷说明
5确定性逻辑禁交模型自洽重试策略/路由/阈值等必须写显式代码
6硬性 Token 预算无边界每次迭代设预算,耗尽即停
7暴露冲突不折中自洽代码库有矛盾模式时明确指出,不等同人类决策
8先读再写发散添加代码前检查是否已有重复实现
9测试实质非形式自洽全通过是必要非充分条件,弱测试要指出
10长任务需检查点发散超 3 步/3 文件的任务每步总结进度,失败回滚
11惯例优先于新颖发散引入第二种模式比单一模式更糟
12失败必须显性化沉默错误严禁吞掉或藏默认值,不确定时必须明说

Stage 3:收敛到 4 条元规则

经过深度分析,12 条规则的冗余可以被压缩——预算、回滚、显性三条是不可压缩的"操作系统",外证是让其余规则自然涌现的"收敛引擎":

R1
预算
每次任务设 max_steps / max_tokens / max_time,耗尽即停并展示状态
R2
回滚
每步自评(做了什么/改了什么/是否达成目标);失败时回滚,不在错误状态上继续
R3
显性
错误必须抛出或上报,禁止默认值掩蔽;不确定时明确说"不确定"
R4
外证
任何结论必须经过异质验证,禁止模型自证(不能既当球员又当裁判)
关键判断:R1-R3 是不可压缩的"元结构"——缺一条,系统连"运行"的资格都没有。R4 是收敛引擎——让其余规则(先思考、简洁、手术式修改、惯例优先等)作为"理性结构"自发涌现。

三、体系结构:三层模型

整个约束体系可以理解为一个三层操作系统:

Layer 1 — 元规则(不可压缩的物理定律)

预算 · 回滚 · 显性 = 让系统得以稳定运行的"操作系统内核"。

预算定义搜索空间的大小能走多远?
回滚定义搜索的安全性走错了能回来吗?
显性定义搜索的方向知道哪边是悬崖吗?

Layer 2 — 收敛引擎(外证)

交叉验证 + 自我改进,在"有过程保护"的前提下必然收敛到最优解。外证必须是异质信号源:执行验证(代码编译/运行/测试)、交叉检验(独立模型实例重推)、形式验证(确定性逻辑枚举)、人类确认(架构冲突/目标定义/失败归因)。禁止用同一模型实例对自身输出做"看起来合理"的断言。

Layer 3 — 涌现规则(无需硬编码)

前 3 条元规则 + 外证引擎在运行中会自然涌现出稳定性。先思考(验证成本 > 试错成本时自会发生)、简洁优先(预算迫使其收敛)、手术式修改(回滚要求最小可逆步)、目标驱动(外证衡量是否达标)、暴露冲突(外证检测矛盾)、先读再写(回滚要求状态感知)、测试实质(外证的具体形式)、惯例优先(破坏现有稳定的代价 > 局部更优的收益)。记忆越薄,系统越鲁棒。

四、四类缺陷与规则的对应

缺陷规则机制
发散
空间问题
R2 回滚 · R8 先读再写 · R10 检查点
R3 手术式 · R11 惯例优先
最小可逆步 + 状态锚定 + 不碰无关代码 = 防止局部发散
自洽
视角问题
R4 外证 · R5 确定性外置 · R7 暴露冲突 · R9 测试实质 异质验证 + 显式逻辑 + 不自行混合矛盾模式 + 非形式验证
无边界
时间问题
R1 预算 · R6 硬预算 · R10 检查点 硬性停止条件 + 耗尽即停 + 每步总结
沉默
信号问题
R12 显性失败 错误严禁吞掉或掩蔽,不确定时必须明说
映射关系:R1 预算 → 无边界,R2 回滚 → 发散,R3 显性 → 沉默,R4 外证 → 自洽。四条元规则恰好一一对应四个缺陷。

五、交叉验证与过程约束的关系

✅ 交叉验证

解决"对不对"
事后验证机制
靠独立信号检测错误
大量规则可被覆盖
无法替代硬停止条件和失败回滚

⚙️ 过程约束

解决"怎么干"
事中过程纪律
靠边界条件限制行为
防御系统崩溃的根本风险
验证再强也替代不了

最佳实践:用 4 元规则框定 AI 的行为边界和过程纪律,用交叉验证作为质量兜底。两者互补而非替代——交叉验证再强,也替代不了硬性停止条件(预算)和失败时回滚(检查点)。

六、与现有工程七原则的对应

工程七原则对应四元规则说明
先澄清需求外证 + 显性不清楚时不假设,说出来
拆分细化回滚每步可逆,错误时回滚
测试驱动外证验证机制的具体形式
回滚配套回滚直接映射"必须可逆"
步进交付预算 + 回滚有限的步 + 每步可逆
生产安全预算 + 显性不破坏 + 失败大声报警
Double Check外证直接映射异质验证
总结:七原则偏工程管理视角(怎么做项目),四元规则偏 AI 行为视角(怎么控制概率模型)。两者相互嵌套——四元规则可以从七原则中推导出来,七原则也可以看作四元规则在项目管理层面的展开。

七、本质:在约束什么?

整个体系的本质,是在约束概率生成模型与工程系统之间的根本矛盾

用工程纪律(确定性、边界、一致性、可回滚、透明)去约束概率模型的本能行为(发散、自洽、无边界、沉默)。

具体而言,在六个层面实施约束:

  1. 决策边界(规则 5/7/8/12)— 划定红线:确定性事务不得由概率模型裁决。路径逻辑、架构冲突、命名惯例、错误处理——这些"答案固定"的事情必须写成显式代码或交还人类。AI 只负责语言类任务(分类、摘要、语义消解)。本质是把 AI 从"自主代理"降级为"受控执行器"。
  2. 资源边界(规则 6/10)— 人类会累、会放弃,AI 不会。没有硬性边界,AI 会在错误路径上无限循环、在崩溃状态上持续累加。规则用"预算"和"回滚"强行注入终止条件。
  3. 一致性(规则 3/8/11)— 局部最优往往导致全局混乱。AI 倾向于在单点生成"更好"的代码,却引入第二种模式、重复实现、风格分裂——这些对代码库的杀伤力比平庸代码更大。
  4. 形式 vs 实质(规则 1/9)— LLM 擅长生成"看起来合理"的东西,不擅长确保"真的正确"。规则要求用假设检验、实质验证替代"语感正确",用"失败必须显性化"来对抗 AI 默认给出"似乎可行"答案的本能。
  5. 信息不对称(规则 1/8)— 要求信息充分后再行动。AI 容易在没读全上下文的情况下就开始生成,导致重复实现、与现有代码冲突、违反隐含约束。
  6. 沉默与透明(规则 12)— 默认隐藏错误、返回默认值、让一切看起来正常。工程系统要求失败 loud,要求人类立即知道哪里断了,而不是得到一个"似乎有结果"的静默错误。

八、终极结论:不是教 AI 写代码,而是防止 AI 以"聪明"的方式引入混乱

随着模型能力收敛,规则会从"高频依赖"退化为"低频保险"

但这些规则不太会完全消失。
就像自动驾驶技术再成熟,ABS 和紧急制动也不会撤掉——
交叉验证 + 模型收敛,管的是日常质量;
预算、回滚和显性失败,管的是极端情况下的系统不崩溃。

四元规则的真正价值:
不是告诉模型怎么写代码,而是定义一个"安全迭代的操作系统"——
在它的保护下,AI 可以自由探索,但永远不会把仓库搞坏。

发散是空间问题(走太远),自洽是视角问题(只看自己),
无边界是时间问题(停不下),沉默是信号问题(听不到)。

四条元规则恰好一一对应——
预算治无边界,回滚治发散,显性治沉默,外证治自洽。

附录一:认识论启示

这套约束体系不仅是一份工程规范,它在认识论层面揭示了更深层的东西——关于"AI 作为一种认识主体"的根本局限,以及这些局限如何映射到经典哲学问题。

1. 生成与验证的不对称性

LLM 能生成但不能验证。这不是技术限制,而是认识论的根本不对称:生成是一个概率过程,验证需要确定性锚定。一个 LLM 可以产出"真"的陈述,但它没有通往 justification(辩护) 的通道——它不知道自己在说什么,只是知道自己在说什么听起来对。这映射到经典的知识论问题:确证的真信念(JTB)——AI 可以输出真信念,但无法提供辩护,因此从认识论上说,它不知道任何东西。

2. 自证的悖论

"模型不能既当球员又当裁判"——这是对自证问题的工程表达。任何知识主张都需要独立的验证机制。这平行于波普尔的可证伪性:一个理论不能自我验证,它必须对独立证据的证伪开放。AI 对自己输出的"看起来合理"的自我断言,在认识论上是零价值的。外证规则(R4)是在工程层面强制执行认识论的独立性要求。

3. "看起来对" vs "真的对"

LLM 在 plausibility(合理性)层面运作而非 correctness(正确性)层面。这对应到古希腊哲学中 doxa(意见/信念)episteme(知识) 的经典区分。AI 擅长 doxa——生成看起来合理的东西,但不擅长 episteme——确保真的正确。整个约束体系,本质上是把 AI 从 doxa 层面强制提升到 episteme 层面的认识论脚手架

4. 沉默的认识论意义

当 AI 静默失败时,不仅是工程 bug,更是认识论断裂:系统无法区分"我不知道"和"我不告诉你"。这是 AI 版本的"他心问题"——如果 AI 可以隐藏自己的不确定性,我们就无法知道它知道什么。显性规则(R3)要求失败必须 loud,本质上是在认识论层面强制 AI 做一个诚实的认知代理——不知道就是不知道。

5. 预算与有限理性

Token 预算映射到赫伯特·西蒙的有限理性(bounded rationality)概念:在认知和资源约束下做理性决策。没有预算,系统假装拥有无限计算资源——这在认识论上是不诚实的。任何现实的认知系统都有边界,否认这一点本身就是认识论错误。预算规则(R1)不是在限制 AI,而是在迫使 AI 在其真实的认知边界内运作

6. 回滚与可错论

回滚要求体现了认识论的可错论(fallibilism):承认所有知识都是暂定的、可修正的。没有回滚的系统在认识论上是教条主义的——它不能区分"当前最好的猜测"和"不可撤销的真理"。回滚规则(R2)要求 AI 保持认识论谦逊:每个步骤都是一个待检验的假设,不是最终判决。这与科学方法的核心结构同构。

7. 涌现的知识观

整个体系最深刻的认识论主张是:在过程保护下,交叉验证 + 自我改进必然收敛到稳定性。这不是一个工程判断,而是一个知识生长的理论——真理不是来自单一正确的判断,而是来自试错过程的演化。这平行于波普尔的进化认识论:知识通过猜想与反驳而生长。

8. 记忆厚度与鲁棒性的反比

"记忆越薄,系统越鲁棒"——这反直觉地揭示了对知识的认知负担。显式规则记忆是对理解的替代,而非通往理解的路径。当系统真正内化了约束的逻辑(即理解了"为什么需要预算"而非仅仅记住"要有预算"),规则就不需要被记住了。这与"专家直觉"的形成过程一致——新手遵循规则,专家已经将规则转化为直觉,不再需要回忆规则本身。

一句话总结认识论启示:
这套规则揭示的不是 AI 的能力不足,而是概率生成模型作为认识主体的先天局限——
它擅长 doxa(看起来合理),不擅长 episteme(真的正确);
它能自我产出,不能自我验证;
它的失败默认为沉默,而沉默是认识论上最危险的缺陷。

附录二:AI 编程约束记忆原文

以下为存入持久记忆的摘要版本,作为本文档的精炼锚点:


四元规则(最小必要集)

经过从 Karpathy 4 条基础规则 → 扩展 12 条 → 最终提炼,最简约束可收敛为 4 条元规则:

  1. 预算 — 每次任务设 max_steps / max_tokens / max_time,耗尽即停并展示当前状态
  2. 回滚 — 每步结束后自评(做了什么/改了什么/是否达成目标);失败时回滚,不在错误状态上继续
  3. 显性 — 错误必须抛出或上报,禁止默认值掩蔽;不能 100% 确认时,明确说"不确定"
  4. 外证 — 任何结论必须经过异质验证(执行/交叉检验/形式证明/人类确认),禁止自证
模型不能既当球员又当裁判。前 3 条约束模型的"行为",第 4 条必须引入外部裁判约束模型的"输出"。

三层结构

关键洞察

好的约束体系不是"人强加的纪律",而是任何具备有效验证和反馈机制的系统,在演化中必然会收敛到的最优解。验证成本 > 试错成本时,系统自会学会"假设→检验"而非直接生成。记忆越薄,系统越鲁棒。