代码审查 Prompt:超越 "LGTM"

13 条可直接复制的 AI 代码审查 Prompt,挖出真 bug、安全漏洞、性能问题和测试缺口,并附 2026 年该配哪个审查机器人。

“审查一下这段代码”只会得到通用反馈。下面这 13 条 Prompt 命中资深 reviewer 会抓的具体失败模式,而且每条都只钉住一个审查维度,让信号不被稀释。

一句话总结

  • 一条 Prompt 只看一个维度:bug、安全、或性能,绝不三个一起上。混在一起是 AI 审查读起来像噪音的头号原因。
  • 每条发现都要 file:line 加上 Critical/High/Med/Low 严重度。没给行号的,多半是幻觉。
  • 用 Claude Code 或 Cursor 时,让 agent 直接从 git 读 diff,别贴片段——上下文更全,截断更少。
  • 把这些 Prompt 和审查机器人搭配使用(截至 2026 年 6 月,可选 GitHub Copilot code review、Claude Code Review 或 Cursor Bugbot)跑机械那一遍,意图和产品上下文留给人来判断。

适合哪些人

PR 前自查的工程师、一周要 triage 10+ PR 的技术负责人、没有 peer reviewer 的独立开发者,以及刚接手陌生仓库的人。

什么时候别用这些 Prompt

一行的 diff、生成类文件(lockfile、快照更新、自动生成的客户端)跳过——成本大于收益。也别在自己还没读过的 AI 生成补丁上直接跑:先自己过一遍草稿,否则就等于让一个模型给另一个模型打分,而你对两边都两眼一抹黑。

Prompt 结构:六个要素

下面每条审查 Prompt 都带这同样六个部分,缺一个质量就断崖式下跌:

要素作用例子
Reviewer 角色设定视角和深度”后端资深 reviewer”、“SRE”、“staff 前端”
审查焦点一次只看一个维度bug、安全、或性能
证据要求让发现可复核每条都要 file:line
严重度分级强制排序,不是平铺清单Critical / High / Med / Low
置信度门槛压低误报”确信再标”
输出形态保持可扫读编号清单或 markdown 表格

13 个可直接复制的 Prompt 模板

下面 { } 里的占位符是故意放在代码块里的——整条 Prompt 照抄,把占位符换成你真实的 diff 或文本即可。

1. 聚焦 bug

下面是 diff。只查可能的 bug。每条:file:line、严重度(高/中/低)、错在哪、建议修复。不查样式。保守——确信才标。

{粘贴 diff}

2. 聚焦安全

查安全:注入、鉴权、密钥、输入校验、不安全反序列化、竞态。每条:file:line、攻击场景、修复。

{粘贴}

3. 性能审查

只查性能:N+1、热路径同步调用、冗余工作、缺缓存、无界增长。Top 3 给前后对照。

{粘贴}

4. 可读性 + 命名

只查可读性:命名不清、函数过长、嵌套过深、抽象层级混。建议具体改名。不要重写。

{粘贴}

5. 测试覆盖审查

下面是改动 + 测试。请识别:未覆盖情况、脆弱测试模式、测实现而非测行为。建议 3 个缺失用例。

{粘贴}

6. API 设计审查

审查公开 API:参数清晰度、错误处理一致性、破坏性变更风险、{语言} 习惯。若合适给一个替代形态。

{粘贴}

7. diff 上下文检查

此 diff 中作者可能没读够上下文的地方(如改了函数没更新调用者)。每处说可能缺什么。

{粘贴}

8. PR 描述对齐

我在写 PR 描述。这是草稿 + diff。描述准确覆盖了这次改动吗?请列出不一致。

描述:{粘贴}
diff:{粘贴}

9. 迁移 / schema 变更审查

此 diff 含一个数据库迁移。请审查:缺回填、不可逆的 ALTER、大表上的锁时长、新外键缺索引、下游代码仍引用旧结构。每条:file:line、风险、建议缓解。假设该表在生产有约 1000 万行。

{粘贴}

可替换变量: 迁移文件 + 涉及的 model / ORM 改动。“约 1000 万行”这句话能逼出对锁时长的真实考量,而不是教科书式答案。

10. 并发问题审查

此 diff 只查并发问题:共享可变状态、缺锁/互斥、异步竞态窗口、事务内 await、React effect 或 handler 的重复触发。每条:file:line、会出错的交错时序、建议修复。其余一概跳过。

{粘贴}

11. 把资深 review 翻译给新人

我会贴一条资深 reviewer 的评论。请为刚入职的新人改写:用 2 句话讲清背后的原理,再引一段前后对照的代码片段展示修复。保留原评论的锋利度,但去掉行话。

Reviewer 评论:{粘贴}
原代码:{粘贴}

12. “这个 PR 该拆吗”

