AI 生成的代码到底行不行:百万 PR 数据给出的答案

Daksh Gupta · Greptile 联合创始人 · 2026-09-30
听中文精华AI 合成朗读00:00
任何在 AI 编程领域工作的人都知道,新模型发布的那 12 月算是 AI 编程史上的一个分水岭时刻,因为这些产品第一次在编程方式上真正实现了自主。
— Daksh Gupta

关联

让编程智能体端到端地写代码、自己开 pull request(代码合并请求,下称 PR),一天开 100 个——这种玩法在 Twitter 上传得沸沸扬扬,但 Greptile 联合创始人 Daksh 最初是怀疑的:这会不会只是炒作?独立开发者行得通,可那些有真实客户、代码库真正具备商业价值的大公司,也敢这么干吗?带着这个疑问,他深挖了自家数据——Greptile 每月为成千上万家企业客户审查超过 100 万个 PR——得出的结论推翻了他自己的怀疑:AI 写的 PR,质量上和人类写的几乎没有统计差异 。

先得找出哪些 PR 是 AI 写的

第一个意外是:想从数据里认出 AI 生成的 PR,出乎意料地难。直接看 GitHub 的 author 字段,只有不到 1% 的 PR 作者是 Codex、Claude 或 Cursor——这不符合直觉。

于是他叠加了多个信号:PR 描述页脚的「co-authored by Claude / Cursor」标记,以及分支名前缀(智能体通常自己起分支名)。综合下来,任何给定月份里,约四分之一的 PR 完全或大部分由 AI 生成。

回溯过去 12 个月,这个数字涨得飞快:去年年初还不到 1% 。另一个有意思的观察:从曲线上看不出新模型发布的节点,进步是连续的——AI 编程正在以稳定的高速度向整个经济扩散 。

AI 的 PR 到底好不好:三个指标都说「差不多」

「好 PR」怎么定义?他用三个指标分别衡量:

回退率。如果 PR 被回退(revert,撤掉已合并的代码),大概率是出了问题。

结果是:Codex 的 PR 约每 1000 个被回退 1 个,Devin 约 3.5 个,其他智能体约 2.5 个,人类夹在中间——没有大差别。他本怀疑这是因为人类只把简单任务交给 AI,于是又测了 PR 大小与回退率的相关性:结果即便有相关性也极小,这个解释站不住 。

bug 发现数。Greptile 审查时会给每个 PR 打出 P0/P1/P2 级别的 bug 评论,理论上代码越差、发现越多。结果四个被测智能体中有三个,产出的 P0 严重 bug 比人类还少;P1、P2 同理 。

合并前的评审轮数。PR 质量越高,合并前需要的返工轮次越少。Devin 的 PR 平均 2.1 轮,Codex 2.45 轮,人类正好在中间——又一次几乎没有统计差异 。

但失败模式很不一样

数量上打平,质量结构上却有明显差异。他扫描了 Greptile 累计数百万条评审评论(平均每个 PR 约 4 条),统计「SQL 注入」「N+1 查询」等具体错误类型出现的频率(以人类为 1x 基准):各智能体的失败模式差异相当大——比如 Claude 产生 SQL 注入漏洞的概率是人类 1.5 倍,Devin 产生某类安全绕过问题的概率只有人类一半 。结论:端到端编程智能体已经来了,而且能以真正有意义的方式进入企业编程环境——尽管这推翻了他自己最初的怀疑 。

当 PR 多到人工审不过来

数据里还有个惊人分布:Greptile 用户的中位数每月写 50 个 PR(约每个工作日 2 个),第 90 百分位是每月 500 个,P99 达到数千个。头部的人产出 PR 的速度已经和他们想出新点子的速度一样快——而人工代码评审、测试、外包 QA 这套验证体系,根本扩不到同样的吞吐量 。

于是 Greptile 用第一性原理重新思考验证:不谈「自动化 QA / 测试 / 评审」,只回答三个问题——①这个变更是否违反用户契约(即应用对用户承诺的行为)?②它是否增加了未来违反契约的倾向?

