在上一篇文章《以 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 时代的编程方式,采用的是基于提示词工程的方式:
- 代码上下文(Framework + 工程结构)
- IDEA 中的 Lint (Intention)信息
- AST + 结构信息(Structure Diagram / 静态分析)
- 需求来源(来自 Jira / GitHub Issue / Kanban)
- 变更压缩(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、语义分析与修复建议,能够在复杂仓库和多系统环境中保持高质量审查。尽管仍在快速迭代, 但已经为未来的自动化、高速代码审查奠定了基础。
或许您还需要下面的文章: