AI 辅助代码审查实战:让 PR Review 不再拖慢交付
在很多团队里,PR Review 往往是一个“大家都知道重要,但总是排队”的环节。
代码写完了,测试过了,准备合并了,结果 Review 还没回来;等审查意见回来,开发者上下文已经丢了一半,修复、解释、再提交,又是一轮等待。真正拖慢交付的,很多时候不是写代码,而是代码审查没有标准化、没有自动化、没有前置过滤。
这篇文章讲的不是“让 AI 替你决定合并与否”,而是把 AI 变成Review 前置筛子:先帮你发现明显问题、整理风险点、补齐检查清单,再把真正需要人来判断的部分交给团队成员。
一、为什么 PR Review 总是慢
大多数团队的 Review 变慢,问题通常不在“人不愿意看”,而在于 Review 的输入本身太差。
常见的四个瓶颈
改动太大
- 一个 PR 里塞了功能、重构、格式化、修 bug
- 审查者需要先理解意图,再判断实现,成本很高
上下文不足
- 只看 diff 不知道为什么改
- 没有设计说明,没有测试说明,没有风险提示
检查点不统一
- 有的人看命名,有的人看性能,有的人看安全
- 审查标准不一致,反馈质量波动很大
重复劳动太多
- 大量时间花在找拼写、缩进、明显的空指针、无意义重构上
- 真正该关注的业务逻辑、边界条件、权限问题反而被稀释
AI 适合处理的,正是这些重复、机械、结构化的部分。
二、AI 辅助代码审查到底该做什么
先说结论:AI 不是“最终裁判”,而是“第一轮审查员”。
适合交给 AI 的内容
- 代码风格和命名一致性
- 明显的逻辑漏洞
- 潜在的性能问题
- 可能的安全风险
- 测试覆盖缺口
- 是否违反项目约定
- 是否缺少必要的错误处理
- 是否有多余改动
不适合只靠 AI 的内容
- 架构级决策
- 业务规则是否真的合理
- 对复杂边界的经验判断
- 跨团队影响评估
- 是否应该拆 PR、重设方案
简单说,AI 负责“扫雷”,人负责“拍板”。
三、一个实用的 AI Review 工作流
最稳妥的方式,不是把整个仓库丢给模型,而是让 AI 只看变化范围和审查目标。
推荐流程
- 开发者提交 PR
- CI 把 diff 导出来
- AI 先做结构化审查
- 输出风险清单和建议
- 人工只看高风险项
- 必要时再补人工深审
这个流程的核心价值是:先缩小问题空间,再把人的注意力集中在真正重要的地方。
四、AI Review 提示词怎么写
提示词不要写成“帮我看看代码有没有问题”,这种太空。
要明确让 AI 输出结构化结果,并且限定审查维度。
推荐提示词模板
你是一个资深代码审查员。
请审查以下代码变更,重点关注:
1. 安全性问题
2. 性能问题
3. 可维护性问题
4. 测试缺口
5. 是否违反常见项目规范
输出格式:
- 发现的问题
- 风险等级
- 修改建议
- 是否建议阻塞合并
如果信息不足,请明确说明,不要猜测。
进一步增强的约束
你还可以加上:
- 只基于 diff 判断,不要假设未提供的上下文
- 对不确定的内容标记为“需人工确认”
- 先给出高风险问题,再给出低风险问题
- 避免泛泛而谈,必须指出文件、行号、原因
这样做出来的审查结果,才更像可执行报告,而不是聊天建议。
五、一个可落地的 GitHub Actions 示例
下面这个思路适合大多数团队:PR 打开或更新时,自动跑一轮 AI Review,结果作为评论或检查结果返回。
name: AI Code Review
on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
review:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Claude Code
run: npm install -g @anthropic-ai/claude-code
- name: Prepare diff
run: |
git diff origin/${{ github.base_ref }}...HEAD > changes.diff
- name: AI Review
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
claude --print "你是一个资深代码审查员。请审查以下变更,重点关注安全性、性能、可维护性和测试缺口。输出必须结构化,指出具体风险并给出建议。只基于以下 diff:$(cat changes.diff)"
这个方案的好处
- 每次 PR 都有统一的第一轮检查
- 减少漏看明显问题的概率
- 审查意见格式统一,方便团队阅读
- 可以把 AI 结果沉淀成模板,越来越稳定
但要注意
不要把 AI 审查结果直接当最终结论。CI 适合做“前置过滤”,不是“完全替代”。
六、AI Review 最适合发现哪些问题
下面这些场景,AI 通常比人更快。
1. 空指针和边界遗漏
很多 bug 并不是复杂逻辑,而是简单的输入没判断、返回值没处理。
例如:
const user = await getUser(id);
return user.profile.name;
如果 getUser 可能返回 null,AI 很容易帮你抓出来。
2. 重复逻辑和可抽取代码
AI 很擅长指出“这里和别处差不多,可以抽函数”。
这类建议对长期维护很有价值,因为它帮助团队尽早发现代码膨胀的趋势。
3. 明显的性能问题
比如:
- 在循环里重复查数据库
- 对大数组做多次全量遍历
- 在请求路径里做同步阻塞操作
- 不必要的深拷贝或序列化
AI 可以快速标出这些模式。
4. 测试缺失
很多 PR 只改了实现,没有改测试。
AI 可以自动检查:
- 是否新增了关键逻辑却没有对应测试
- 是否覆盖了异常路径
- 是否只测了 happy path
这点和《用 AI 写单元测试的正确方法》是强相关的。
七、把 AI Review 和团队规范绑定起来
如果团队没有审查规范,AI 的输出会显得很散。
所以更好的方式,是把团队规则写进审查提示里,甚至写进项目说明文件里。
建议加上的规范项
- 新增接口必须有单元测试
- 数据库访问必须有错误处理
- 用户输入必须校验
- 关键路径禁止同步 I/O
- 公共函数必须写清楚边界行为
- 生产相关改动必须给出回滚方案
这样 AI 审查时就不是“泛评论”,而是“照着你们团队的尺子看代码”。
如果你在用 Claude Code
可以把项目约定放进 CLAUDE.md,让它在审查时自动遵循团队规则。
这和本博客前面那篇《Claude Code 完整使用指南:从入门到自动化工作流》是天然连贯的:一个解决“怎么用”,一个解决“怎么把它用进流程里”。
八、审查报告应该长什么样
AI Review 的输出不要太散,最好固定成三层:
第一层:结论
- 是否建议合并
- 风险等级
- 是否需要人工重点复核
第二层:问题列表
每个问题最好包含:
- 文件位置
- 问题描述
- 风险等级
- 修改建议
第三层:补充建议
比如:
- 是否应拆分 PR
- 是否应增加测试
- 是否应更新文档
- 是否应补回滚说明
推荐示例格式
结论:建议暂缓合并
高风险问题:
1. src/api/user.ts:42
- 问题:未处理 null 返回值,可能导致运行时异常
- 建议:增加空值判断并返回 404
中风险问题:
2. src/service/report.ts:88
- 问题:在请求路径中进行了两次全表扫描
- 建议:改为分页查询或缓存
测试缺口:
- 新增接口未覆盖鉴权失败场景
- 未验证异常分支
这种格式最适合团队协作,因为开发者可以直接按项修。
九、哪些团队最适合先上 AI Review
并不是所有团队都要一上来就全自动。
最适合先做的团队
- PR 数量多、Review 排队明显的团队
- 有统一编码规范的团队
- 业务迭代快、重复改动多的团队
- 新人比较多、代码风格不稳定的团队
- 需要频繁做安全和合规检查的团队
不建议一开始就完全自动化的情况
- 项目文档很差,代码约定不统一
- 业务规则高度复杂,审查主要依赖经验
- 团队对 AI 结果没有信任基础
- 变更量很小,人工 Review 已经足够快
这类场景更适合先做“辅助建议”,再逐步提权。
十、落地时最容易踩的坑
坑 1:把 AI 输出当权威
AI 会帮你找问题,但它不是上下文全知者。涉及业务规则和历史包袱的部分,必须人工确认。
坑 2:审查输入太长
整仓库、整个 PR、几十个文件一起喂,结果通常会变差。更好的做法是按模块、按 diff、按风险拆分。
坑 3:没有统一模板
没有模板就没有稳定输出。今天像代码审查,明天像代码助手,后天像技术顾问,团队很难复用。
坑 4:只看问题,不看建议
AI 的价值不只是指出问题,更重要的是给出“下一步怎么改”。
十一、推荐的真实使用方式
如果你现在就想开始,建议这样上:
第一步:人工审查前加一层 AI 预审
先让 AI 看 diff,输出风险点。
第二步:把 AI 结果写进 PR 模板
例如要求提交人附上:
- 改动目的
- 风险点
- 测试结果
- 回滚方式
第三步:对高风险模块做强制 AI 审查
比如:
- 鉴权
- 支付
- 数据导出
- 用户隐私相关逻辑
第四步:定期复盘误报和漏报
只要复盘几轮,AI 审查模板就会越来越准。
十二、总结
AI 辅助代码审查的真正价值,不是替代人,而是让审查流程从“纯人工排队”升级为“机器先筛、人再决策”。
它最擅长的是:
- 快速找出明显问题
- 统一审查标准
- 降低重复劳动
- 给出结构化建议
- 让 Review 更早发生
当你把 AI Review 和项目规范、CI 流程、测试体系结合起来之后,PR 审查就不再只是“等别人看”,而会变成一个可复制、可扩展、可持续优化的工程环节。
如果你已经在用 Claude Code,不妨把它进一步推进到“审查助手”角色;如果你还没有,那就从一条最简单的规则开始:让 AI 先帮你看第一遍,再让人做最终判断。






