论文
了解代理拉取请求生成的修复被拒绝 - 来自 AIDev 数据集的见解
Understanding the Rejection of Fixes Generated by Agentic Pull Requests -- Insights from the AIDev Dataset
摘要
AI 编码智能体 越来越多地用于生成拉取请求 (PR),以建议软件项目中的代码修复。从对 AIDev 数据集的第一次探索中,我们发现 Copilot、Devin、Cursor 和 Claude 代理提出的修复方案中有 46.41% 被拒绝。这代表着大量的资源浪费,需要人工审查、验证以及对仅仅被丢弃的修复运行测试和验证。我们本文的目标是了解人工智能代理的故障模式,这种理解对于更好地将人工智能代理整合为高效的队友至关重要。在本文中,我们对由前面提到的代理创建或共同撰写的 306 个非合并拉取请求的代表性样本进行了定性研究,然后对拒绝的原因进行了定量分析。我们的定性研究结果确定了拒绝 AI 代理修复的 14 个原因,分为四个高级类别。我们观察到,开发人员可能会由于实施不正确(例如,不完整、错误的方法)的修复、未通过持续集成(CI)管道和失败测试的修复、代理无法执行实施的修复(例如,未生成代码、会话丢失)以及优先级较低的修复而拒绝修复。我们的结果揭示了在以下级别更好地指导模型的重要性:(1) 提出有关解决问题所遵循的方法的提示,(2) 概述有关不应采取的方法的约束或限制,以及 (3) 指导代理如何通过 CI 管道验证实现,而不引入重大更改。我们的结果表明需要对任务进行良好的优先级排序,以便生成的修复不会导致浪费人工审核工作或浪费代理资源(例如词元、计算或允许的请求数量)。