生产环境中的 LLM 代码审查:构建工程师真正信任的 Diff 流水线
大多数部署 LLM 代码审查工具的团队都会在两周内发现同一种失败模式:模型为每个 PR 生成 10–20 条评论,其中 80% 都是噪音。在第三个 PR 中,如果开发者不看就关闭了所有评论,这个工具就名存实亡了 —— 通知被发送到无人查看的频道,而机器人仍然在每次推送时消耗算力。
问题不在于模型。而在于这些团队发布了一个评论生成器,却称之为审查工具。
大多数部署 LLM 代码审查工具的团队都会在两周内发现同一种失败模式:模型为每个 PR 生成 10–20 条评论,其中 80% 都是噪音。在第三个 PR 中,如果开发者不看就关闭了所有评论,这个工具就名存实亡了 —— 通知被发送到无人查看的频道,而机器人仍然在每次推送时消耗算力。
问题不在于模型。而在于这些团队发布了一个评论生成器,却称之为审查工具。
在一项受控随机对照试验中,使用 AI 编程助手的开发者预测他们的速度会提高 24%。而实际上,他们慢了 19%**。关键在于:他们仍然认为自己变快了。这种认知鸿沟——即生产力的“感觉”与实际交付能力背道而驰——是一种失效模式的早期预警信号,这种模式通常在数月而非数小时内显现。
行业已实现近乎普及的 AI 采用。93% 的开发者使用 AI 编程工具。生产力增长却停滞在 10% 左右。这些数字之间的差距并非工具问题,而是一个不断累积的债务问题,大多数团队在扭转成本变得极其昂贵之前,往往察觉不到它的存在。
AI 生产力研究中有一个几乎无人提及的数字:39 个百分点。一项针对有经验开发者的研究中,参与者预测 AI 工具会让他们快 24%。完成任务后,他们仍然认为自己快了 20%。实际测量结果:他们慢了 19%。感知差距是 39 个百分点——而且每次迭代、每次代码审查、每个交付的功能都在累积。
这就是认知负载倒置。AI 工具擅长卸载廉价的认知工作——编写语法正确的代码、起草模板、建议函数名——同时产生了一类更难的认知工作:对不确定输出的持续评估。你并没有消除认知努力,而是将简单的一半自动化了,然后把困难的一半留给了自己。
大多数采用 AI 代码审查器的团队都会经历同样的阶段:最初的兴奋,伴随着大量看似有用的标注问题,然后逐渐演变成完全忽视该机器人。几个月内,工程师们已经形成了一种在不阅读 AI 评论的情况下直接将其关闭的肌肉记忆。工具仍在运行,评论仍在出现,但没有人再根据它们采取行动了。
这不是工具问题,而是衡量标准的问题。团队在部署 AI 代码审查时,从未定义过什么是“净收益”——如果没有这个基准线,告警疲劳最终会胜出。
大多数团队对待 CLAUDE.md 的方式和对待 README 一样:写一次,然后忘掉它的存在,最后疑惑为什么什么都不好使。但 CLAUDE.md 不是文档。它是你的代码库和每一个接触它的 AI agent 之间的 API 契约。写对了,每一次 AI 辅助的提交都遵循你的架构。写错了——或者更糟,让它腐化——你实际上是在每次会话中让你的 agent 变得更笨。
AGENTbench 研究在 12 个代码库中测试了 138 个真实编码任务,发现自动生成的上下文文件实际上降低了 agent 的成功率,甚至不如完全没有上下文文件。三个月积累的指令,其中一半描述的代码库已经面目全非,不会指导 agent——它们会误导 agent。
一个人如何用自主 AI Agent 替代了一个 15 人的工程团队——以及这一路上的惨痛失败。
本文内容为休斯顿大学 CIVE 7397 课程客座讲座材料。衷心感谢 张汝达教授 的邀请,以及 吕海 分享的诸多想法,正是这些启发塑造了本次讲座。
我大学没学过计算机。我在北京读的是管理专业。不知怎么地,我最后去了耶鲁读计算机硕士,然后去了 Uber 开发服务 9000 万用户的系统,接着又去了 Brex 和 Airbnb,最终创办了自己的公司。
我告诉你这些是因为谁能开发软件的游戏规则正在被重写——而你的背景可能比你想象中更有优势。
每个工程师的起点都一样。空白的编辑器。闪烁的光标。一个写着“开发订阅计费系统”的任务。
一位资深工程师——有着十年经验的人——每天大约产出 100 到 150 行生产环境代码。剩下的时间都花在了会议、代码审查、调试和上下文切换上。这就是天花板。
“10x 工程师”是我们追逐的神话。但即使是 10x 工程师也依然只有一个人。生产力随人数线性增长。想交付得更快?那就招更多的人——而每招一个人都需要三到六个月的入职培训。
最糟糕的部分是什么?知识只存在于人们的脑子里。为什么那个系统要那样设计?去问 Chen。哦,Chen 离职了。祝你好运。