AI 写了 95% 的代码,谁来验证它?

4 阅读2分钟

微软 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。