AI Agent 做代码审查的工作流

在 PR 发给同事之前,用 Claude Code / Codex / Cursor Agent 先做一遍 review。

独立开发和小团队都是没有第二双眼睛地往外发代码——结果就是 bug 漏出。解法不是”等 AI 替代 reviewer”,是用 agent 当预过滤,让真人 reviewer(或者未来的你)看到的是干净的 diff。这篇讲的是 50 行以上 PR 都值得跑一遍的 prompt 和回路。

这篇主要解决什么问题

大多数”AI 代码审查”讨论的是 review AI 写的代码。反过来——让 agent 在同事看到你”人类写的”代码之前先 review 一遍——价值更高。一次 5 分钟的 agent pass 抓掉显而易见的东西(漏掉的边界、抽象泄漏、命名坏、缺测试),让真人 reviewer 把时间花在真正的判断上。

这篇适合谁看

通过 PR review 走的开发者——特别是:

  • 独立开发和顾问:没同事可以扔 diff。
  • 资深工程师:PR 被同事盖章式通过(团队信任反而漏掉东西)。
  • 小团队:Review 队列慢,作者想加速但不跳过 review。
  • 开源 maintainer:想 merge 自己的 PR 但不破坏 maintainer 规范。

什么时候适合用

提 50+ 行 PR 之前。大重构后。合并影响共享接口、公开 API、auth / billing 代码之前。任何漏 bug 的代价高于 10 分钟 agent 时间的地方。

什么时候不建议用

15 分钟内必须发的 hotfix。纯 typo 修复。无论如何要有指定真人 review 的安全敏感改动。你正在学这个代码库的 PR——agent 会直接给你答案,你就理解不了代码。

开始前准备

  • 干净的 commit。Agent review 的是 diff,未提交的杂音会污染 review。
  • 一句话能说出 PR 的意图。没意图,review 就泛(“可以更模块化”),有意图就有用(“限流器接受负 window——故意的吗?”)。
  • 选有文件 + diff 访问的 agent:Claude Code、Codex、Cursor Composer。纯聊天 agent 要复制粘贴,丢保真度。

具体步骤

  1. 建分支并 commit。Agent 读的是 git diff main...HEAD,commit 边界很关键。
  2. 打开 Claude Code / Codex / Composer。用这个 prompt 模板:
Review the diff from main...HEAD against this codebase.
Intent: <一句话——这个 PR 做什么、为什么>
Focus on: 漏掉的边界、抽象泄漏、命名、新行为的测试覆盖、
diff 与仓库其他部分的模式有没有冲突。
不要重写。只评论。
  1. 每条评论都读。分三桶:明显对的、风格噪音、“需要更多上下文”(再问一次)。
  2. “明显对”的逐条让它”给最小补丁——除了修这条不要带行为改动”。应用并单独 commit,让修复可见。
  3. “风格噪音”的推回去:“这个跟说好的意图有什么关系?“真噪音的 agent 一推就退;它仍坚持,就听。
  4. 在新 diff 上重 review。直到 agent 只剩鸡毛蒜皮。
  5. 发给真人 review,带一行”已 agent 预审”备注。真人就能集中在判断题上。

第一次实操怎么跑

  1. 挑一个本周已经写完的 200 行 PR——最好是真人评过的。
  2. 跑 agent review。对比 agent 发现和真人评论。
  3. 算账:agent 抓住真人评论的几条?漏了几条?又找出真人没看到的几条?
  4. 这个比例就是 agent 在这个代码库的价值。抓到 70%+ 真人评论就是值的。

完成后检查

  • Agent 是围绕你说的意图,还是把整个代码库审了一遍?后者说明你的意图行不够强。
  • 它说的”问题”是跑测试 / 读代码能验证的,还是凭感觉?感觉降级。
  • 它有没有为新行为提议测试?没就明问——agent 默认很少主动提测试。

怎么复用这套流程

  • Prompt 模板存进 shell alias 或 .claude/commands/review slash 命令。无摩擦复用是关键。
  • Repo 根放一份 CLAUDE.md(或 AGENTS.md),写项目特有的反模式。Agent 跨 review 都会遵守。
  • 跟踪发现类别在 PR 间的重复。如果”缺测试”出现 8 次,解法是 pre-commit hook,不是更强的 review。

建议的操作流程

周五 PR review:分支 + 200 行 diff → Claude Code 带意图的 review prompt → 5 条实质评论 → 2 条修、3 条带理由不修 → 重 review → 只剩鸡毛 → 发给真人。时间:8 分钟。抓到:3 个你本会漏的真问题。

容易踩的坑

  • review 时不写意图——agent 标错点,因为它不知道”好”长什么样。
  • 每条都照单全收——agent 容易过度设计,会把你的代码重构成更抽象更糟的样子。
  • 让 agent 一边 review 一边改——review 和 edit 要分开 prompt、分开 commit。
  • 让”同一个 agent”审查它自己生成的代码——它倾向于通过自己的作品。用另一个模型交叉。
  • 跳过重 review——修复会引入新问题,一遍很少够。
  • 把 agent 的”可以重构”当阻塞——那是 merge 后的 ticket,不是 PR 阻塞。

进阶技巧

  • 交叉验证:一个模型 review,让另一个反驳第一个的 review。补盲区。
  • CLAUDE.md 里的项目 review 清单:项目特有反模式(比如”db.exec 不许出现在 repository 层之外”)。Agent 会遵守。
  • 安全敏感代码明确问:“列出可能成为攻击向量的输入,逐个追怎么被校验。“通用安全 review 漏细节。
  • stacked PR 用 commit 级 review——每个 commit 单独 review,反馈映射到一个内聚改动,不是整叠。

怎么验收输出

  • 改动意图一句话写在 review prompt 顶部。
  • Diff 范围清晰(commit 区间、分支、无未提交杂音)。
  • 每条接受的建议改完后又 review 一遍。
  • 真人 review 还在——agent review 是预过滤,不是替代。
  • 被驳回的评论在 PR 描述里留一行”为什么”,让 reviewer 看到你的判断。

FAQ

  • 会让我变弱吗?: 只有当你盲接受才会。读评论 + 主动推回,反而教你以前看不到的模式。
  • 跟 CI lint 区别?: Lint 抓语法和已知模式。Agent 抓逻辑、缺测试、抽象泄漏——人通常做的更高层 review。
  • 哪个模型?: Claude(3.5+)和 GPT-5.5 级都强。用你编辑器集成的那个——切换成本是真的。
  • 成本?: 200 行 review 约 $0.10-0.30。比漏一个 bug 便宜。
  • agent 能帮我 merge 吗?: 不能,也别让它。Agent review 是一个信号,真人 + 测试是另外两个,三者都同意才行。

相关阅读

标签: #AI 编程 #教程 #工作流 #Claude Code