What Process Evaluation of Coding Agents Actually Measures: Action, Task, and Step Are Three Different Levels
本文引入了一个区分动作(action)、任务(task)和步骤(step)层级的测量框架,旨在证明当前对编码智能体(coding agents)的过程评估往往将语义相关性与因果贡献混为一谈,从而揭示智能体的行为是由执行溯源(execution provenance)和任务级不确定性驱动,而非简单的代码转换所驱动。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
在软件开发领域,一种新型的工作者已经出现:编码智能体(coding agent)。在大型语言模型的驱动下,这些程序能够阅读问题描述,穿梭于复杂的代码库,并编写必要的修复程序来解决问题。多年来,业界衡量这些智能体的标准仅仅是它们在一天结束时是成功还是失败。但随着这些数字工作者的日益普及,开发者们意识到,最终结果是不够的。他们需要了解智能体是如何到达那里的。他们想要理解哪些具体的动作有助于完成任务,哪些动作导致了失败,以及这个过程是逻辑严密的,还是仅仅靠运气猜对的。这种需求催生了一个专注于“过程评估”(process evaluation)的研究领域,试图通过对智能体旅程中的每一步进行评分,而非仅仅看它的终点。
该领域的核心挑战在于,人们一直将三个截然不同的问题混为一谈。第一个问题是:基于当前情况,智能体下一步可能做什么。第二个问题是:随着智能体的执行,整个任务仍存在多少不确定性。第三个,也是最难的一个问题是:某一个特定的动作是否真的导致了最终结果的变化。长期以来,研究人员和工具一直将这些概念混淆在一起,认为设计用于预测下一步动作的工具也可以解释为什么某个步骤是关键性的。阿里巴巴和南京大学的一组研究人员决定理清这些线索。他们建立了一个严谨的框架来分别衡量这三个层级,其方法包括观察智能体的工作过程,将其停止,然后从完全相同的起点重新开始,以观察会发生什么。
为了实现这一点,研究人员专注于一种特定类型的任务:文件定位(file localization)。想象一下,一个智能体被给定了一份错误报告和一个软件项目的快照。它的任务是找到需要修改以修复该错误的精确文件。这种设定非常适合研究,因为目标清晰且可验证。研究人员记录了智能体在真实世界软件仓库中工作的 499 个片段。随后,他们将这些记录的会话回溯到各个时间点。从这些点开始,他们让智能体再次运行,有时让它自主选择下一步,有时则强制它采取不同的路径,以观察最终结果是否会改变。这使他们能够将单个步骤的影响从整个旅程的噪声中分离出来。
他们的调查表明,智能体在代码中的移动方式并非大多数人所预期的那样。当试图预测智能体下一步会做什么时,最强大的信号并不是代码本身的结构(例如文件如何在依赖图中相互链接)。相反,智能体几乎完全受其近期历史驱动。它观察自己在之前工具输出中所看到的路径,并利用这种即时上下文来决定下一步去向何处。代码结构对于即时下一步动作的重要性,不及智能体刚刚留下的“面包屑轨迹”。这一发现表明,智能体是在对它刚刚观察到的内容做出反应,而不是在遵循一份预先规划好的仓库地图。
研究还揭示了这些任务中的不确定性究竟存在于何处。许多人认为失败的风险来自于一个错误的步骤,比如选错了文件。然而,研究人员发现,不确定性是整个任务的属性,而非单个步骤的属性。有些任务从一开始就具有内在的难度或歧义性,而另一些则非常简单。智能体成功与失败之间的差异是由它所解决的具体问题的性质决定的,而不是由它沿途采取的具体动作序列决定的。这意味着,试图精准定位一个“致命错误”步骤往往是徒劳的,因为结果很可能是由任务本身的难度决定的。
或许最令人震惊的发现涉及我们目前如何评估这些智能体。许多系统使用一个“评判者”(通常是另一个大型语言模型)来审查智能体工作的整个历史,并判定哪一步应对失败负责。研究人员通过隐藏或展示智能体历史的不同部分,对这些评判者进行了测试。他们发现,当评判者能够看到旅程的后续步骤时,它会系统性地将责任推向过程的末尾。即便后续步骤与实际问题的起因毫无关系,这种情况依然发生。评判者并非在识别真正的起因,它只是在捕捉那些在事后看来显得相关的最新证据。这揭示了当前评估方法中的一种系统性偏差:用于评分的工具实际上是在测量语义相关性(即事后看来看起来重要的东西),而非经过证实的因果贡献。
研究人员总结道,过程评估不是一个单一的问题,而是一系列不同的挑战。预测下一步动作是一个由近期上下文驱动的可解问题;理解任务难度则是对问题本身进行分析的问题;而确定单个步骤的因果影响则极其困难,且用目前的工具往往无法衡量。这项研究表明,我们必须停止将这些不同层级视为同一事物。如果我们想要改进编码智能体,我们需要为正确的问题使用正确的工具,并意识到:一个能预测下一步动作的信号,并不等同于一个能证明某一步骤导致了成功或失败的信号。通过分离这些层级,我们最终才能理解我们的评估工具到底是在告诉我们真相,还是仅仅在进行猜测。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。