我们在108个由智能体编写的拉取请求上启用了自动合并。只有一个合并了。
摘要
一项使用AI智能体在108个拉取请求上启用自动合并的实验显示,由于CI运行器饱和,只有一个合并成功,这表明智能体的吞吐量在未考虑合并容量的情况下无法转化为实际代码落地。
一天晚上,一个控制会话在十个仓库的大约108个拉取请求上启用了自动合并,然后静默了。到早上,只有一个合并成功。智能体们已经起草了更改,在本地检查过,推送了它们,并启用了自动合并。根据它们自己的统计,它们完成了一个富有成效的班次。它们不理解的是从完成差异到合并提交之间的机制。大多数拉取请求处于失败状态。失败来自一个被突发流量饱和的共享CI运行器池。在我们最繁忙的仓库中,一次推送可以创建数十个小检查作业,每个作业占用一个运行器并克隆仓库以执行几秒钟的工作。足够多的智能体紧密推送创建了池无法消化的积压。更奇怪的部分后来才出现。一旦运行器恢复,红色的拉取请求仍然是红色的。自动合并只是一个条件。它不会重试失败的检查。一个红色的拉取请求是惰性的,直到有人重新运行失败的作业或创建新提交。然后我们的自动化系统花了大约五个小时仔细监控一个无法移动的队列。一旦开始主动分类,四个更改在大约四十分钟内合并了。它们的代码没有改变。过时的CI失败只是被重新运行。教训是编码智能体使创作成本大大降低,但没有增加落地能力。我们测量的是创建的工作量,而不是被共享分支接受的更改。打开的拉取请求看起来很好。合并的拉取请求揭示了真相。这改变了我对智能体吞吐量的思考方式。系统不能只针对完成的任务、产生的差异或打开的拉取请求进行优化。它需要理解运行器容量、必要检查成本、过时失败、依赖链、合并队列和每小时实际合并数。否则,智能体产生的库存速度超过了落地层的吸收能力。你的智能体不发布代码。你的CI和合并控制系统才发布代码。还有其他人测量过他们的仓库每小时实际能落地多少由智能体生成的更改,而不是智能体能写多少吗?
相似文章
我两个代理的 git 工作树的干净合并,但它自身的测试失败了
作者描述了一个实验,其中合并两个 AI 代理的 git 工作树导致了测试失败,尽管合并是干净的,突显了在没有相互意识的情况下并行代理开发的挑战。
AI软件工厂:将工单转化为拉取请求的智能体,以及为何没有供应商会公布首次合并成功率
本文探讨了AI软件工厂的兴起——这类系统中编码智能体自主将工单转化为拉取请求——并指出供应商大肆宣传与缺乏公开验证其主张的基准之间的差距。
AI编程代理是否应被允许合并自己的PR?
文章探讨了关于AI编程代理是否应拥有自主合并Pull Request权限的争论,重点区分了软件工作流中的代码生成与部署决策。
@cursor_ai: 12月,我们合并的PR中有十分之一来自云端代理。如今,这一比例达到56%,因为我们使用云端代理完成长…
Cursor报告称,目前56%的合并PR来自云端代理,高于12月的10%,凸显了自主代理在工程任务中日益重要的作用。
Anthropic 表示,编写代码已不再是瓶颈。其单体代码仓库在一天内的合并次数超过了 30,000 次。
Anthropic 声称,在其单体代码仓库一天内完成超过 30,000 次合并后,编码已不再是瓶颈,并且它已从 Git 迁移到一个由 Claude 构建、名为 Scion 的版本控制系统。这篇帖子引发了讨论:当 AI 自主完成编码时,工程工作的重心会转向何处。