Jules:AI 编码 Agent 的度量框架
介绍 Jules 框架用于测量编码 Agent 的实际产出价值。内容片段不完整,无法充分评估其实用程度。
介绍 Jules 框架用于测量编码 Agent 的实际产出价值。内容片段不完整,无法充分评估其实用程度。
AI 编码 Agent 正在迅速转型:它们不再只是收到 prompt 后完成任务的被动助手,而是成为主动引擎,能够持续吸收上下文、发现新出现的风险,并在开发者开口询问之前提供诊断性洞察。这一演进的核心,是从定义明确的任务转向目标。面对目标,Agent 需要探索代码库、发现相关内容,并给出诊断性观察,帮助开发者朝着更高层次的目标前进。
SWE-Bench 等公开 benchmark 测试的是 Agent 完成任务的能力,例如修复一个范围明确的 bug,但目前还没有针对目标的 benchmark。在我们最新的论文《Agentic Coding Needs Proactivity, Not Just Autonomy》中,我们提出,应当根据主动型 Agent 的洞察策略(insight policy)对其进行评估——也就是它判断什么重要、有哪些证据支持,以及应该打断开发者还是保持沉默的能力。
根据我们在 Google Labs 开展持续型 AI 系统研究的经验,我们发现,要构建一套能够评估主动型 Agent 洞察策略的评测体系,就必须先建立“ground truth”。构建这种“ground truth”的一种方法,是沿着我们称为时间邻近性(temporal proximity)和语义相似性(semantic similarity)的两项启发式原则,分析团队真实的 bug 修复历史。
我们的假设很简单:当工程师在短时间内提交并修复多个相互关联的 bug 时,这些 bug 往往是同一项底层工程工作的不同表现。围绕“sandbox timeout errors”“broker config failures”和“network isolation flaky tests”形成的一组 bug,全都指向一个共同的愿景目标,例如“增强 sandbox 执行的可靠性”。单独来看,每个 bug 都过于具体,只能算作任务,无法作为目标;但把它们放在一起,就能揭示出更高层次的目标。
为了构建初步 benchmark 并验证我们的假设,我们使用了 Google 内部代码库中的 705 个 bug(涉及 1,178 个 CL),并执行了以下步骤:
对历史上相互关联的 bug 进行聚类,从而揭示开发者当时实际追求的更高层次“愿景目标”。
将每个聚类中的单个 bug 设为我们的“ground truth”目标,并把代码库精确还原到修复前的状态,让 Agent 从人类工程师当时的起点开始。
允许 Agent 最多用三个轮次调查代码库,这就是它的“探索预算”(exploration budget,简称 N),之后再生成最终洞察。
使用一个 LLM,将 Agent 预测的洞察与我们的“ground truth”目标进行对比,并按 1 分(不相关)到 5 分(完全匹配)进行评判。
通过跟踪 Agent 的平均最高得分,以及它成功产生高度准确匹配的频率(Hit@K)来衡量效果。
我们的初步测试结果令人振奋,主要有两个原因。
核心诊断逻辑确实有效:只进行一轮探索时,Agent 就能稳定识别出高度相关的洞察,平均得分达到 4.5 分(满分 5 分)。对于较为直接的工程问题,它能够成功捕捉主要信号。
探索预算非常重要:复杂且涉及多个方面的问题自然更难解决,但为 Agent 提供更多调查资源确实会带来回报。当我们将探索预算从两轮增加到三轮后,Agent 的 Hit@5 准确率——即正确的诊断性洞察出现在前 5 条建议中的比率——从 33% 显著回升至 57%。这证明,额外的探索轮次能够直接帮助 Agent 发现最初遗漏的次要信号。
这些只是基于初始样本得出的初步结果,我们正在从多个方向积极扩大覆盖范围。首先,我们正将这套评测扩展到公开的 GitHub 数据,包括 issues 及解决这些问题的 PR,使这套方法能够广泛应用于更广大的 AI 社区。除此之外,我们也在探索如何引入比代码库更丰富的上下文信息流,例如 issue tracker、对话和设计文档。
如果你希望进一步了解 Google Labs 对编程未来的研究,可以阅读完整论文,并通过 labs.google/code 继续关注我们的工作。