AutoDev Code Review Agent:应对 10 倍代码量的 Agentic 代码审查

在上一篇文章《以 ROI 为中心的 AI 代码检视体系与分级》里,我们介绍了在不同的系统 分级分类的策略下,我们应该如何构建 AI 代码检视体系。自然而然的,我们做一个关于 Code Review 的研究,肯定不是为了好玩,所以在这一篇文章里, 我们将介绍 AutoDev 的新 Agent,基于多端架构的 SubAgents 体系的 Code Review Agent。

你可以通过

  • 安装 AutoDev CLI:npm install -g @autodev/cli
  • 下载 AutoDev Desktop 来体验:https://github.com/unit-mesh/auto-dev/releases (compose-0.2.1 版本)

为什么需要变革:10 倍代码生成带来的压力?

但当 Vibe Coding 进入主流后,开发者日均代码量直接进入 10× 区间:由 Agent 生成的代码多、文件多、变更密集、每次迭代都有大量 Diff、 手工审查不再具备成本效益同。

因此,传统的「把 diff 丢给 LLM」的方式在复杂工程里结果非常差 —— 尽管原来也不好。

旧时代的 AutoDev Review 架构(插件版)

在 AutoDev 的 IDE 插件中,我们针对的是非 Vibe Coding 时代的编程方式,采用的是基于提示词工程的方式:

  1. 代码上下文(Framework + 工程结构)
  2. IDEA 中的 Lint (Intention)信息
  3. AST + 结构信息(Structure Diagram / 静态分析)
  4. 需求来源(来自 Jira / GitHub Issue / Kanban)
  5. 变更压缩(Diff Prompt 生成器)

这种方式对于传统的小步提交和“少量代码变更“是相对有一定小效果的。尽管,我们还允许自定义自己的 Agent 去远程获取相关的业务上下文。 作为一个工程专家,我并不看好这种方式。现在的实现千奇百怪,很难有一个提示词能解决所有的问题。

Agentic Review:下一代审查思路

就结论来说,并不会。我们可以看到 Coding Agent 的一系列问题,最后你给了再多的东西,他也没完成你的任务 —— 多数时候可能完成了 80%,还可以你 拉了一坨大的。只是对于核心的软件开发系统来说,Code Review 是非常有必要的,可以改善质量,毕竟要花费大量的时间。对于这些系统来说,他们的下一代 Code Review 必然走向 Agentic 化:

Review 不是一次回答,而是一个具有多步骤推理、主动拉取上下文、调度工具链能力的“审查流程”。

除此,Agentic 的方式就意味着,我们有可能能解决协同 Review 的问题。毕竟,我们不能看你们的代码,但是只要系统间关系了,让 AI 作为中间人去看, 成本反而更低了。

演进:面向多系统、多仓库的 AI Code Review

现在的软件往往有着非常复杂的软件架构,诸如于多系统集成的微前端应用,小程序化的移动应用,还有不合理微服务架构的后台应用,他们往往是由成十上百个 子仓库或者系统集成的。系统之间靠着脆弱的口头协议、不定期更新的文档、多版本的统一协议(如 Protobuf)来构成的,口头有多脆弱系统就能多多少问题。

当然,Agent 并不能很好地解决团队协作好不好的问题,如果团队协作得好,那么 Agent 就可以辅助解决潜在的 bug。诸如于,基于需求 id 去贯穿全流程的系统间的协同代码审查。

AutoDev Review:多端 Agentic 代码审查

既然 10 倍代码生成是趋势,那我们就需要构建 10 倍速的 review。因此,我们在新的 AutoDev MPP 架构下,构建了 AutoDev Review Agent。

作为 AutoDev 的一部分,AutoDev Review Agent 与 AutoDev 的其它 Agent 一样,可以运行在多端上:AutoDev CLI、Desktop、Android(远程方式)、iOS(远程方式)、Web(远程方式)、AutoDev Server。

