独立开发和小团队都是没有第二双眼睛地往外发代码——结果就是 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 要复制粘贴,丢保真度。
具体步骤
- 建分支并 commit。Agent 读的是
git diff main...HEAD,commit 边界很关键。 - 打开 Claude Code / Codex / Composer。用这个 prompt 模板:
Review the diff from main...HEAD against this codebase.
Intent: <一句话——这个 PR 做什么、为什么>
Focus on: 漏掉的边界、抽象泄漏、命名、新行为的测试覆盖、
diff 与仓库其他部分的模式有没有冲突。
不要重写。只评论。
- 每条评论都读。分三桶:明显对的、风格噪音、“需要更多上下文”(再问一次)。
- “明显对”的逐条让它”给最小补丁——除了修这条不要带行为改动”。应用并单独 commit,让修复可见。
- “风格噪音”的推回去:“这个跟说好的意图有什么关系?“真噪音的 agent 一推就退;它仍坚持,就听。
- 在新 diff 上重 review。直到 agent 只剩鸡毛蒜皮。
- 发给真人 review,带一行”已 agent 预审”备注。真人就能集中在判断题上。
第一次实操怎么跑
- 挑一个本周已经写完的 200 行 PR——最好是真人评过的。
- 跑 agent review。对比 agent 发现和真人评论。
- 算账:agent 抓住真人评论的几条?漏了几条?又找出真人没看到的几条?
- 这个比例就是 agent 在这个代码库的价值。抓到 70%+ 真人评论就是值的。
完成后检查
- Agent 是围绕你说的意图,还是把整个代码库审了一遍?后者说明你的意图行不够强。
- 它说的”问题”是跑测试 / 读代码能验证的,还是凭感觉?感觉降级。
- 它有没有为新行为提议测试?没就明问——agent 默认很少主动提测试。
怎么复用这套流程
- Prompt 模板存进 shell alias 或
.claude/commands/reviewslash 命令。无摩擦复用是关键。 - 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 是一个信号,真人 + 测试是另外两个,三者都同意才行。
相关阅读
- 怎么 review AI 的 diff
- Codex code review 工作流
- 多 Agent 编程工作流
- AI 从 spec 到代码的工作流
- AI 架构 Review 工作流
- Agent vs 自动补全
- AI 生成更新日志——从 commits 到人愿意读的 release note
- AI 协作数据库迁移——可回滚、有回填、能测
- AI 解 merge 冲突——什么时候能信自动合
- Claude Code MCP——给 Claude Code 接上真工具
- Cursor Rules——让 .cursorrules 真正派上用场
标签: #AI 编程 #教程 #工作流 #Claude Code