用多智能体给 PR 做 AI 代码审查:Claude Code 三子代理 + Coordinator 实战
一个人审代码,视角有限、容易疲劳,还会被文件顺序带偏——先看到的文件盯得细,后面的草草了事。2026 年 AI 编程普及后,「人和 AI 一起审 AI 写的代码」成了新共识:用多个智能体从不同专业视角并行扫 PR,再由一个协调者去重、评级、汇总。Cloudflare 内部实测 13 万次审查、中位 3 分钟;Anthropic 也让「有实质评论的 PR」从 16% 涨到 54%。本教程手把手教你用 Claude Code 多子代理搭一套自己的 PR 审查流水线。
先搞懂:为什么是「多智能体」而不是「一个」?
用一句话理解:单 Agent 审代码像一个人又当保安又当保洁又当设计师,容易顾此失彼;多 Agent 是「各管一摊 + 一个总管」。>业界主流架构(Cloudflare 7 专家 + Coordinator、Anthropic 多 Agent + Aggregator)都遵循同一套逻辑:
| 角色 | 盯着什么 |
|---|---|
| 正确性专家 | Bug、边界条件、控制流、安全漏洞、错误处理 |
| 代码健康专家 | 死代码、重复逻辑、过高复杂度、缺失抽象 |
| UX 向导 | 交互一致性、无障碍、错误状态、体验细节 |
| Coordinator(协调者) | 去重多专家意见、评真实严重度、输出一条结构化评论 |
多 Agent 最容易搞砸的就是「不复盘」。没有 Coordinator,每个 Agent 各扔一堆评论,噪音爆炸。所以「并行分析 + 协调去重」是铁律,本教程每一步都围绕它。
Step 1:选方案——三大家怎么选
2026 年主流 AI 代码审查方案,按「集成深度」分三档:
# A. 原生集成(最省心)
# · GitHub Copilot Code Review:PR 自动分配,30 秒内出结果,
# gh pr create / gh pr edit 可直接指派,一键应用修复
# · Anthropic Code Review(Claude Teams/Enterprise):多 Agent + 验证环节过滤误报
# B. 编程助手内触发(灵活)
# · Claude Code:原生 Task 工具派遣子代理,最顺滑
# · Cursor / CodeBuddy / 文心快码 / 腾讯云 CodeArts:装对应审查 Skill
# C. 独立 SaaS
# · CodeRabbit / Greptile:接 GitHub/GitLab,开箱即用,按仓库配置
Step 2:用 Claude Code 多子代理审一个 PR
在 Claude Code 里,用 Task 工具并行派遣三个子代理,每个拿到的文件顺序都不同(避免顺序偏见):
# 在 Claude Code 中,让主 Agent 这样分工:
Task("正确性审查", "审查 PR diff,专找 bug/边界/控制流/安全/错误处理,
输出结构化 JSON:{file, line, severity(HIGH/MED/LOW), issue, fix}")
Task("代码健康审查", "审查同一 diff,找死代码/重复/复杂度/缺失抽象,
同样输出 JSON 列表")
Task("UX 审查", "审查 UI 相关改动,找交互一致性/无障碍/错误态问题,
输出 JSON 列表")
# 三个子代理并行跑,各自只输出 JSON,不互相干扰
顺序偏见是真问题。人类和单 Agent 都更容易仔细看排在前面的文件。让每个子代理拿不同顺序,能从三个不同视角把 PR 翻个底朝天。
Step 3:三个视角各管一摊
关键是给每个子代理清晰的「职责边界」,别让它越界瞎评:
# 正确性专家——只管「对不对」
# 关注:空指针、并发竞态、异常被吞、权限绕过
# 代码健康专家——只管「好不好」
# 关注:重复逻辑、超长函数、魔法数字、可测试性
# UX 向导——只管「用得爽不爽」
# 关注:错误提示友好度、加载态、键盘可达性、对比度
# 三者输出统一格式,方便下一步合并:
# { "agent": "correctness", "findings": [ {file, line, severity, issue, fix} ] }
Step 4:让 Coordinator 去重 + 评级
三个专家的输出汇总后,由一个协调者做三件事:
# Coordinator 的职责:
# 1. 去重:多个专家提到同一处,合并成一条
# 2. 评级:判断真实严重度 HIGH / MEDIUM / LOW
# 3. 输出:一条结构化 Review 评论,按严重度排序
# 伪代码:
reviews = merge(correctness, health, ux)
deduped = dedupe(reviews)
ranked = sort_by_severity(deduped)
post_pr_comment(format(ranked))
没有 Coordinator,审查等于没做。Cloudflare 的内部数据:7 个专家各自留言会有大量重复,靠 Coordinator 去重后,工程师才愿意看。这一步省不掉。
Step 5:验证环节过滤误报
多 Agent 最大的坑是「误报多」。高级做法(Anthropic 同款)是加一道验证:对每个发现做推理——这是真问题还是误判?
# 对每个 finding 做 YES / NOT SURE / NO 判定:
for f in ranked:
verdict = verify_against_code(f) # 对照真实代码行为验证
if verdict == "NO": drop(f) # 误报,丢弃
if verdict == "NOT SURE": keep_low_priority(f)
# 额外:自动过滤掉已有 PR 评论里提过的问题,不刷重复噪音
Step 6:一键应用修复 + 沉淀团队规范
审查的价值在于闭环。Copilot / Claude Code 都支持一键应用建议,开个修复 PR:
# Copilot:Suggestions 一键应用 → Cloud Agent 开新 PR 带修复
# Claude Code:让 Agent 基于 HIGH 级发现直接改代码,提 PR
# 沉淀团队规范(关键!):
# · 把常犯问题写进 AGENTS.md / 编码规范
# · 或用 Memory 机制让 AI 从历史 PR 学团队标准,下次少犯
# · Cloudflare 甚至用 Reviewer 检查「架构大改时有没有更新 AGENTS.md」
AGENTS.md 会过期。它本是写给 AI 看的指引,但架构一变就容易 stale。让审查 Agent 在检测到大改时提醒更新,形成「AI 维护写给 AI 的文档」的正循环。
Step 7:接入 CI,PR 自动触发审查
最后把审查接进持续集成,每次开 PR 自动跑,人只管拍板:
# GitHub:装官方 App(Copilot / Claude / CodeRabbit),
# 新 PR 自动触发审查,零额外配置
# 自建(Claude Code 类):在 CI 里调用审查 Skill
# on: pull_request
# jobs:
# review:
# - run: claude-code review --pr ${{ github.event.pull_request.number }}
# 成本参考(Cloudflare 内部):单次约 $0.98~1.19,
# 轻量版可压到 $0.20,大头走便宜模型、复杂走贵模型做路由
常见问题速查
| 你遇到的现象 | 大概率原因 & 解决 |
|---|---|
| 评论一堆但都是噪音 | 缺 Coordinator 去重;加协调者合并评级 |
| 误报太多被关掉 | 没加验证环节;对每个发现做 YES/NOT SURE/NO 过滤 |
| 后面的文件审得粗 | 顺序偏见;让子代理拿不同文件顺序 |
| 成本太高 | 模型路由:文档类走便宜模型,安全/架构走贵模型 |