当然,更理想化的方式是将 AutoDev CLI 集成到流水线上,可以执行修复,再验证,再给 PR。也可以考虑类似于 CodeRabbit 构建独立的 sandbox 以在其中执行和修复。

AutoDev Review Agent 的能力

从上图中,你可以看到 AutoDev Review 的三个阶段:

  • Lint Analysis。即基于提交,针对变更文件进行一系统的 Lint 分析,除了语言本身的 lint,还有诸如 checkov、semgrep 等安全相关 Lint。
  • Issues Analysis。基于 Lint 与完整的变更函数、类(使用 mpp-codegraph 分析语法树),再结合 LLM 的 review 能力总结 issue。
  • Suggested Fixes。针对 issue 生成修复代码。

当然,作为一个一周迭代出来的版本,我们还有非常多的 bug 与不足之处,欢迎在 GitHub 上提出 issue 和 PR。

AutoDev Review Agent 的实现

CodeReviewAgent 是 mpp-core 的入口,负责把“变更 → 分析 → 结论 → 修复建议”这条流水线串起来。实现上遵循模块化与可编排(orchestrated)原则:工具(linters、静态分析器、运行时检查)、LLM 服务与 UI/持久层通过清晰的接口互相联动,既能在 CLI/Server 中批量运行,也能在 Desktop/Browser 中实时交互。

核心模块与职责

  • ToolOrchestrator:工具调度层。根据仓库语言、变更类型和策略表决定要运行哪些检查(比如 ESLint、Checkov、Semgrep、自定义静态分析器),并并行化执行、采集结果。对外暴露可注册的 LinterProvider 接口,第三方工具可以按插件方式接入。
  • LinterRegistry:工具元数据和能力声明库。包含工具的 input/output schema、运行开销、信任级别(e.g. info/warning/error)与降噪规则,供 ToolOrchestrator 调度和后续规则引擎过滤。
  • GitOperations / Workspace:变更采集层。负责从提交/PR 中抽取 diff、文件快照与工作树,提供增量读取和片段级别的文件访问 API(支持只读取变更行范围,减少 I/O)。
  • DiffParser:补丁解析器。把原生 diff 转成结构化 patch(文件 → hunks → 行号映射),并将“变更的行”映射到 AST 节点(函数/类/方法)供下游定位。
  • CodeAnalyzer(基于 mpp-codegraph):把变更从行级提升到语义级。实现“变更行 → 所属函数/调用链/依赖图”的映射,支持跨文件/跨仓库的简单影响分析(call graph traversal、protobuf/schema 追踪等)。
  • LintExecutor:仅对变更范围执行静态检查(change-scoped linting),并把工具结果归一化为 Issue 事件。为提升性能引入了内容缓存(短时间内重复分析命中缓存,默认 TTL ≈ 30s),并支持按优先级短路(当关键安全规则触发时可快速 escalte)。

实现上把核心审查逻辑放在 mpp-core 中,提供纯逻辑的 CodeReviewAgent(无 UI、无平台依赖)和轻量的导出绑定(如 JsCodeReviewAgent)。UI 层通过 ViewModel/StateFlow 订阅分析进度,实现 Desktop/Browser/CLI/Server 的一致交互体验。

小结:走向 10× 时代的代码审查新范式

AutoDev Review Agent 旨在解决 Vibe Coding 时代“10× 代码量”带来的审查压力,通过 Agentic、多步骤、可编排的方式,把传统的“看 diff”升级为完整的审查流程。它在多端运行,串联 lint、语义分析与修复建议,能够在复杂仓库和多系统环境中保持高质量审查。尽管仍在快速迭代, 但已经为未来的自动化、高速代码审查奠定了基础。

关于我

Github: @phodal     微博:@phodal     知乎:@phodal    

微信公众号(Phodal)

围观我的Github Idea墙, 也许,你会遇到心仪的项目

QQ技术交流群: 321689806