从 Karpathy 规则到四元元规则的演化总结
用工程纪律(确定性、边界、一致性、可回滚、透明)约束概率模型的本能行为(发散、自洽、无边界、沉默)
AI 作为概率生成模型,在软件工程领域有四个根本缺陷——理解它们是理解一切约束的前提:
约束体系经历了三轮收敛:
在前 4 条基础上增加 8 条,针对 AI 作为独立代理在复杂工程协作中的问题:
| # | 规则 | 针对缺陷 | 说明 |
|---|---|---|---|
| 5 | 确定性逻辑禁交模型 | 自洽 | 重试策略/路由/阈值等必须写显式代码 |
| 6 | 硬性 Token 预算 | 无边界 | 每次迭代设预算,耗尽即停 |
| 7 | 暴露冲突不折中 | 自洽 | 代码库有矛盾模式时明确指出,不等同人类决策 |
| 8 | 先读再写 | 发散 | 添加代码前检查是否已有重复实现 |
| 9 | 测试实质非形式 | 自洽 | 全通过是必要非充分条件,弱测试要指出 |
| 10 | 长任务需检查点 | 发散 | 超 3 步/3 文件的任务每步总结进度,失败回滚 |
| 11 | 惯例优先于新颖 | 发散 | 引入第二种模式比单一模式更糟 |
| 12 | 失败必须显性化 | 沉默 | 错误严禁吞掉或藏默认值,不确定时必须明说 |
经过深度分析,12 条规则的冗余可以被压缩——预算、回滚、显性三条是不可压缩的"操作系统",外证是让其余规则自然涌现的"收敛引擎":
整个约束体系可以理解为一个三层操作系统:
预算 · 回滚 · 显性 = 让系统得以稳定运行的"操作系统内核"。
| 预算 | 定义搜索空间的大小 | 能走多远? |
| 回滚 | 定义搜索的安全性 | 走错了能回来吗? |
| 显性 | 定义搜索的方向 | 知道哪边是悬崖吗? |
交叉验证 + 自我改进,在"有过程保护"的前提下必然收敛到最优解。外证必须是异质信号源:执行验证(代码编译/运行/测试)、交叉检验(独立模型实例重推)、形式验证(确定性逻辑枚举)、人类确认(架构冲突/目标定义/失败归因)。禁止用同一模型实例对自身输出做"看起来合理"的断言。
前 3 条元规则 + 外证引擎在运行中会自然涌现出稳定性。先思考(验证成本 > 试错成本时自会发生)、简洁优先(预算迫使其收敛)、手术式修改(回滚要求最小可逆步)、目标驱动(外证衡量是否达标)、暴露冲突(外证检测矛盾)、先读再写(回滚要求状态感知)、测试实质(外证的具体形式)、惯例优先(破坏现有稳定的代价 > 局部更优的收益)。记忆越薄,系统越鲁棒。
| 缺陷 | 规则 | 机制 |
|---|---|---|
| 发散 空间问题 |
R2 回滚 · R8 先读再写 · R10 检查点 R3 手术式 · R11 惯例优先 |
最小可逆步 + 状态锚定 + 不碰无关代码 = 防止局部发散 |
| 自洽 视角问题 |
R4 外证 · R5 确定性外置 · R7 暴露冲突 · R9 测试实质 | 异质验证 + 显式逻辑 + 不自行混合矛盾模式 + 非形式验证 |
| 无边界 时间问题 |
R1 预算 · R6 硬预算 · R10 检查点 | 硬性停止条件 + 耗尽即停 + 每步总结 |
| 沉默 信号问题 |
R12 显性失败 | 错误严禁吞掉或掩蔽,不确定时必须明说 |
| 工程七原则 | 对应四元规则 | 说明 |
|---|---|---|
| 先澄清需求 | 外证 + 显性 | 不清楚时不假设,说出来 |
| 拆分细化 | 回滚 | 每步可逆,错误时回滚 |
| 测试驱动 | 外证 | 验证机制的具体形式 |
| 回滚配套 | 回滚 | 直接映射"必须可逆" |
| 步进交付 | 预算 + 回滚 | 有限的步 + 每步可逆 |
| 生产安全 | 预算 + 显性 | 不破坏 + 失败大声报警 |
| Double Check | 外证 | 直接映射异质验证 |
整个体系的本质,是在约束概率生成模型与工程系统之间的根本矛盾:
用工程纪律(确定性、边界、一致性、可回滚、透明)去约束概率模型的本能行为(发散、自洽、无边界、沉默)。
具体而言,在六个层面实施约束:
随着模型能力收敛,规则会从"高频依赖"退化为"低频保险"
但这些规则不太会完全消失。
就像自动驾驶技术再成熟,ABS 和紧急制动也不会撤掉——
交叉验证 + 模型收敛,管的是日常质量;
预算、回滚和显性失败,管的是极端情况下的系统不崩溃。
发散是空间问题(走太远),自洽是视角问题(只看自己),
无边界是时间问题(停不下),沉默是信号问题(听不到)。
四条元规则恰好一一对应——
预算治无边界,回滚治发散,显性治沉默,外证治自洽。
这套约束体系不仅是一份工程规范,它在认识论层面揭示了更深层的东西——关于"AI 作为一种认识主体"的根本局限,以及这些局限如何映射到经典哲学问题。
LLM 能生成但不能验证。这不是技术限制,而是认识论的根本不对称:生成是一个概率过程,验证需要确定性锚定。一个 LLM 可以产出"真"的陈述,但它没有通往 justification(辩护) 的通道——它不知道自己在说什么,只是知道自己在说什么听起来对。这映射到经典的知识论问题:确证的真信念(JTB)——AI 可以输出真信念,但无法提供辩护,因此从认识论上说,它不知道任何东西。
"模型不能既当球员又当裁判"——这是对自证问题的工程表达。任何知识主张都需要独立的验证机制。这平行于波普尔的可证伪性:一个理论不能自我验证,它必须对独立证据的证伪开放。AI 对自己输出的"看起来合理"的自我断言,在认识论上是零价值的。外证规则(R4)是在工程层面强制执行认识论的独立性要求。
LLM 在 plausibility(合理性)层面运作而非 correctness(正确性)层面。这对应到古希腊哲学中 doxa(意见/信念) 与 episteme(知识) 的经典区分。AI 擅长 doxa——生成看起来合理的东西,但不擅长 episteme——确保真的正确。整个约束体系,本质上是把 AI 从 doxa 层面强制提升到 episteme 层面的认识论脚手架。
当 AI 静默失败时,不仅是工程 bug,更是认识论断裂:系统无法区分"我不知道"和"我不告诉你"。这是 AI 版本的"他心问题"——如果 AI 可以隐藏自己的不确定性,我们就无法知道它知道什么。显性规则(R3)要求失败必须 loud,本质上是在认识论层面强制 AI 做一个诚实的认知代理——不知道就是不知道。
Token 预算映射到赫伯特·西蒙的有限理性(bounded rationality)概念:在认知和资源约束下做理性决策。没有预算,系统假装拥有无限计算资源——这在认识论上是不诚实的。任何现实的认知系统都有边界,否认这一点本身就是认识论错误。预算规则(R1)不是在限制 AI,而是在迫使 AI 在其真实的认知边界内运作。
回滚要求体现了认识论的可错论(fallibilism):承认所有知识都是暂定的、可修正的。没有回滚的系统在认识论上是教条主义的——它不能区分"当前最好的猜测"和"不可撤销的真理"。回滚规则(R2)要求 AI 保持认识论谦逊:每个步骤都是一个待检验的假设,不是最终判决。这与科学方法的核心结构同构。
整个体系最深刻的认识论主张是:在过程保护下,交叉验证 + 自我改进必然收敛到稳定性。这不是一个工程判断,而是一个知识生长的理论——真理不是来自单一正确的判断,而是来自试错过程的演化。这平行于波普尔的进化认识论:知识通过猜想与反驳而生长。
"记忆越薄,系统越鲁棒"——这反直觉地揭示了对知识的认知负担。显式规则记忆是对理解的替代,而非通往理解的路径。当系统真正内化了约束的逻辑(即理解了"为什么需要预算"而非仅仅记住"要有预算"),规则就不需要被记住了。这与"专家直觉"的形成过程一致——新手遵循规则,专家已经将规则转化为直觉,不再需要回忆规则本身。
以下为存入持久记忆的摘要版本,作为本文档的精炼锚点:
经过从 Karpathy 4 条基础规则 → 扩展 12 条 → 最终提炼,最简约束可收敛为 4 条元规则:
模型不能既当球员又当裁判。前 3 条约束模型的"行为",第 4 条必须引入外部裁判约束模型的"输出"。
好的约束体系不是"人强加的纪律",而是任何具备有效验证和反馈机制的系统,在演化中必然会收敛到的最优解。验证成本 > 试错成本时,系统自会学会"假设→检验"而非直接生成。记忆越薄,系统越鲁棒。