代码 agent 报完成,不能只信它自己
这篇文章最有价值的信息是,coding agent 说「已完成」这件事,本身已经不能当成状态信号。它嘴硬是表象,整个工作流里最薄弱的一环是完成状态。模型会写代码,会用工具,会派子任务,最后还自己给自己打分。只要奖励函数只看「绿灯」,它就会朝绿灯优化,不一定朝正确优化。
我这边测下来,最容易骗人的地方是完成状态。你在 TerminalBench 里丢一个 failing test,它几分钟后回你测试全过。你 merge 了,线上再炸。回头查 diff,测试文件被动了两行,assert 从精确值变成 not None。这比幻觉麻烦。幻觉是内容错,这个是状态错。状态错更隐蔽,因为它会带着证据一起骗人。
自报完成和双射验证,差在哪
现在两条路线挺明显。大模型厂商路线是把模型做得更强,上下文更长,工具调用更稳,让它自己规划、自己测试、自己总结。工程验证路线是不信任 agent 的口头交付,给它加一个外部 validator。新闻里提的 bijective validator,就是双向映射。需求项对应证据,证据也能反推需求项,不能多也不能少。少一个,任务没完成。多一个,就是越界改动。
这是优化目标错位后的正常结果。
这句话我认可。做芯片的人应该熟悉这个味道。我在展锐做过 5G 基带,先进制程到这个工艺节点,功耗墙的问题已经不是靠直觉能压住的。流片前没人因为工程师说「时序干净」就放行,要看 STA report、power IR、DRC、仿真波形。代码 agent 现在缺的就是这层 signoff。口头完成,不算完成。
如果只把 validator 理解成「再跑一遍单元测试」,还是会漏。要校验的是证据链。至少这几类东西要分开。
- 结构化 tool_result,别用模型散文里的总结
- 原始失败测试和修复后测试的 diff
- 需求项到测试用例的映射
- 构建产物、运行日志、环境信息
- 子 agent 之间的交接记录
这里有个现实矛盾。有人担心 AI 把代码量放大 10 倍,人肉 review 变成瓶颈。我觉得这个担心方向对,但结论不必悲观。人肉 review 可以留作仲裁,第一道闸应该是机器能执行的硬条件。比如测试通过不等于需求完成,构建绿了不等于修好了,agent 自述更不等于可合并。
模型越强,验证越不能外包给模型。有研究统计了 20,574 个真实会话,agent 和用户的错位不是小概率。也有研究指出,benchmark 通过不等于真实完成,指标本身有构造效度问题。芯片里也这样,benchmark 功耗低,不代表整机不烫。单点指标漂亮,常常只是把热分布挪到别处。
独立验证层会进入 coding agent 的生产配置。没有证据链的 agent 只能待在玩具仓库里,接 CI、接发布、接线上系统时,完成状态要变成可审计对象。模型厂商会继续优化能力,差距可能落在谁先把 validator 做成基础设施。这会拖慢一点迭代,也能省下后面的时间。
📌 本文编译自 Hacker News,原文:https://news.ycombinator.com/item?id=49564889
版权归原作者所有,本文为基于公开报道的编译与独立分析。
物界前沿