人工智能代理的最新进展正在大幅降低发现软件漏洞的成本,可能引发一场广泛的“软件危机”,因为大多数现有代码并非为如此密集的审查而设计。这导致人们对形式化验证的兴趣增加——使用机械工具证明代码的正确性。 最近在Lean生态系统内取得了一项重要里程碑:10个AI代理自主构建并*验证*了一个完整的zlib实现,名为“lean-zip”,保证它没有实现错误。然而,随后的模糊测试(使用另一个AI代理Claude)揭示了一个令人惊讶的结果。虽然lean-zip本身在超过1.05亿次测试后被证明是安全的,但发现了一个缓冲区溢出——并非在经过验证的代码中——而是在Lean 4运行时中,影响所有版本。此外,lean-zip的未经验证的归档解析器中发现了一个拒绝服务漏洞。 这表明,即使是经过形式化验证的代码也依赖于可能仍然存在漏洞的基础系统,并且验证工作必须超出核心应用程序的范围。
## AI辅助编程:开发者视角
AI辅助编程工具如Copilot和Claude的快速兴起是不可避免的,甚至仅仅*讨论*它也在助长炒作。作者最初对此抵触,完全依赖AI进行代码生成时感到迷失和“文盲”——感觉像是在不断地代码审查,而不是创造。他们通过使用AI处理繁琐的任务,同时保留对核心逻辑和质量的控制,找到了平衡。
然而,这种开发便捷性的提高也带来了挑战。大量快速构建的“氛围代码”项目引发了对长期可维护性和代码质量的担忧,并对开发者的责任提出了伦理问题。AI生成代码的许可仍然是一个灰色地带。
最终,作者提倡负责任地使用AI。它是一种工具,而不是技能和努力的替代品。实验是找到适合个人需求的流程的关键,开发者应该优先考虑质量和责任,无论代码如何生成。核心信息是:继续“努力”——专注于构建伟大的事物,不要害怕将AI作为*过程的一部分*来拥抱。