二十年来,软件工程的瓶颈一直是写代码。我们优化了 IDE、自动补全、重构工具和各种框架,让"打字"变得更便宜。我们赢了。可现在瓶颈往下游挪了一步:写代码很便宜,读代码却很贵。PR 机器人可以并行启动十次实现尝试,在你早上喝完咖啡之前就把十个 Pull Request 砸到你的仓库里。你的审查者做不到这一点。
AI 辅助的软件交付,速率限制器已经不再是模型的每秒 token 数,而是你每天能投入多少双"人眼"去看 diff。当这些眼睛被压垮,系统不会优雅地降级——它会开始盖橡皮图章。代码带着 LGTM 🚀 被合入,没有人真正读过。一名资深工程师批准了一份由 AI 写、又被另一个 AI 工具审查过的补丁,三周后一个数据不一致的 bug 吃掉了某个人四十个小时的人生。表面上的正确不等于系统层面的正确,绿色的流水线不等于"我理解了"。
这就是 Agentic Engineering 中最不光鲜的那一部分:Agent 完成了它的工作,吞吐量上去了,而代码库的完整性在悄悄退化,因为这个循环中的人类一侧从来没有得到一份容量规划。
瓶颈是搬家了,不是消失了
过去一年的数据讲了一个一致的故事。GitHub 的 Copilot 代码审查已经处理了超过六千万次审查,不到一年增长了大约十倍,平台上每五次代码审查中就有一次以上涉及到 Agent 参与 diff 的某一侧。在引入 AI 协助的代码仓库中,PR 的数量同比上涨大约 29%。Ramp 公开介绍过自己内部的 Inspect Agent,在前端和后端仓库里处理大约 30% 的 PR。研究者们也一致报告,AI 生成代码的速度比人类理解代码的速度快五到七倍。
这些数字并不是在描述一个"审查者变快了"的行业,而是在描述一个"砸到审查者面前的工作越来越大、越来越频繁,而对面那群人的认知吞吐量原地未动"的行业。任何假设"审查速度稳定"的容量规划,规划的都是一个已经不存在的世界。
更诚实的表述是:你手上有一个队列。到达率由一群不会睡觉、不会分心、不会受社交压力影响而放慢的 Agent 决定。服务率由数量固定、注意力有限、上下文切换成本真实存在的人类决定。排队论会告诉你接下来发生什么:利用率攀升,延迟爆炸,然后系统通过悄悄降低质量来找到一个不健康的均衡。在代码审查里,所谓"悄悄降低质量"就是对那些被快速浏览而不是被真正阅读的 diff 盖上 LGTM。
让审查者"用同样的速度去读"只会拉低质量
最自然的反射是逼审查者更快一点。这是错误答案,而且是一个特别危险的错误答案——因为短期内它确实奏效。审查者可以靠跳读加速。他们可以选择相信 linter 和测试已经抓住了重要的东西。他们可以批准 diff,然后继续过日子。吞吐量提升,仪表盘漂亮,代码库开始积累一种工程侧从来没有正式命名过的债务。
Addy Osmani 把它叫做"理解债务"——你的仓库里存在的代码,与组织里任何一个还在岗位上的人真正理解的代码之间的鸿沟。AI 生成的代码特别擅长把这条鸿沟藏起来:语法正确、格式整洁、表面上写得像本地人。所有曾经触发"我可以放心合并"信号的东西都还在。唯一真正退化的,是那个唯一重要的信号:一个有能力的审查者,是否真的为这次改动在系统中的影响建立了心智模型?
另一个失败模式更隐蔽。一旦"盖橡皮图章"成了习惯,它就抽走了代码审查除了抓 bug 之外真正擅长的那件事——它本来是初级工程师通过观察资深工程师"对着代码大声思考"来学习这个代码库的地方。如果资深工程师对一次审查的全部贡献只是一个 emoji,那么初级工程师什么都学不到;五年后你需要一个能做出"模型做不出的判断"的人,你才会发现你从来没有培养出那个人,因为本该用来培养的那段工作早就被 Agent 拿走了。
按人类阅读速度工作的审查者无法跟上以 Agent 生成速度工作的机器人,强行让他们跟上也不会换来安全,只会换来一种"在没人读过的代码库之上"的安全表象。
风险分级自动合并:一条快速通道,一条慢速通道
第一个结构性修复,是别再假装所有 PR 都值得同等程度的人类关注。修一个 markdown 拼写错误,和改一段身份认证中间件,根本不是同一种风险;把两者当作"同等值得人类审查",恰好就是你让那个认证改动得到了和拼写一样的十五秒扫读的原因。
一个合理的风险评分可以从你已有的东西里抽:圈复杂度、改动了多少文件、整体 diff 大小、是否触及安全敏感路径、是否动了 migration 或 schema、新增了测试还是只是调整了已有断言。然后你把 PR 分桶:文档和琐碎修复只走自动检查;单文件、隔离良好、测试覆盖到位的改动,走轻量审查或仅 AI 审查;任何触及共享抽象或敏感表面的改动,则要求真正的人类阅读并签字放行。
实证结果也支持这一点。一篇关于"AI 生成 PR 审查工作量早期预测"的近期论文发现,把预测审查工作量排名前 20% 的 PR 拦下来,就能覆盖大约 69% 的总审查工作量。这是一条求着你去利用的帕累托分布:你的认知预算大部分被一小撮高风险改动消耗,而队列里大多数是可以走快速通道、无需仪式的低风险工作。一份已发表的案例研究报告显示,一个团队靠"对低风险 PR 自动批准、把人类审查留给更危险的尾部",把人均月合并 PR 数从 34 提升到 96——在编制不变的前提下吞吐量提升 2.9 倍。
这里的纪律是:自动合并是一个关于"你愿意吸收哪种债务"的策略决定,不是一种技术上的便利。你在明确地说:文档漂移很便宜,引入一次 N+1 查询很贵,人类容量应当花在这里。这是一种比"审查者累了就批准了"健康得多的对话。
把"人类审查"当作一种一等公民资源去预算 第二个结构性修复,是把审查者的注意力当成一种被预算管理的资源,而不是一种道德上的默认期望。今天,多数团队里隐含的规则是:任何一个工程师只要开了 PR,就理应分配到审查时间。当那个工程师是一个一天开一两个 PR 的人类时,这套规则是可持续的。当那个"工程师"是一个一小时能开十个 PR 的 Agent 时,这就变成了对一份固定资源的无界提取。
修复的形状非常朴素:每个 Agent、每个自动化、每个作者,都拥有一份按天或按周的审查预算。超出预算就排队、限速,或要求 Agent 把变更打包成一个大 PR 走一次审查。你只是在对 Agent 的贡献施加和"行为良好的客户端面对限速 API"时同样的反压。那种"开十个并行 PR、让人类挑最好的一个"的 Agent,本质上是在把成本外部化给审查队列,而预算让这种外部化变得可见。
落到实际,这就是按 Agent、按团队、按季度统计审查小时数的仪表盘。是诸如"这个 Agent 本 sprint 已经用掉 80% 审查预算,后续 PR 将延至下个 sprint,或申请预算例外"的话。是把 Agent 当作有明确工作范围管理的"工程招聘",而不是当成"神奇地不消耗任何下游容量"的免费生产力倍增器。
更难的部分是文化转变。当你买 Agent 的全部理由就是提升吞吐量时,让一个高产的 Agent 等一等会感觉很反直觉。重构一下:Agent 侧的吞吐量本身并不产生"已交付的价值",它产生的是"已排队的工作"。已交付价值由审查闸门控制,审查由注意力控制,注意力是有限的。给它做预算不是踩刹车,而是对你实际拥有的系统做的第一次诚实记账。
AI-on-AI 预审,以及它那种安静的失败模式 第三个结构性修复,是关注最多、却最需要小心的那一个:在人类看到 diff 之前,让一个 AI 审查者先做一轮分诊。GitHub Copilot 代码审查现在使用 Agent 化的工具调用架构,能拉取仓库上下文、在每个 PR 上留下行内反馈,并能把自己的修改建议交给编码 Agent 在一个 stacked PR 里自动应用。"写作 Agent + 审查 Agent + 人类签字"正在成为流水线的默认形状。
这套办法确实能用,也确实减轻了审查负担。但它有一个在任何仪表盘上都看不到的失败模式:写作 Agent 和审查 Agent 经常来自同一个模型家族、同一份训练数据,因此带着同一组盲点。审查者抓不到写作者倾向于引入的 bug,因为两者都学会了把同样的模式当成"地道"的写法。你那"两层防御",本质上是一层防御穿了件外套。
缓解办法是在审查栈里加入对抗性多样化。审查 Agent 应当来自与写作者不同的模型家族,跑在不同的 system prompt 下,并且最好被一组确定性检查所增强——类型分析、安全 linter、依赖审计、突变测试——它们不和任何一个模型共享先验。流水线末端的人类,应当审查的是 AI 审查明确标记为"低置信"的东西,而不是给 AI 审查批过的东西再盖一遍橡皮图章。
还有一个目前几乎没人讨论的维护问题。AI 审查者本身也是一份 prompt,每次它漏掉一个重要东西,就会再被加上一句防御性指令。久而久之,它本身就变成了一段"夹在 Agent 和你的代码库之间、却从未被审查过"的基础设施。审查者也需要自己的评测、自己的消融纪律,以及一份"对那些已经赚不回 token 的指令"的退役政策。
现在的"吞吐量"到底意味着什么 那些传统指标——每周合并 PR 数、合并耗时、部署频率——是为"约束在写作侧"的世界设计的。它们如今奖励的是错误的东西。一个团队完全可以创下吞吐量纪录,同时悄悄构建一个"没人完全理解、审查者无法辩护、距离一次生产事故就能暴露其审查浅薄程度"的代码库。
往前看真正重要的指标是另一组。每次合并 PR 平均花掉的审查小时数。被合并的 PR 中,得到实质性评论而非橡皮图章式批准的占比。一次合并到第一次可归因于该改动的事故之间的时间。代码库中,在过去六个月里被任何一个现役团队成员真正读过的部分占比。这些数字让人不舒服,因为它们衡量的是理解而不是活动量;可理解,正是 Agent 正在消耗的那种资源。
PR 机器人不会休眠,你也无法靠"加倍努力地读"赢过它。你能做的,只有刻意决定:哪些工作值得你的注意力,哪些工作可以在没有你注意力的情况下流过这个系统。那些刻意去做这件事的团队,最终会落到一种可持续的节奏上——人类审查那些需要人类的东西,Agent 在合适的护栏下处理其余的一切。那些不去做的团队,会积累一种"没有人拥有"的安静审查债,直到它变成所有人都得管的那一天。
会员专享
余下内容仅对会员开放。 会员可读完整内容 —— 每一个公开发布的观点背后,那些框架、决策与推理的全貌。
— 完整文章,包含未公开存档的部分 — 可落地的工作框架,附带权衡与决策依据 — 新文章抢先看,先于公开发布 登录以继续阅读→ 随时取消 · 一次订阅,畅读全部