AI Code Review 实战:规则、提示词与边界
今年做了一次尝试:
不改变现有流程的前提下,让大模型参与到 Code Review 里,当一个「辅助 reviewer」。
它不会替代人类审核,只做三件事:
- 帮忙找明显 bug / 边界问题
- 帮忙发现重复逻辑、代码味道
- 帮忙写结构化的改进建议
1. 我们希望 AI 扮演什么角色?
一开始就想清楚边界:
-
不负责通过/拒绝 PR
- 不修改状态,只给评论和建议
- 最终决策仍然是人类 reviewer
-
关注「模式」而不是细枝末节
- 比如错误处理缺失、越界风险、循环里请求等
- 而不是变量名叫
a还是data
-
输出要尽量具体
- 指出文件、位置、问题和建议
- 避免空话:「可以优化」「可以重构」这种直接过滤掉
2. 整体方案:在 CI 里多插一段「AI Review」
流程:
- CI 获取本次 PR 的变更文件 + diff
- 对每个文件构造一个「上下文 + diff」的 payload
- 调用大模型,让它产出结构化的 review 结果
- 再由机器人账号把评论贴回 PR(或者汇总成一条)
为控制成本和复杂度:
- 优先只分析变更行附近的代码
- 超长文件只截取相关片段
3. Prompt 设计:告诉 AI「只看这四件事」
一个简化的系统提示大致是:
你是一名资深前端/全栈工程师,正在做 Code Review。
请只关注以下问题:
- 明显的 bug 或潜在边界问题
- 异常处理和错误提示是否合理
- 性能隐患(多余循环、重复请求等)
- 安全/权限风险
不要评论代码风格、缩进、单双引号之类的问题,这些交给 Lint 工具。