Skip to main content
返回博客
博客

如何用 AI Agent 自动化代码审查

搭建一个自动化的 AI 代码审查流程:一个 Agent 写代码,另一个 Agent 审查代码,并给出实用示例和配置。

代码审查是软件开发里价值最高的活动之一。它能发现 bug、统一标准,并让团队共享知识。它也是一个瓶颈 - 审查队列会堆积,而审查者还要在自己的工作和新的 PR 之间来回切换上下文。

AI Agent 可以立即审查代码。只要设置得当,你就能把整个流程自动化:一个 Agent 写代码,另一个 Agent 审查,发现问题后再修复并复审 - 全程无需手动介入。

下面是具体做法。

基本模式

Writer Agent → Review Agent → Writer Agent (fix) → Review Agent (approve)
  1. Writer Agent 实现一个功能或修复。
  2. 完成后,输出会自动发送给 Review Agent。
  3. Reviewer 分析改动并报告问题。
  4. 问题会被路由回 Writer 进行修复。
  5. 这个循环会一直重复,直到 Reviewer 批准(或者达到轮次上限)。

第 1 步:定义审查标准

Review Agent 需要清晰的标准。没有标准时,它只会给出诸如“建议加上错误处理”这类泛泛的反馈,没什么用。

好的审查提示词应包含明确标准:

Review the changes for:
1. Correctness — Does the logic handle all cases, including edge cases?
2. Security — Are there SQL injection, XSS, or authentication bypass risks?
3. Performance — Are there N+1 queries, unnecessary allocations, or blocking calls?
4. Error handling — Are errors caught, logged, and propagated correctly?
5. Consistency — Does the code follow existing patterns in the codebase?

If all criteria pass, respond with "LGTM" (Looks Good To Me).
If issues found, list each one with the file path and line number.

LGTM 这个关键词很重要 - 它表示审查通过,会停止路由循环。

第 2 步:设置 Writer Agent

给 Writer Agent 一个聚焦的任务:

Implement rate limiting for the /api/auth/login endpoint.
Use a sliding window algorithm with a limit of 5 attempts per minute per IP.
Store the window in Redis using the existing Redis client at src/lib/redis.ts.

任务越具体,产出的改动越具体,审查效果也越好。

第 3 步:配置路由连接

将 Writer 连接到 Reviewer,并使用如下设置:

设置值原因
Triggeron-idle等待 Writer 完整结束后再审查
Transformai-routing让 AI 生成上下文感知的审查提示词
Max rounds3防止无限审查循环
Stop keywordLGTMReviewer 批准时终止
Cooldown5s给 Agent 足够时间完成完整响应

ai-routing transform 在这里很关键。它会读取 Writer Agent 的完整响应(对于 Claude Code,则通过 JSONL session 解析),理解实现了什么,然后生成一个包含具体改动文件和实现上下文的审查提示词。

第 4 步:配置反向连接

要让审查循环工作,你还需要从 Reviewer 回到 Writer 的连接:

设置值原因
Triggeron-idle等待完整审查后再回传
Transformai-routing将审查意见转换为修复指令
Max rounds3与正向保持相同上限
Stop keywordLGTM如果 Reviewer 已批准,就不要回传

反向 transform 会把审查意见转换成可执行的修复指令:"修复 src/middleware/rate-limit.ts:42 里的限流绕过问题 - 这里的 IP 提取没有处理代理后的 X-Forwarded-For 头。"

你会看到什么

一次典型的自动化审查循环:

第 1 轮(Writer → Reviewer):

  • Writer 在 3 个文件里实现了限流。
  • 路由器提取实现摘要并发送给 Reviewer。
  • Reviewer 发现 2 个问题:没有处理 X-Forwarded-For,也没有针对 429 响应的测试。

第 2 轮(Reviewer → Writer → Reviewer):

  • 路由器把审查意见转换成修复指令。
  • Writer 修复这两个问题,并补上缺失测试。
  • 路由器把更新后的实现发给 Reviewer。
  • Reviewer 回复 "LGTM - 限流正确处理了代理头,并且有测试覆盖。"

停止:LGTM 关键词触发停止条件。总耗时大约 8 分钟,2 轮。

什么时候自动审查最有效

  • 聚焦变更 - 一个范围清晰的功能或 bug 修复。大而散的改动会产生噪声很大的审查结果。
  • 标准明确 - 你能清楚定义什么叫“好”。比如带有 OWASP 标准的安全审查,或带有明确 SLA 的性能审查。
  • 迭代优化 - 第一版实现大约 80% 正确,只需要打磨,而不是完全重写。

什么时候应该用人工审查

  • 架构决策 - AI Agent 审查的是实现质量,不是方案是否正确。
  • 跨团队影响 - 影响其他团队的改动,需要人类对组织优先级的判断。
  • 敏感代码 - 认证、加密、金融逻辑,除了 AI 之外仍然需要人类眼睛。

自动化 AI 审查是对人工审查的补充,不是替代。把它当成第一道筛查,先处理机械性问题,这样人工审查者就能专注于战略性问题。

自动审查工具

你可以手动用两个终端窗口搭建这个流程,但手动交接(复制审查输出、重写成修复指令、再粘贴回 Writer)既麻烦又容易出错。

MadoHub 可以自动化整个流程。把两个终端 Agent 放在画布上,连上线,配置 trigger/transform/stop,然后启动 Writer。路由系统会负责剩下的部分 - 提取、转换、投递以及循环终止。

总结

自动化 AI 代码审查是多 Agent 工作流里 ROI 最高的应用之一。它:

  • 快 - 审查在几秒内完成,而不是几个小时。
  • 稳定 - 每次审查标准都一致。
  • 可迭代 - 问题会立刻修复,而不是等到后续 PR。
  • 互补 - 与人工审查结合,覆盖更全面。

搭建只要 5 分钟,而节省的时间会在每天持续累积。