HyperAIHyperAI

Command Palette

Search for a command to run...

2 天前
LLM
Agent

从以人为中心到智能体代码审查:不同代际生成式AI技术对审查质量的影响

Suzhen Zhong Shayan Noei Bram Adams Ying Zou

摘要

代码审查有助于在代码集成前维护软件质量,但也给人类审查者带来了沉重的工作负担。随着生成式人工智能成为软件开发的一部分,代码审查正从主要依赖人工的审查流程转向由AI支持的审查流程,其中大语言模型(LLM)审查者和AI智能体审查者与人类审查者共同参与。然而,我们仍缺乏关于这一转变如何影响审查效率和审查质量的实证证据。本文研究了来自207个GitHub项目的102万个已审查拉取请求,这些项目经历了三个代码审查时代:以人为中心的审查、LLM辅助审查和智能体代码审查。我们识别出三种AI审查者采纳实践:渐进式AI采纳、快速LLM采纳和快速AI智能体采纳。我们进一步将拉取请求审查讨论建模为审查者交互序列,以刻画人类、LLM和AI智能体审查者在审查过程中的协作方式。结果表明,涉及智能体的协作模式,尤其是由AI智能体发起或涉及多个AI智能体的审查,在渐进式AI采纳和快速AI智能体采纳下与更快的审查决策相关。然而,这些效率提升并未转化为更好的审查质量。我们还发现,审查活动和拉取请求类型在各个时代始终重要,而一旦LLM和AI智能体审查者参与,人机协作模式便成为审查效率的最强解释因素。这些发现为设计既能提高效率又不削弱审查质量的AI支持代码审查流程提供了实证指导。

一句话总结

通过研究来自207个GitHub项目的102万条拉取请求,这些项目从以人为中心转向LLM辅助和agentic代码审查,作者识别出三种AI采用实践,并将拉取请求讨论建模为审查者交互序列,揭示出在Gradual AI Adoption和Rapid AI Agent Adoption下,涉及agent的协作模式加速了审查决策,但效率提升并未改善审查质量,且人类-AI协作成为解释效率的最强因素。

核心贡献

  • 一种建模方法将拉取请求审查讨论表示为审查者交互序列,从而能够刻画人类、LLM和AI agent审查者之间的协作模式。
  • 基于207个GitHub项目的102万条拉取请求,识别出三种AI审查者采用实践:Gradual AI Adoption、Rapid LLM Adoption和Rapid AI Agent Adoption。涉及agent的模式,包括agent发起和多agent审查,在Gradual AI Adoption和Rapid AI Agent Adoption下与更快的审查决策相关,但未能改善审查质量;而Rapid LLM Adoption则与更高的review smell出现率相关,且无效率提升。
  • 一旦AI审查者参与,人类-AI协作模式成为审查效率的最强解释因素,超越了拉取请求类型和审查活动等传统因素。

引言

生成式AI如今推动了代码产出的巨大增长,使得代码审查与集成成为下游瓶颈。随着团队从纯人工审查转向LLM辅助和agentic审查,理解这一转变如何影响审查实践和质量仍然是一个开放挑战。先前的研究侧重于以人为中心的流程或孤立的LLM工具,几乎没有提供关于AI审查者在多个时代参与时审查质量如何演变的证据。作者通过分析来自207个开源项目的102万条拉取请求来解决这一空白,这些项目从Pre-LLM时代过渡到LLM和Agent时代。他们描述了三种AI审查者采用实践,考察了人类、LLM和AI agent审查者如何协作,并建模了协作模式和传统因素对审查效率与代码review smells的联合影响。

数据集

该研究所依赖的数据集由来自207个活跃GitHub项目的102万条已审查拉取请求组成,旨在追踪三个时代中的代码审查:pre-LLM、LLM辅助和AI agent审查。作者通过多阶段选择、标注和分类流水线构建了该数据集。

构成与来源

  • 通过GitHub高级搜索识别出2,490个候选项目,筛选条件为2022年5月至2026年2月期间具有持续审查活动。
  • 最终保留了207个项目,这些项目在三个审查时代(pre-LLM、LLM、agent)中每个时代均拥有超过400条已审查拉取请求,确保有足够的数据用于项目内比较。
  • 总拉取请求数:102万条,每条包含审查对话、审查者身份、时间戳、合并/拒绝决策以及审查评论。

