代码审查是软件工程中保证代码质量的关键环节,但在快速迭代的团队中,人工审查的效率往往跟不上代码提交的节奏。阿里巴巴将内部使用两年的 AI 代码审查助手 Open Code Review 开源,免费提供给社区使用。在内部部署期间,该工具服务了数万名开发者,发现了数百万个代码缺陷——这个规模是目前大多数 AI 代码审查工具没有经历过的验证强度。

Open Code Review 采用混合架构,这是它与通用 Agent 的核心区别。纯 LLM Agent 做代码审查时面临几个实际问题:变更集大时覆盖不完整,报告的问题位置漂移,质量不稳定。Open Code Review 的混合架构将工程规则和 LLM Agent 组合,各展所长。工程规则层负责精确的文件选择和打包、细粒度规则匹配、外部定位和反射模块,确保没有重要变更被遗漏;LLM Agent 层负责动态决策和场景化提示优化,处理需要理解和推断的部分。
内置规则覆盖了几类常见漏洞类型:空指针异常(NPE)、线程安全问题、XSS 跨站脚本漏洞和 SQL 注入风险。对于中国互联网团队来说,这些恰恰是日常代码中最常见、也是最危险的问题类型——NPE 导致的生产事故数不胜数,SQL 注入在金融和电商系统中是安全审计的重点,XSS 在用户生成内容的场景中几乎不可避免。这些规则的嵌入,意味着工具在启动时就已经带有了国内团队最需要的审查能力。
这些规则通过四层优先级链解析:CLI 覆盖(最高优先级)、项目配置、全局配置、系统默认(最低优先级)。团队可以在项目根目录放置 .opencodereview/rule.json 来定义项目特有的规则,也可以在全局配置中定义团队通用规则。这个设计让团队可以针对自己的代码库定制审查规则,同时保持全局默认规则的可用性。
工具支持 OpenAI 兼容和 Anthropic 兼容(Claude 模型)两种 LLM 接口。配置方式灵活:可以通过交互式 ocr config set 命令配置,也可以通过环境变量注入,后者优先级最高且适合 CI/CD 场景。Claude Code 用户可以直接将其安装为 Skill 或 Plugin,在开发时直接调用,无需离开当前的开发环境。
npm 全局安装后,ocr 命令全局可用。常用命令包括:ocr review 审查工作区变更,ocr review --from main --to feature-branch 审查分支 diff,ocr review --commit abc123 审查单个提交,ocr review --preview 预览文件但不调用 LLM,ocr review --format json 输出 JSON 格式供 CI/CD 集成。并发数、超时时间、观众模式等参数均可配置,满足不同规模和节奏的团队需求。
该工具使用 Go 开发(占代码总量的 70.2%),TypeScript 占 16.9%,体现了对性能的重视——代码审查工具通常需要在短时间内处理大量代码,对性能更敏感。
对于有大规模代码审查需求的团队,这是一个经过生产验证的选择;对于 AI coding 工具链的开发者,阿里巴巴在内部沉淀的"Deterministic Engineering + Agent"混合架构思路值得参考——将规则引擎和 LLM Agent 的优势结合,可能是未来 AI 辅助编程工具的主流设计模式。
参考来源:https://github.com/alibaba/open-code-review