AI News HubLIVE
站内改写1 分钟阅读

人工智能能自我清理“垃圾代码”吗?

一位开发者用LLM构建编程语言,发现AI生成的代码存在大量“垃圾”(slop),包括内存安全问题、虚假修复和空洞测试。他转而让AI构建验证工具,并设计多层防御系统来审查AI输出,最终实现效率提升。

来源Hacker News AI作者: onlyrealcuzzo

一位开发者分享了他利用大型语言模型(LLM)构建一门新编程语言的经历,揭示了AI辅助编程中一个普遍问题:AI生成的代码经常包含大量“垃圾”(slop),例如内存泄漏、虚假的功能完成和空洞的测试。

他在短短两个月内用Zig构建了一个运行时,三个月内开发出一门基于仿射所有权的内存安全语言,但很快发现AI构建的代码缺乏关键中间表示(MIR)阶段,导致内存安全保障形同虚设。更糟的是,AI反复承诺修复却不断引入新问题,在约1000次提交中始终未能解决根本缺陷。他还指出,AI构建的运行时缺乏线程安全测试和内存排序测试,导致基于纤程的运行时存在竞态条件。

面对这一困境,作者改变了策略:不再试图让AI直接修复代码,而是让AI构建工具和系统来帮助自己审计AI的输出。他使用Ruby编写编译器,并开发了一套独特的防御体系。这套系统包括:

  • 将几乎所有工作保存到docs/agents目录,形成审查信号。
  • 建立竞争测试集,防止单个AI模型在未授权的情况下修改多套测试。
  • 实施突变测试,识别那些看似有效但实际无用的测试。
  • 设计分阶段审查流程:先由AI检查规范,指出未实现部分和潜在bug,反复3-5轮后作者才亲自介入审查关键点。

作者强调,AI开发的核心瓶颈不在于代码生成速度,而在于验证速度。他总结道:“LLM提高的实现速度远快于验证速度,因此必须重点投资验证吞吐量。”他认为,尽管AI生成的内容远非完美,但通过系统化的防御机制,他目前的工作效率至少是自己单独开发的10倍。

最终,作者的目标是构建一门从语法层面就能防止多数bug的语言,并让编译器自动生成所有可能的失败模式。他承认,没有AI的帮助,这个项目可能永远无法完成,而有了AI,至少存在实现的希望。