各子集及筛选的关键细节

  • 项目入选标准
    • 至少100颗星(社区采纳和活跃维护)。
    • 创建于2022年5月之前(至少拥有六个月的ChatGPT出现前历史)。
    • 从2022年5月至2026年2月,每月至少有一条已审查拉取请求(持续审查活动)。
  • 审查时代定义
    • 对于每个项目,pre-LLM时代在第一位LLM审查者参与时结束;LLM时代在第一位AI agent审查者参与时结束;agent时代自此开始。
    • 仅保留每个时代审查拉取请求数超过400条的项目,最终得到207个项目。

审查者标注与元数据构建

  • 作者使用GitHub REST API区分人类账户和机器人账户。
  • 通过查阅官方文档,将机器人账户人工分类为:
    • 基于规则的机器人(例如GitHub Actions)
    • 传统机器学习审查者(例如Amazon CodeGuru Reviewer)
    • LLM审查者(例如LlamaPReview)
    • AI agent审查者(例如Claude Code)
  • 对384条agent时代的拉取请求(95%置信度,5%误差幅度)进行人工验证,确认其中360例存在agentic行为(规划、上下文检索、提交);其余24例仍涉及被记录为AI agent的账户。

拉取请求类型分类

  • 每条拉取请求根据Watanabe等人的分类法,使用GPT-4.1-mini对标题和描述进行分析,被分配为11种类型之一(例如,缺陷修复、功能添加)。
  • 对384个样本的人工验证得到Cohen’s κ为0.91,表明几乎完全一致。

论文如何使用数据

  • 数据集未划分为训练/验证/测试集,而是直接用于三个研究问题(RQ),考察:
    • 通过对每个项目的采用序列进行聚类,识别常见的AI审查者采用模式。
    • 审查质量与各时代拉取请求类型分布的变化。
    • 人类-AI协作模式、其效率及其与审查质量的关系。
  • 构建解释模型来评估审查质量、协作模式与传统拉取请求特征之间的关联。

处理与裁剪策略

  • 除项目级别的时代筛选外,未对拉取请求进行任何裁剪或子采样;全部102万条拉取请求均被使用。
  • 唯一的内容处理是使用GPT-4.1-mini对拉取请求类型进行分类,为每条拉取请求增加一个类别标签。

方法

作者利用多阶段分析框架来研究AI审查者在开源软件项目中的采用和影响。整体流水线从项目选择与数据收集开始。从初始的2,490个具有持续审查活动的候选GitHub项目开始,作者将数据集筛选至207个项目,这些项目包含足够多的已审查拉取请求,覆盖pre-LLM、LLM和agent时代。在数据收集阶段,他们收集审查对话,对涉及的审查者进行分类,并识别每个项目的具体审查时代。

经过初步数据筛选后,作者将每个项目的生成式AI采用序列聚类为常见的AI审查者采用实践。为了全面分析其研究问题,他们定义了一组共享的度量指标和解释因素。拉取请求类型使用包含11种代码变更目的的分类法进行分配,通过GPT-4.1-mini分析标题和描述进行分类。审查质量通过两个主要指标评估:review smells的存在和审查效率。审查效率被计算为从拉取请求创建到最终决策的归一化持续时间: Review Efficiency=TdecisionTcreation#Thousand lines of code\text{Review Efficiency} = \frac{T_{\text{decision}} - T_{\text{creation}}}{\# \text{Thousand lines of code}}Review Efficiency=#Thousand lines of codeTdecisionTcreation 其中 TcreationT_{\text{creation}}Tcreation 是拉取请求的创建时间戳,TdecisionT_{\text{decision}}Tdecision 是最终决策的时间戳。此外,作者还建立了涵盖拉取请求特征、审查活动和参与者经验的解释因素,这些因素同样考虑了LLM和AI agent审查者日益出现的情况。

有了这些指标后,框架分支为三个不同的分析方向。首先,为了理解AI采用实践,作者考察了越来越涉及AI审查者的拉取请求类型,并研究了三个时代中审查质量的相应变化。其次,为了探索人类-AI审查协作模式,他们识别出人类、LLM和AI agent审查者之间的常见交互模式,并根据审查效率和质量对这些模式进行比较。最后,为了确定影响审查效率和质量的因素,作者构建了解释模型,评估审查结果、已识别的人类-AI协作模式与传统审查流程因素之间的关系。

