← 最新论文
💻 computer science

Understanding Dominant Themes in Reviewing Agentic AI-authored Code

本文对智能体生成的拉取请求(pull requests)中的 19,450 条代码审查评论进行了大规模实证研究,通过由大语言模型(LLMs)验证的 12 个主题分类法揭示了,尽管 AI 智能体加速了代码生成,但人类审查者主要关注文档、重构和风格问题,而非功能正确性。

原作者: Md. Asif Haider, Thomas Zimmermann

发布于 2026-01-28
📖 1 分钟阅读☕ 轻松阅读

原作者: Md. Asif Haider, Thomas Zimmermann

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下一种新型的学徒程序员。他们不是人类,而是 AI 智能体(类似于数字机器人),能够自主编写整块的软件代码。他们速度极快、不知疲倦且渴望提供帮助。但就像任何新员工一样,他们需要一位老板在他们的工作投入使用前进行检查。在软件领域,这种“老板检查”被称为 代码审查(Code Review)

这篇论文就像是一场大规模的调查,研究当 AI 学徒提交他们的工作进行审查时会发生什么。研究人员想要知道:人类审查员到底在抱怨什么?我们能否使用另一种 AI 来自动将这些抱怨分类?

以下是他们的研究发现,使用了日常类比进行说明:

1. 背景设定:堆积如山的数字作业

研究人员查看了一大堆由来自 GitHub 真实项目的 AI 智能体提交的“作业”。

  • 规模: 他们分析了来自 3,000 多个 不同项目的近 20,000 条 人类审查员评论。
  • 问题: 人类正感到不堪重负。因为 AI 写代码的速度非常快,工作量巨大,许多 AI 提交的代码要么被拒绝,要么在“审查队列”中滞留过久。

2. 工具:教机器人如何批改作业

首先,研究人员需要一种方法来理解人类审查员究竟在谈论什么。他们无法手动阅读每一条评论。

  • 分类法(评分标准): 他们使用先进的 AI 工具来阅读所有评论,并将它们分为 12 个不同的类别。这就像是为老师创建一个评分标准。与其仅仅说“做得好”或“做得差”,他们创建了具体的“桶”,例如:

    • 安全性 (Security): “这段代码对黑客安全吗?”
    • 测试 (Testing): “你是否写了测试来证明它是有效的?”
    • 风格 (Style): “你的格式看起来很乱。”
    • 文档 (Docs): “你忘了为下一个人写说明。”
    • 重构 (Refactor): “你完成了任务,但做得比较笨拙;让我们把它清理一下。”
  • 测试: 然后,他们要求一个开源 AI(一个“学生”AI)阅读这些评论并将它们归入这 12 个桶中。

  • 结果: 这个学生 AI 的表现出奇地好!它与人类专家的匹配度达到了约 78%。它足以被信任为一个可靠的助手,负责处理海量的反馈分类工作。

3. 发现:审查员到底在关心什么?

一旦数据分类完成,他们就开始观察人类审查员最关注哪些方面。

  • 三大核心: 最常见的投诉是关于 逻辑/功能 (Logic/Features)(它是否完成了应有的功能?)、重构 (Refactoring)(清理混乱的代码)以及 文档 (Documentation)(编写指南)。
  • “润色”与“核心”: 有趣的是,只要核心逻辑正常,审查员通常会接受带有“润色”问题(如格式糟糕或缺少注释)的代码。他们愿意稍后修复这些问题。
  • “一票否决”项: 然而,如果代码在 测试 (Testing)(没有证明其有效性的证据)、安全性 (Security)(潜在漏洞)或 构建/配置 (Build/Configuration)(甚至无法运行)方面失败,该项目被拒绝的可能性就会大大增加。

4. “通过”与“失败”

研究人员对比了被 接受 (Merged) 与被 拒绝 (Rejected) 的项目的审查情况。

  • “通过”模式: 成功的项目通常会有关于文档和风格的评论。这表明,如果核心逻辑稳固,审查员乐于花时间去修复那些“漂亮程度”的问题。
  • “失败”模式: 被拒绝的项目则会被大量标记为 安全风险 (Security risks)缺失测试 (Missing Tests)构建错误 (Build errors)
    • 类比: 想象一位厨师提交了一份新食谱。如果食谱缺少配料表(文档)或者字体很难看(风格),主厨可能会说:“把这些改好,我们会采用它。”但如果食谱里写着“加入一杯毒药”(安全性)或者“烤箱会爆炸”(构建错误),主厨会直接把它扔进垃圾桶。

5. 总结

论文得出结论,虽然 AI 智能体在快速产出代码方面表现出色,但它们仍然会犯一些特定的错误,需要人类来捕捉。

  • 瓶颈: 审查过程目前是瓶颈。AI 写得太多,而人类检查不过来。
  • 解决方案: 研究表明,AI 智能体在向人类寻求帮助之前,需要提高 自我检查 的能力。它们需要在提交之前运行自己的“测试”并检查自己的“安全性”。
  • 未来: 通过了解 AI 代码为何被拒绝(主要是安全性与测试方面的差距),我们可以训练 AI 智能体变得更聪明,从而减少“噪音”,使它们成为人类开发者的更好队友。

简而言之: AI 是一个快速但有时粗心的学徒。人类是试图修复其错误的疲惫管理者。这项研究弄清楚了管理者们到底在为什么事发火,并证明了我们可以利用 AI 来对这些抱怨进行分类,以便让管理者能够专注于更重大的问题。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →