张铁蕾 26-04-22 09:20
微博认证:AI博主

【AI经验分享】通过一个AI开发经验说明verify阶段有多重要。

• 第一,verify有和无的区别,就非常大。看第一张截图,使用Claude Code时没有任何提示,就扔给它一个任务让它写代码。它经常是写完代码就结束了(只做静态检查),也不去实际运行测试。写出来的代码通常是有问题的,需要工程师来进一步提示它修复。

• 第二,生成完的程序至少要进行运行测试。比如第二张截图,我们在开发AmphiLoop项目(bitsky-tech/amphiloop)时,有个subagent会主动引导进行verify,反复调用程序执行并进行修复,直到运行成功。

• 第三,利用一切可以做verify的信息。verify不仅仅是验证“能够运行”;如果有业务层面的信息可供验证,就会大大提高代码一次性生成可用的概率。看第三张截图,TASK.md任务描述中有一个专门的Expected Output小节,这里只有任务创建者才能写出具体的预期(也就是生成的程序执行后,你预期它的行为怎么样,有什么产出之类的)。在第四张截图就能看出它真正发挥的作用:verify阶段,AmphiLoop会引导系统去检查Expected Output描述的预期有没有真的达到。比如这个例子中,程序运行后确实生成了一个orders.json文件,并且这个文件中的每一项的状态字段都是"Pending"。这个验证如果通不过,负责verify的subagent也会继续修复程序,根本不用工程师动手甚至操心这件事。

值得一提的是Expected Output小节的第二个验证点,这里再详细解释一下。我们发现,AI有时候不太容易自己发现错误。比如第五张截图,AI在点选下拉列表的时候,有一定概率就做不对。而且关键问题在于,它做不对的时候也不知道自己错了,还以为对了[笑cry],所以也就不知道去修复错误。这个时候就依靠Expected Output这里的描述了,最终会做一次验证,让这个错误能够被coding agent自己发现出来并自己修复。

总之,verify非常重要,除了技术层面的验证还需要业务层面的验证。开个玩笑说,以后工程师也许可以不掌握写代码的技能了,但必须掌握测试的技能。以后软件工程领域那是测试工程师的天下啊[挤眼]

#How I AI# #AmphiLoop# #claudecode#

发布于 北京