实验

评估设置使用2022-2026年的纵向数据,测量了pre-LLM、LLM和agent时代的审查效率与六种review smells。三项实验考察了AI采用实践、人类-AI协作模式及其与质量以及传统审查因素的关联。结果表明,gradual AI adoption和rapid agent adoption提高了审查效率,而rapid LLM adoption增加了review smells;agent发起的模式可能更快,但AI参与始终会提高Review Buddies异味,且传统因素如作者经验仍然重要。

在生成式AI采用之后,传统审查因素如提交数量、内联讨论线程和拉取请求类型仍然是review smells的重要预测因子。在gradual AI adoption和rapid AI agent adoption实践下,agent时代的协作模式与更少的Sleeping Review相关,但也与更多的Review Buddies和更大的changesets相关。在agent时代,涉及agent的审查始终比早期时代涉及更大的代码变更。在Rapid LLM Adoption下,Agent-Init和Agent-ML等agent模式与更高的Sleeping Review概率相关。在gradual和rapid AI adoption实践下,agent时代的涉及agent的协作模式与Large Changeset呈正相关。在Gradual AI Adoption和Rapid AI Agent Adoption下,agent时代的协作模式降低了Sleeping Review的可能性。

在所有采用路径中,与pre-LLM基线相比,LLM和agent时代的审查显示出更高的Review Buddy比例和review smells的增加。效率变化较小,除了gradual AI agent adoption下出现显著下降,并且拉取请求类型的增长发生显著变化,在gradual agent时代,功能开发和重构工作增加,而在rapid LLM adoption下,文档、构建和样式变更增加。每个AI辅助时代的Review Buddy比率都有所上升,其中rapid LLM adoption期间的增幅最大。在gradual AI adoption下,agent时代与显著的效率下降以及功能开发和重构拉取请求的增加相关。

在所有时代和采用实践中,纯人工审查始终获得最高的效率排名和最低的review smell发生率。相比之下,Human-Bot、Human-Bot-ML和LLM-Assist等人类-AI协作模式显示出更高的异味率,其效率排名不一,其中LLM-Assist在Rapid LLM Adoption下排名最低。这些模式还与更高频率的非功能型拉取请求(尤其是杂项和修复)相关。纯人工审查是LLM时代效率最高的模式(在所有采用情境下均为R1),并且在pre-LLM时代从未低于R2,同时保持最低的异味百分比(69–76%)。所有人类-AI协作模式与纯人工审查相比,review smell发生率均升高,其中LLM-Assist在Rapid LLM Adoption下达到87%,Human-Bot-ML在Gradual AI Adoption下达到88%。

在agent时代,涉及AI agent的协作模式既带来改进也有弊端:虽然某些模式在gradual和rapid agent adoption下减少了Sleeping Review,但它们始终与更多的Review Buddies和更大的changesets相关。即便在生成式AI采用后,传统审查因素仍然显著,并且在LLM时代,agent模式急剧增加了Sleeping Review的可能性。在Gradual AI Adoption和Rapid AI Agent Adoption下,agent时代的协作模式减少了Sleeping Review,但也与更多Review Buddies和更大的changesets相关。在LLM时代,Agent-Init和Agent-ML与更高的Sleeping Review概率相关,影响分数分别为+42和+94。

该研究考察了在不同AI采用实践下,pre-LLM、LLM和agent时代的代码审查结果,重点关注review smells、效率和协作模式。纯人工审查在效率和异味发生率方面始终优于人类-AI协作,而agent时代的模式减少了Sleeping Review,但增加了Review Buddies和Large Changeset。传统审查因素仍然重要,AI辅助的影响取决于采用策略和具体的协作类型。


用 AI 构建 AI

从创意到上线——通过免费 AI 协同编码、开箱即用的环境和最优惠的 GPU 价格,加速您的 AI 开发。

AI 协同编码
开箱即用的 GPU
最优定价

HyperAI Newsletters

订阅我们的最新资讯
我们会在北京时间 每周一的上午九点 向您的邮箱投递本周内的最新更新
邮件发送服务由 MailChimp 提供