代码审查

AI 代码审查:更多上下文,更少缺陷

2 分钟阅读

代码审查往往缓慢且质量不一:diff 在队列中等待,反馈则取决于谁在线。

只有当审查者掌握真实的代码库上下文时,AI 代码审查才能发挥作用。

当审查者已掌握完整 代码仓库、近期变更、测试以及一套明确的规则时,AI 代码审查效果最佳。具备这些上下文的 AI 代码审查,能够发现只盯着单个 diff 的独立 机器人 永远无法察觉的问题。审查作为产出变更的同一系统的一部分时,最具价值。

代码审查发生了哪些变化

编程智能体并没有催生冗长的 PR,但它们让原有的审查逻辑更快失灵了。

使用编程智能体的开发者正在交付更大规模的变更。来自数百万个 Cursor 会话的数据显示,每个 PR 的新增代码行数 (p75) 同比增长约 2.5 倍。变更行数超过 1,000 行的超大型 PR 在合并中所占的比例持续上升,并且随着智能体和模型能力提升,这一趋势在 2026 年 1 月明显加速。智能体 会话也变得更深入:在最近两个月的时间窗口中,每次会话的平均工具调用次数上升了约 30%。由 AI 编写的代码也有更多被保留下来。自 2026 年初以来,60 分钟后仍然保留的已接受 AI 代码行占比,从约 76% 上升到 81%。在没有单独人工接受 diff 步骤的情况下就进入 commits 的智能体 生成变更,在这段时间里增长了 5 倍以上。

人工审查能力并没有随着这些变化同步提升。传统的同行代码审查建议一直认为,认真阅读几百行代码,大致还是能保证质量的范围。

当变更量超过能够逐一读完每个 diff 的资深工程师数量时,AI 代码审查就是帮你守住质量门槛的方式。

进入审查流程的代码里,越来越多是借助 AI 助手写出来的。人类很擅长发现“这不符合我们这里的构建方式”这类问题;但面对一个庞大、看起来合理、基本正确的智能体补丁时,要从中揪出那个细微却关键的错误,就没那么擅长了,而真正理解仓库上下文的审查者正能在这里发挥作用。编写大规模变更和检查它们是两种不同的技能,而审查就是后者。

启动 AI 代码审查前需考虑的问题

如果您正在评估 AI 代码审查工具,请先梳理这些概念。

什么是 AI 代码审查?

AI 代码审查是一类软件:它会读取一次变更 (通常是一个 PR,有时是本地 diff) ,并在合并前指出其中的缺陷、回归和风险。真正实用的版本关注的不只是眼前改动的几行代码,还会拉取相关文件、测试、配置和团队规则。较弱的版本则只是用文字复述 diff,或者一味挑剔注释和命名。

What the reviewer can seeDiff onlyStandalone botChanged linesStyle and naming nagsRestated patchMisses breaks elsewhereFull contextSame system that wrote the changeFull repoTests and recent changesTeam and repo rulesCatches the subtle break
A weak AI reviewer only sees the diff. A useful one also has the repo, tests, recent changes, and team rules.

它与 linting 或 CI 有何不同?

Linters 和类型检查器负责落实那些您本就知道该如何编写的规则。CI 则运行您已经自动化的各项检查。AI 审查处理的是剩下这部分问题:逻辑错误、竞态条件、身份验证失误、会影响几层目录之外的改动,以及文档与实际行为不一致的问题。它与 CI 有重叠,但不能取代 CI。

AI 代码审查会取代人工审查吗?

不会。它改变的是人们把时间花在哪里。毕竟,人工审查意见中只有大约一半最终会在同一个 PR 中促成修改。健康的审查文化也包括后续修复备注和 FYI 背景信息。您需要先清除那些高置信度、机器可处理的缺陷,让人们继续专注于架构、产品风险,以及模型目前还不具备的团队隐性知识。

什么会让 AI 审查变得嘈杂?

这类噪声,来自机器人给出的人们并不想看到的评论。吹毛求疵的风格提醒、没有任何失败测试作为依据的模糊“添加测试”留言,以及无法发现缺陷的重写建议,都会让人们逐渐忽略审查结果。应区分模型能发现的问题,与人们真正希望它标出来的问题。AI 代码审查应标出真实缺陷、误提交、性能和安全问题,以及文档与代码不一致之处。当 Graphite 将其 AI 审查聚焦于这部分重叠区域 时,约 52% 的评论最终促成了代码修改 (与人工审查者的比例大致相当) ,点踩率低于 4%。

我们应该衡量什么?

解决率:在合并时,被标记的问题是否真的在最终代码中修复了?解决率胜过评论量。

