来源笔记

Why Are Agentic Pull Requests Merged or Rejected? An Empirical Study

Agentic Pull RequestsCode ReviewAI Coding AgentsHuman AI CollaborationSoftware Engineering Metrics

本文发现,合并和拒绝标签会误判 AI 编码代理,因为 PR 决策往往取决于审查评论、CI 结果、提交记录和仓库流程。作者分析了 11,048 个已关闭的 agentic pull request,并手工编码了 717 个案例,把代理失败和流程影响、人为帮助分开。

  • Agentic PR 常按合并或拒绝状态来评估,但这个结果会把有缺陷的代码、重复工作、被后续改动取代的变更、无声关闭和项目规则混在一起。
  • 这很重要,因为只看合并率会夸大被拒 PR 中的代理错误,也会夸大已合并 PR 中的自治程度。
  • 更好的评估需要查看审查记录:评论、CI 状态、提交历史、关闭上下文和审查者修改。
  • 研究从 AIDev 数据集出发,保留至少有 500 个 stars 的仓库中的已关闭 Agentic-PR,得到 11,048 个 PR。
  • 去掉只有机器人参与审查的案例后,精炼数据集包含 9,799 个有人类审查的 PR:6,179 个已合并,3,620 个被拒绝。
  • 作者手工检查了一个分层样本,共 717 个 PR:353 个被拒绝,364 个已合并,并在不同代理和仓库之间保持平衡。
  • 被拒绝的 PR 编码为代理失败、非代理失败或未知。已合并的 PR 编码为反馈循环、人类介入、无反馈循环或未知。
  • 每个 PR 由两名标注者编码。报告的一致性为:拒绝原因的 Cohen’s κ≈0.90,已合并 PR 交互模式的 κ=1.0。
  • 在 353 个被拒绝的 PR 中,只有 126 个是明确的代理失败,占 35.7%。非代理原因有 110 个,占 31.2%;未知原因有 117 个,占 33.1%。
  • Devin 的被拒 PR 中,37/153 属于代理失败,占 24.2%;OpenAI Codex 为 54/113,占 47.8%。论文把这解释为:如果没有审查上下文,就不能直接比较不同代理的拒绝标签。
  • 在 364 个已合并 PR 中,288 个,占 79.1%,没有观察到反馈循环或审查者应用的提交。
  • 56/364 个已合并 PR 出现了人类介入,占 15.4%,其中 28 个是反馈循环,占 7.7%;28 个是审查者应用的提交,占 7.7%。
  • 在带有反馈循环或人类介入的 56 个已合并 PR 中,Copilot 和 Devin 占了 54 个。Copilot 有 29/49 个这类已合并 PR,占 59.2%;Devin 有 25/107,占 23.4%。
  • OpenAI Codex 在样本中只有 1/167 个已合并 PR 出现人类介入,占 0.6%,没有反馈循环案例;Cursor 有 1/33 个反馈循环案例,占 3.0%。