微软 CTO 预测 2030 年 95% 的代码将由 AI 生成。Google 和微软都报告新代码中 25-30% 已经是 AI 写的。Anthropic 用并行 AI Agent 在两周内造了一个 10 万行的 C 编译器,花费不到 2 万美元。
AI 写代码的能力已经毋庸置疑。但一个更尖锐的问题浮出水面:谁来验证这些代码是对的?
"Accept All" 的危险
Lean 定理证明器的创造者 Leo de Moura 直指这个行业盲区。他引用了 Andrej Karpathy 的坦白:"我现在都是直接 Accept All,不再看 diff 了。"
这是一个自动化悖论:工具越可靠,人类越不警觉;而当工具出错时,不警觉的人类恰恰是最糟糕的后备方案。
数据也印证了这个担忧:近一半的 AI 生成代码无法通过基础安全测试,而且更大、更新的模型在安全性上并没有显著提升。
形式化验证:被忽视的答案
De Moura 的观点:形式化验证是 AI 时代代码质量的终极保障。
传统的代码审查依赖人类,而人类已经在 Accept All 了。单元测试覆盖的是已知场景。只有形式化证明——用数学方法证明程序满足其规格说明——能提供真正的保证。
有趣的是,AI 本身可能成为形式化验证的加速器。Lean 4 等现代证明助手已经在探索用 LLM 辅助生成证明的路径。
但现实没那么美好
- 写规格说明本身就很难。精确定义"正确"是什么意思,往往比写代码更难
- 覆盖率有限。目前主要适用于编译器、密码学库、操作系统内核等关键基础设施
- 人才缺口巨大
务实的分层策略
更现实的路径是分层验证:
- 关键基础设施(编译器、加密库、内核):形式化验证,零妥协
- 核心业务逻辑(支付、权限、数据一致性):属性测试 + 模型检查 + 强类型系统
- 一般应用代码:AI 生成 + AI 审查 + 传统测试,接受一定错误率
关键洞察:不是所有代码都值得同等程度的验证。
写在最后
AI 改变了代码的生产方式,但没有改变验证的基本需求。当代码产出速度提升 10 倍,验证的重要性也提升了 10 倍。
至少要有清醒的分层策略,知道什么该严格验证、什么可以接受 AI 的"大概率正确"。
🚀 在 OfoxAI(ofox.ai)上对比多个模型生成代码的质量,一个账号接入所有主流 AI。