这也是我们用来改进 Bugbot 的指标:在 40 次实验中,解决率从 52% 提升到超过 70%,每次运行标记的缺陷数从 0.4 提高到 0.7,每个 PR 中已解决的缺陷数从大约 0.2 提高到约 0.5,并且 每月审查的 PR 超过两百万个。到 2026 年 5 月,默认投入级别下的解决率已达到约 80%,也就是到合并时约 80% 的缺陷已被解决。如果你的解决率下降,而评论量上升,那这个机器人就是在制造噪音。

Bugbot 仪表盘会展示每个代码仓库随时间变化的解决率,以及发现和修复的问题数量,帮助你判断审查是否发现了真正的问题,并在扩大机器人评论范围前将这些问题解决。

代码审查应该在何时进行:本地、PR 上,还是两者都要?

两者都要,但分工不同。本地审查 (在智能体任务之后、push 之前) 能在上下文还很清晰、讨论串尚未形成时发现问题。PR 审查则是团队协作的约定:共享规则、共享历史、共享合并门槛。偏重安全的检查放在哪一侧都可以,取决于您的交付方式。

我们是否需要让审查工具和智能体集成在同一个产品中?

您可以购买独立的审查工具。很多团队都会这么做。代价是需要来回切换上下文,而且对代码是如何产生的也只能看到较为有限的一面。当审查在编写变更的同一系统中运行时,它已经知道当前打开的文件、代码仓库映射,以及您在代码旁维护的规则。修复项可以深度链接回编辑器,或直接启动一个已载入该问题的智能体。这种循环很难靠后加上去的方案来伪造。

如何在 Cursor 中运行 AI 代码审查

Cursor 的流程是:先在编辑器中进行本地审查,再由 Bugbot 审查 PR,随后通过修复循环回到同一套工具链。

Where review runsLocalAgent Reviewbefore you pushPull requestBugbotteam merge gateFix loopCursor or Cloud Agentsame toolchain
AI code review in Cursor runs locally in the editor, then on the pull request, then back into a fix loop.

本地。 完成智能体工作后,运行 智能体 Review。你可以在智能体输入框中输入 /agent-review,也可以从 Source Control 选项卡运行它,将本地更改与主分支进行比较,或开启每次 commits 后的自动审查。push 前,还可以通过 /review-bugbot/review-security 技能在本地运行 Bugbot 或 Security 智能体。趁会话仍保留上下文时,解决明显问题。

在 PR 上。 Bugbot 会审查 GitHub、GitLab 和 Bitbucket 上的 PR。在 .cursor/BUGBOT.md 中定义团队不变量,并配合团队规则和代码仓库规则使用。学习规则 (@cursor remember) 会将反馈纳入后续运行。在扩大评论类别前,请先在 Bugbot 自动化中关注解决率。

修复循环。 发现项会显示在 PR 中,并提供跳转回 Cursor 的入口 (Fix in Cursor 和 Fix in Web) 。Bugbot Autofix 可以启动云端智能体来提出修复方案。在安全方面,Cursor 的 Security Agents 覆盖两项工作:Security Reviewer 在合并前检查 PR,Vulnerability Scanner 则扫描静态代码库。

开始。 文档涵盖端到端的设置流程:连接代码仓库、选择哪些代码仓库和人员会触发审查、设置投入级别,以及配置 .cursor/BUGBOT.md。请参阅 cursor.com/docs/bugbot

自动化分派与审批

发现缺陷并不是代码审查的全部工作。两项 Cursor 自动化功能可处理其中的流程性环节。

自动批准低风险变更。 Approval Agents 会根据风险为每个 PR 评分,并批准达到您所设标准的 PR。文案微调或配置升级无需等待人工即可合并。超过您风险阈值的变更会被暂缓处理。Bugbot 和 Security Agent 的发现项会纳入这一决策,确保高风险变更不会被轻易放行。

分派给合适的审查者。 当 PR 需要人工处理时,Approval Agents 会根据其涉及的代码库部分,按照您为各区域定义的分派策略分配审查者。变更会直接交给负责该代码的团队,而不是进入共享队列。

让审查贴近代码

AI 代码审查让团队在智能体不断扩大变更规模、加快变更速度时守住质量门槛。真正有效的版本具备代码库上下文、收敛的评论策略,以及能跟踪发现项是否被修复的指标。

审查应该尽可能贴近代码产生的位置,沿用同样的规则和同样的修复路径。为一个繁忙的代码仓库启用 Bugbot,在 Bugbot 自动化 中观察一周的解决率,然后再决定哪些类别值得增加覆盖量。

分类: 代码审查