你让 AI 改完代码,它说“测试通过”,事情就真的做完了吗?未必。现成测试可能漏掉关键情况,能运行也不等于符合需求。这项研究追问的正是编码 Agent——能读取项目、写代码并调用终端的 AI 系统——会不会主动选择验证方法,并用可靠证据确认自己的实现正确。
作者让 Agent 用 Rust 实现 Zstandard(Zstd,一种开源无损压缩算法),设置了 26 种提示条件:从不加额外要求,到测试驱动开发(先写测试再写实现)、模糊测试(大量输入自动撞出异常)、差分测试(与另一实现对照),再到 Lean 4 等形式化工具;另测试了 4 套现成技能。关键设计很实际:这些指令模拟的不是测试专家,而是只听说过某种方法、便要求 Agent 使用的普通开发者。
这值得关注,因为真正的短板可能不在“会不会生成代码”,而在“能否挑对检查、读懂失败并确认需求”。不过供稿截取到作者的预先预测,未提供各条件的最终正确率,因此目前不能判断哪种方法确实更有效。