✨ 要点🔬 技术摘要
将软件开发想象成一个繁忙、庞大的建筑工地。通常,当一名工人(人类开发者)完成了一个新房间的建造或修复了一个漏水点时,他们会向现场经理提交一份“变更请求”(Pull Request)。经理会查看后说:“太棒了,让我们开工吧,”或者“不行,这行不通。”
最近,一种新型工人来到了现场:AI Agent(人工智能智能体) 。这些机器人可以进行规划、构建并提交自己的变更请求,而不需要人类在旁边手把手地指导。本论文研究了当这些 AI 工人提交工作时,与人类工人相比会发生什么。
以下是该研究的详细拆解,使用了简单的类比:
1. 核心问题:“沉默的拒绝”
研究人员调查了来自五种不同 AI 机器人(如 Devin、Claude Code 和 GitHub Copilot)的 654 份被拒绝的变更请求 ,并将它们与人类提交的请求进行了对比。
最令人震惊的发现是?每三个拒绝案例中就有两个是“沉默”的。
类比: 想象你向一场比赛提交了一幅画作,结果它被直接扔进了垃圾桶。当你问“为什么?”时,评委只是耸了耸肩,转身走开了。
现实情况: 67.9% 被拒绝的 AI 请求没有任何来自审核者的解释。请求被直接关闭了。这使得研究人员很难知道 AI 为什么失败,因为“评委”并没有写下原因。
2. “仅限 AI”的错误
当研究人员确实 找到了拒绝的原因时,他们发现 AI 机器人犯了一些人类几乎不会犯的错误。他们发现了七种特定的拒绝原因 ,这些原因只出现在 AI 身上:
“过大的”盒子: 人类有时也会提交大型项目,但 AI 机器人倾向于一次性提交极其庞大 、令人难以应付的变更。这就像是一个 AI 试图在一天之内盖起一整座摩天大楼。经理们拒绝这些请求是因为它们规模太大,无法进行妥善审查。
“不信任”徽章: 一些经理仅仅因为代码是由机器人制作的就不信任它。他们仅仅因为它是 AI 生成的就拒绝了它,担心它可能不可靠或存在“幻觉”(凭空捏造)。
“废料”标签: 在一个案例中,项目所有者拒绝了一个 AI 请求,并将其标记为“SLOP”(一个形容低质量、大规模生产内容的俚语),本质上是在说:“这是机器生成的垃圾。”
“实验”失败: 有些 AI 请求提交仅仅是为了测试机器人是否能 做到某件事,而不是因为真的有人需要这段代码。这些请求被拒绝是因为它们并非为了实际用途而设计。
3. “机器人特有的”怪癖
不同的 AI 机器人有不同的个性与设置,从而导致了独特的拒绝模式:
“Devin 效应”: 其中一个名为 Devin 的特定机器人有一个设置,如果它的请求闲置时间过长,它会自动关闭自己的请求。研究发现,许多 Devin 的拒绝并不是因为代码不好,而是因为机器人自己在 7 天沉默后说:“我腻了,我要关掉这个。”
“上下文”陷阱: 一些 AI 机器人被拒绝是因为它们无法看到完成工作所需的“私有”文件或数据。这就像一个机器人试图修理一把锁,却被锁在了存放钥匙的房间之外。
4. 解决方案:“垃圾过滤器”
由于如此多的拒绝都缺乏注释(即“沉默的拒绝”问题),研究人员意识到他们需要一种方法来清理数据,以便进行研究。他们创建了一个简单的过滤器 (一套规则),用来猜测哪些拒绝是真正的“沉默”拒绝,哪些可能隐藏着线索。
过滤器规则: 他们寻找符合以下特征的请求:
由提交者本人关闭(自我关闭)。
关闭速度很快(例如,在 7 天内)。
关闭时没有任何人留下评论。
结果: 通过使用这些规则,他们可以过滤掉“噪音”(那些沉默的、无助的拒绝),并将精力集中在那些经理确实解释了“为什么”说“不”的案例上。这有助于未来的研究人员获得更清晰的图景,了解到底哪里出了问题。
总结
论文得出结论:虽然 AI Agent 构建代码的速度比以往任何时候都快,但它们被拒绝的频率比人类更高。这不仅仅是因为它们的代码有 Bug,更是因为它们:
提交的东西过于庞大或复杂。
触发了人类经理的不信任感。
拥有人类所没有的独特“机器人行为”(如自动关闭)。
经常在没有人解释原因的情况下被拒绝,导致难以从错误中学习。
这项研究提供了一个“过滤器”,帮助清理这些数据,以便我们更好地理解如何让这些 AI 工人变得更加可靠。
技术摘要:为什么 Agentic-PR 会被拒绝:编码智能体比较研究
问题陈述
Agentic 编码(定义为由自主智能体进行规划、实现并提交代码变更,且人为干预极少的软件开发工作流)正在导致 GitHub 等平台上的代码贡献量迅速增加。尽管如此,先前的研究表明,由智能体生成的拉取请求(Agentic-PRs)其接受频率低于人类生成的拉取请求(Human-PRs)。
虽然之前的研究分析了单一智能体(具体为 Claude Code)的拒绝原因,但缺乏关于不同不同编码智能体之间拒绝原因差异的比较分析。理解这些差异至关重要,因为不同的智能体通常用于不同的目的,这可能导致独特的、特定于智能体的失败模式,而单智能体研究会忽略这些模式。此外,很大一部分被拒绝的 PR 缺乏明确的评审反馈,这使得分析拒绝原因变得复杂。
研究方法
作者使用 AIDDev 数据集 进行了定性和定量分析,该数据集包含 2025 年 1 月至 8 月期间创建的超过 930,000 个 Agentic-PR。
数据集选择: 本研究重点关注 AIDDev-pop 子集,即包含至少 100 个 GitHub 星标(stars)的仓库。该数据集包括来自五种编码智能体(OpenAI Codex、Devin、GitHub Copilot、Cursor 和 Claude Code)以及人类基准的 PR。
抽样策略: 为了回答研究问题——即拒绝原因如何随智能体而变化,作者将数据分为六组(五种智能体 + 人类)。作者从每组中随机抽取了 109 个被拒绝的 PR ,最终总样本量为 654 个被拒绝的 PR 。
分类框架: 作者采用了 Watanabe 等人 [22] 提出的分类框架,通过检查代码评审评论来识别拒绝模式。
他们复用了 Watanabe 等人定义的现有拒绝类别。
对于现有类别无法涵盖的情况,他们应用开放式编码(open coding)对拒绝评论进行处理,从而归纳性地引入了新类别。
标注过程: 三名标注员独立评审每个 PR。两名标注员独立评审每个 PR 以确保可靠性,分歧通过讨论解决。
启发式算法开发: 为了解决大量 PR 缺乏明确反馈的问题,作者设计并评估了用于过滤“未知(Unknown)”PR(即在没有解释性评论的情况下关闭的 PR)的启发式算法。他们评估了三种启发式算法:(1) 作者自闭(self-closure by the author),(2) 短解决时间(short resolution time),以及 (3) 关闭者未发表评论(absence of comments by the closer)。
核心贡献
基于经验的拒绝模式: 研究识别了七种仅在 Agentic-PR 中出现的拒绝模式,突显了在人类贡献中未见的独特失败模式。
特定于智能体的拒绝特征: 分析刻画了智能体之间的差异,揭示了如 Devin 自动关闭不活跃 PR 等特定行为模式。
数据清洗启发式算法: 作者提出了一套启发式算法,用于过滤无法从评审讨论中确定拒绝原因的 PR。这为未来的大规模研究提供了实用的预处理步骤。
复现包: 提供了一个详细的复现包以支持研究的可复现性。
结果
1. 智能体专属拒绝模式
观察到七个拒绝类别仅 出现在 Agentic-PR 中,从未出现在 Human-PR 中:
对 AI 生成的代码缺乏信心: 基于对 AI 来源代码可靠性的不信任而导致的拒绝。
规模过大: 被认为对于有效评审而言过于复杂或庞大的 PR(Agentic-PR 为 1.5%,而 Human-PR 为 0.0%)。
用于实验的提交: 仅为了测试智能体能力而非为了合并而创建的 PR。
上下文/环境限制: 由于智能体无法访问必要的私有数据或资源而导致的失败。
延迟处理: 变更被推迟以进行未来调查。
用于验证的提交: 仅为了触发自动化 CI 检查而创建的 PR。
增加复杂度: 被认为解决方案比实际需求更复杂的方案。
2. 特定于智能体的模式
研究揭示了与特定智能体相关的不同行为:
Devin: 因“不活跃(作者/社区)”(Are inactive (author/community))而导致的拒绝比例显著更高(32.1%),这与其自动关闭不活跃 PR 的功能一致。
Claude Code: 与项目所有者标记的特定“SLOP”(低价值)相关联。
OpenAI Codex、GitHub Copilot 和 Cursor: 与其他智能体相比,显示出更高的“未知(Unknown)”拒绝频率。
3. “未知”反馈问题
一个关键发现是,样本中 67.9% 的被拒绝 PR 缺乏明确的评审反馈(标记为“未知”)。这种高流行度在定性分析中产生了噪声,并减少了用于比较可识别拒绝原因的有效样本量。
启发式算法表现: 作者评估了用于过滤这些情况的启发式算法。
模式 A (解决时间 ≤7 天 且 自闭)实现了最高的 Macro-F1 (69.0%),建议用于平衡减少“未知”情况与保留足够“非未知”样本之间的关系。
模式 B (解决时间 ≤45 天 且 无评论)实现了最高的 Macro-Precision (73.0%),建议用于保守过滤,以避免丢弃具有信息量的 PR。
重要性与主张
本文声称,拒绝原因在 Human-PR 和 Agentic-PR 之间,以及在不同编码智能体之间存在显著差异。作者断言:
当前的编码智能体引入了特定的失败模式(例如,对 AI 代码的不信任、规模过大的 PR),这些模式不会出现在人类工作流中。
多智能体分析对于揭示这些特定于智能体的模式是必要的,而单智能体研究会遗漏这些模式。
高比例的“未知”拒绝是理解智能体编码失败的主要障碍,所提出的启发式算法为减轻这一问题为未来的研究提供了切实可行的解决方案。
研究结论建议,未来的工作应将这些启发式算法应用于更大的样本,以实现稳健的比较,并调查除了显式评审评论之外可能影响拒绝决策的隐式信号(例如,测试失败、代码变更量)。
每周获取最佳 computer science 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。