③它是否实现了作者描述的意图?做法上,让智能体在沙箱里把代码跑起来:装依赖、启动本地环境、模拟输入、用浏览器智能体四处点击尝试搞坏东西 。目前 Greptile 审查的所有 PR 中,将近五分之一是在没有任何人工评审或人工测试的情况下直接合并的——这是他们最在意、并想在保证质量的护栏内持续推高的数字 。

本集带走

  • 约四分之一的企业 PR 已由 AI 生成:靠 author 字段(不到 1%)+ 「co-authored by」页脚标记 + 分支名前缀三个信号综合判断,12 个月内从不到 1% 涨到约四分之一,且增速未随新模型发布出现跳变。
  • 三项指标都显示 AI PR ≈ 人类 PR:回退率(人类居中)、严重 bug 产出率(4 个智能体中 3 个优于人类)、合并前评审轮数(人类夹在 2.1 与 2.45 轮之间),均无统计显著差异。
  • 但别只看总量,失败模式不同:以人类为 1x 基准,Claude 的 SQL 注入概率约 1.5x,Devin 的某类绕过问题约 0.5x——代码评审工具需要按智能体的错误类型画像来配置检查。
  • 头部工程师的产出已超出人工验证的容量:中位数每月 50 个 PR,P90 是 500 个,P99 数千个;人工评审 + 测试 + 外包 QA 扩不到这个量级。
  • 验证可以归结为三个问题:是否违反用户契约、是否增加未来违约倾向、是否实现作者意图;用沙箱跑代码 + 浏览器智能体实测来回答,Greptile 已有近五分之一的 PR 无人审、无人测直接合并。
全部金句 9 条

任何在 AI 编程领域工作的人都知道,新模型发布的那 12 月算是 AI 编程史上的一个分水岭时刻,因为这些产品第一次在编程方式上真正实现了自主。
And anyone that’s working in AI coding knows that December when the new models came out was sort of this watershed moment in the history of AI coding because these products for the first time were truly autonomous in how they’re programmed.
—— Daksh Gupta · [01:49]

但对我来说,只有大约 1% 的代码是完全由 AI 生成的,这并不符合直觉。
But it wasn’t intuitive to me that only about 1% of all code was fully AI generated.
—— Daksh Gupta · [03:47]

人人都在产出这些端到端由智能体完成的 PR,不是人类加 AI,而纯粹是 AI。
Everyone’s producing these PRs that are end-to-end agentic, not human plus AI, but literally AI.
—— Daksh Gupta · [05:16]

所以在我的研究中,人类与智能体的 PR 被回退的比率之间似乎没有太大差别。
So there didn’t seem to be very big difference between the rate at which pull requests were reverted from people versus agents in my study.
—— Daksh Gupta · [06:05]

事实上,在我们测试的四个智能体中,有三个在产出 P0 级 bug 的比率方面表现优于人类。
In fact, three out of the four agents that we tested performed better than humans in terms of the rate they were producing P0s.
—— Daksh Gupta · [07:15]

大体而言,根据这些数据,人类生成的 PR 在质量上与智能体生成的 PR 大致相当。
Broadly speaking, human-generated PRs were about equal in quality to agent-generated PRs based on this data.
—— Daksh Gupta · [07:28]

例如,Claude 产生 SQL 注入错误的可能性是人类的一点五倍。
For instance, Claude is one and a half times more likely to produce a SQL injection error than humans.
—— Daksh Gupta · [09:16]

我觉得非常有意思的是,这些智能体的表现存在如此大的差异,而且它们的失败模式与人类如此不同。
I found it very interesting that there was this much variation in how these agents were performing and how different their failure modes were from humans.
—— Daksh Gupta · [09:29]

如今,GrubTile 评审的所有拉取请求中,将近五分之一是在没有任何人工评审或任何人工测试的情况下被合并的。
Today, almost a fifth of all the pull requests of GrubTile reviews are merged without any human review or without any human testing.
—— Daksh Gupta · [11:53]

接着看

顺着「AI 编程」挖下去

换个口味