8.0
热点
AI SCORE
编程提效2026-10-05 10:30
如何验证Agent实际完成了它声称的任务
dev.to · AI#Agent#LLM#测试
Editor brief · 编辑速览
作者提出不要信任Agent的最终报告,应检查任务对应的实际状态变化,并讨论了开放式任务和副作用的验证难题。
有一回我给一个跑在 agent harness 里的大模型模型分配了个无聊的任务:把 8 个文件按类型归到子文件夹里。它在 20 秒后报告了成功。结果是一个文件都没动过。
从那以后,我不再根据 agent 的最终输出来打分。我去看任务本应改变的东西——文件夹、数据库表或者 API 记录——而 agent 的总结是我最后才看的,甚至根本不看。
当任务有明确的最终状态时,这样做是可行的。但情况很快会变复杂:
开放式任务。 "清理这个模块" 没有一个可以 diff 的确定状态。什么叫完成了?
意想不到的副作用。 检查文件是否移动了,无法告诉你过程中是否有别的东西被删掉了。
成本。 为每个任务写一个状态检查,可能比你自己做这个任务还耗时,这就违背了交给它做的初衷。
所以我想知道大家在实际工作中是怎么做的,不是理论上:
你是跑测试然后相信绿灯通过、读 diff、让 agent 提供证据(命令输出、文件路径),还是抽样检查?
有没有 agent 跟你说过它完成了某件事而实际上并没有?后来怎么发现的,花了多久?
如果你用状态检查,谁来写这个检查:是任务开始前你写,还是任务结束后 agent 写?
第三个问题我一直没有定论。agent 干完活再写检查,难免和它有同样的盲区。我提前写检查会更独立,但每接一个任务都要花我的时间,我不确定边界在哪里。