OpenCodeReview:阿里把代码评审拆成「确定性工程 + Agent」两半

阿里开源的 AI 代码评审工具 OpenCodeReview(下称 OCR,仓库 alibaba/open-code-review)在 2026 年 8 月 25 日发布 v1.10.0。

它是一个基于 Agent 的代码评审 CLI:读取 git diff,把变更文件交给可调用工具的 LLM,输出带行号定位的结构化评审意见,还能对没有 git 历史的目录做全文件扫描。

它的关键在于架构——确定性工程 + Agent 混合:凡是「不能出错」的环节(选哪些文件、怎么分组、套哪些规则、意见定位到哪里)全部由代码决定,LLM 只负责动态决策与上下文检索。项目公开的基准(AACR-Bench)显示,与通用 Agent(Claude Code)用同一模型对比,Precision 与 F1 更高,token 消耗约为 1/9,评审更快。Recall 更低是有意取舍——宁可少报,也不要噪音。

从阿里内部工具到开源项目

OpenCodeReview 由阿里集团内部官方 AI 代码评审助手孵化而来:内部使用约两年,服务数万开发者,识别数百万个代码缺陷后开源,采用 Apache-2.0 协议。仓库目前 21.4k star、1.6k fork,语言构成为 Go 71.3% + TypeScript 14.1%。除了审查 diff(工作区模式、分支范围模式、单 commit 模式),ocr scan 还支持对没有 git 历史或不依赖 diff 的目录做全文件扫描,适合审计陌生代码库。

通用 Agent 评审的三个典型失败

现成的通用编程 Agent 直接评审时,有三类反复出现的失败场景,项目 README 逐一列出:

  • 覆盖不全:变更集一大,Agent 会选择性跳过部分文件;
  • 位置漂移:报的问题和实际代码位置对不上,行号或文件引用偏移;
  • 质量不稳定:自然语言驱动的评审技能难调试,提示词稍有变化质量就波动。

根因是同一句话:纯语言驱动的流程缺少硬约束。

确定性一半:接管「不能出错」的步骤

确定性工程负责必须正确执行的环节:

  • 精确文件选择——由代码计算哪些文件需要评审、哪些要过滤,保证不漏掉重要的变更;
  • 智能文件打包——把相关文件(如 message_en.properties 与 message_zh.properties)分成一组,每组一个隔离上下文的子 Agent,分批并行,大变更集也能稳定;
  • 模板引擎规则匹配——按文件特征匹配对应的评审规则,比自然语言指令更稳定、可预测;
  • 外部定位与反思模块——独立的两个模块修正评审意见的位置与内容准确性。

Agent 一半:只留判断与检索

Agent 只保留它擅长的两部分:

  • 场景化提示词——为代码评审深度优化,提升效果同时降低 token 消耗;
  • 场景化工具集——从大规模生产 tool-call trace(调用频率分布、单工具重复率、新增工具对调用链的影响)中蒸馏出的专用工具集,比通用 Agent 的工具包更稳定。

基准:同一模型下更高 Precision、约 1/9 token

项目公开了 AACR-Bench 基准:50 个开源仓库、200 个真实 PR、10 种语言,80+ 高级工程师交叉验证,1505 条标注 ground truth。与通用 Agent(Claude Code)在同一底层模型下对比,OCR 的 Precision 与 F1 显著更高,平均 token 消耗约为通用 Agent 的 1/9,单次评审耗时也更短。Recall 较低是设计上的主动选择:Precision 优先于 Recall,宁可少报也不要噪音。以上为项目自研基准结果,建议在自有代码库上复测验证。

上手路径

  • 前置要求:Git >= 2.41(用于 diff 生成与代码检索);
  • 安装:npm install -g @alibaba-group/open-code-review,安装后命令行可用 ocr;
  • 配置:ocr config provider、ocr config model 选择内置 provider 或自定义端点,命令行向导会自动测试连通性;
  • 评审:ocr review 审工作区全部变更,ocr review --from main --to feature-branch 审分支范围,ocr review --commit abc123 审单个 commit;ocr scan 做全文件扫描;--format json --output result.json 可把结果输出给 CI 或宿主 Agent;
  • Delegation Mode(ocr delegate):让替你写代码的编码 Agent 用自己的模型执行评审,无需配置 OCR 的 API key,OCR 只负责文件选择与规则解析;
  • 集成:支持 GitHub Actions、GitLab CI、GitFlic CI、Gerrit;提供 MCP Server 扩展外部工具;Session Viewer 可在浏览器回放评审会话,中断的评审可用 --resume 恢复。

对开发者的实际价值

OpenCodeReview 的实际做法是:确定性代码兜底流程,LLM 只做判断。这套分工让评审结果可复现、可调试、成本可控。如果团队正在用通用 Agent 做代码评审,并遇到漏文件、意见位置漂移、质量忽高忽低的问题,OCR 值得在自有代码库上直接试用;即使不换工具,「把不能错的事交给代码」也是给 AI 编码流程加约束的一条现成思路。