下面是一个改了 N 个文件的 PR diff。判断是否该拆成更小的 PR。输出:(1) 结论(直接合 / 拆成 2 个 / 拆成 3+ 个),(2) 该沿哪几条线拆,(3) 即便在一个 PR 内、也该单独成一个 commit 的改动。

{粘贴}

13. Reviewer 行为自审

把自己最近的 review 评论扔进去,识别你自己审查时的盲区。

下面是我这个月留的 20 条 review 评论。请聚类:(1) 我最擅长抓哪类问题,(2) 我系统性漏掉什么(安全?性能?测试设计?),(3) 哪些语气模式可能显得苛刻,(4) 我该对审查风格做的 3 个具体改变。

{粘贴评论}

给这些 Prompt 配一个 2026 年的审查机器人

上面的 Prompt 是给聊天窗口或 IDE 里的交互式审查用的。要每个 PR 都自动跑的常驻那一遍,截至 2026 年 6 月有三个正经选项:

工具运行方式模型价格(2026 年 6 月)备注
GitHub Copilot code reviewPR 内联评论,2026 年 3 月起 agenticCopilot 模型含在 Copilot 付费档;2026 年 6 月 1 日起消耗 Actions 分钟数 + 13 倍 premium request 倍率Low/Medium 两档投入;可把修复交给 coding agent
Claude Code Review通过 claude-code-action 内联评论;托管服务 2026 年 3 月上线Claude Opus 4.7 / Sonnet 4.6自托管 Action 任意档可用(自付 API 费);托管服务约 15-25 美元/PR,仅限 Team/Enterprise托管模式不会批准、阻断或自动修复;自托管则完全掌控 prompt
Cursor BugbotGitHub PR 内联评论;Autofix 2026 年 2 月退出 betaBugbot 模型40 美元/人/月加购项;Pro 每月 200 PR 上限,Teams 不限设计上只查 bug;仅支持 GitHub(无 GitLab/Bitbucket)

实操拆分:每个 PR 都用机器人跑机械的第一遍,再用这里的 Prompt 处理高风险 diff(迁移、鉴权、并发),那些场景你想自己掌控审查视角。本地 CLI 审查的话,Claude Code 的 /review 直接读工作区 diff,连贴这一步都省了。

容易踩的坑

  • “审一下这段代码”无焦点——拿到的是浅薄的、什么都查一点的大杂烩。
  • 跳过 AI 标的”低置信度”项不复核。微妙 bug 恰恰藏在那里。
  • 审查模式让 AI 整段重写。审查找问题,重构改问题,两种模式要分开。
  • 没有 severity,所有发现看起来一样紧急,于是你先去修了无关紧要的那条。
  • 发现没 file:line——无法验证,整次审查的证据门槛就塌了。

优化技巧

  • 一次只钉一个维度——bug、安全、性能不要混,混了信号就被稀释。
  • 每条发现都要 file:line,给不出的多半是幻觉。
  • 在 prompt 里写明 severity(Critical / High / Med / Low),让 AI 排序而非只罗列。
  • 用 Claude Code 或 Cursor 时让 agent 从 git 读 diff,比贴片段上下文更全、截断更少。
  • 加一轮反向人格自审(“现在评一下你自己的发现,哪几条最弱?”),动手前先过滤误报。
  • PR 超过 500 行时,先让 AI 列”最高风险的文件”,再只 review 那几个。这比改任何单条 prompt 都更能压噪音。
  • 把 Prompt 和回复存进 PR 评论线,后续 reviewer 能看到 AI 已经查过什么,不重复同一遍。

FAQ

  • AI review 能替代人工 review 吗? 不能。把它当机械那一遍的约 80%:AI 抓空指针、缺失的错误处理、明显的注入,人抓产品意图和上下文漂移。两个都要,别互相替代。
  • 可以拿来跑同事的 PR 吗? 可以,但要披露。补一句”已用 AI 跑了 bug + 安全维度,发现 X、Y”,免得被当成偷偷自动化。
  • 为什么我说”跳过样式”AI 还在标 style? 长输出上的约束漂移。结尾追加一句:“If a finding is about style or formatting, drop it from the output entirely.”
  • Review prompt 应该多长? Prompt 本身 60-150 字;粘贴的 diff 单次 ≤ 约 1500 行,更大的按目录分批,或直接把 git diff 交给 agent 以免被截断。
  • AI 建议的修复我不同意怎么办? 别用。在同一对话里让 AI 替自己的建议辩护;辩护无力,就说明原代码本来没问题。
  • 什么时候可以让 AI 自动应用修复? 只允许 lint 类(命名、未用 import)。逻辑或安全修复绝不自动应用——会把你没意识到接受的 bug 一并带上去。

相关阅读

标签: #Prompt #AI 编程 #代码审查