编者摘要:OpenCodeReview(OCR)是阿里开源、AI 驱动的代码审查 CLI 工具,前身是集团内部 AI 评审助手,经数万开发者大规模验证后对外开源。核心采用确定性工程 + Agent 混合架构,区别于纯通用 LLM Agent 方案。确定性工程层负责文件筛选、关联文件打包、规则匹配、评论定位校验,保障流程约束,解决行号漂移、漏审等问题;Agent 层专注动态上下文检索与缺陷分析,配套代码评审专用工具集。
工具支持两种评审模式:ocr review基于 Git diff 做增量 PR / 提交评审;ocr scan全文件扫描,用于陌生代码审计。基准测试基于 aacr-bench 数据集,同模型下对比 Claude Code,OCR 准确率、F1 更高,Token 消耗仅约 1/9,速度更快;代价是召回率偏低,属于低误报优先的取舍。
可接入任意 LLM 端点,支持委托模式,无需额外配置 API Key。适配 GitHub/GitLab CI,提供 Cursor、Claude Code 等编程 Agent 插件,支持会话断点续跑、结果导出 JSON。定位是人工 Code Review 辅助工具,无法完全替代人工审查。
10 个关键问题 Q&A
ocr review和ocr scan区别?
ocr review读取 Git diff,评审代码变更(PR 场景);ocr scan扫描完整文件,用于无 diff 的代码库审计。
附录:OpenCodeReview(OCR)
阿里开源、AI 驱动的代码审查 CLI 工具,前身是阿里内部 AI 代码评审助手,经过数万开发者、数百万缺陷识别的内部验证后对外开源。
一、定位
OpenCodeReview(简称 OCR):混合架构(确定性工程 + Agent)的代码审查工具,读取 Git diff,调用可配置 LLM 输出行级结构化评审意见。
-
不仅看 diff 片段:Agent 可读取完整文件、检索代码库、跨变更文件获取上下文,做深度评审 -
两种工作模式 ocr review基于 Git diff 评审 PR / 提交变更(日常 MR/PR 最常用) ocr scan全文件扫描,适合陌生代码库审计,不需要变更 diff
二、核心架构:确定性工程 + Agent 各司其职(项目最大亮点)
✅ 确定性工程层(强约束,减少幻觉、位置漂移)
-
文件精准筛选、过滤,保证重要改动不漏 -
智能文件打包:关联文件合并成评审单元,拆分为独立子 Agent 并发执行;超大变更更稳定,子任务上下文隔离 -
精细化规则匹配:按文件特征绑定评审规则,行为稳定,噪声可控 -
独立定位 + 反思组件:专门解决 AI 代码评审常见痛点:行号不准、问题位置漂移
✅ Agent 层(负责动态决策、上下文召回)
-
针对代码评审场景深度优化的提示词模板,大幅降低 Token 消耗 -
定制化精简工具集:基于内部海量评审轨迹,对通用 Agent 工具集做取舍,只保留代码审查高价值能力,行为更可控
设计取舍思路:用工程兜底保证稳定,让 Agent 只做它擅长的动态上下文理解,解决纯通用 Agent(Claude Code 等)做 CR 的几个经典问题:
-
大变更下选择性漏审文件(偷懒) -
缺陷行号偏移、位置对不上 -
输出不稳定,提示词微小改动结果剧烈波动
三、基准测试结论(aacr-bench 数据集)
数据集:从 50 个热门开源仓库精选200 个真实 PR、覆盖 10 种语言,80 + 工程师交叉标注,共 1505 个真实缺陷。 对比基准:同底层模型下的通用 Agent(Claude Code)
-
✅ 准确率 Precision、F1 更高,误报少,减少人工核验成本 -
✅ Token 消耗仅约 1/9,评审速度更快 -
⚠️ 召回率 Recall 更低:产品取舍 —— 优先压低误报、降低人工负担,接受少量漏报,追求低噪声评审
指标释义
-
F1:准确率 + 召回率调和均值,综合评审质量 -
Precision:AI 报出来的问题里,真实有效的比例(越高,假阳性越少) -
Recall:代码真实缺陷里被 AI 发现的比例(越高,漏检越少) -
Avg Token:直接决定 LLM API 成本 -
Avg Time:影响 CI 流水线等待时长
四、使用方式(CLI)
前置依赖
Git >= 2.41(依赖 Git 生成 diff、检索仓库)
安装
npm install -g @alibaba-group/open-code-review
其他方式:一键脚本、Release 二进制包、源码编译
快速流程
-
配置 LLM 服务商与模型(API Key)
ocr config provider
ocr config model
-
执行评审
# 评审当前工作区所有变更
ocr review
# 对比两个分支
ocr review --from main --to feature-branch
# 评审单个commit
ocr review --commit abc123
# 全库/目录扫描(不依赖diff)
ocr scan
ocr scan --path src/internal
# 输出JSON结果
ocr review --format json --output result.json
-
委托模式 ocr delegate:交给编程 Agent(Cursor / Claude Code 等)调用评审能力,无需单独配置 OCR 的 LLM Key,由宿主 Agent 自身模型执行评审。
五、生态与集成
-
CI:GitHub Actions / GitLab CI / Gerrit 支持,流水线自动 CR -
IDE / 编程 Agent 插件:Cursor、Claude Code、OpenCode、Codex 等,支持斜杠命令 / Agent Skill 调用 -
配套能力 -
Session 会话:可暂停、恢复长时间扫描 / 评审 -
Viewer:浏览器查看评审会话,标记问题已修复 / 忽略 -
OpenTelemetry 可观测埋点 -
MCP 扩展:外部工具扩展评审 Agent 能力
六、优缺点总结
优势
-
阿里内部大规模验证,工业级场景沉淀,不是玩具项目 -
混合架构解决通用 Agent 代码评审最大痛点:行号漂移、不稳定、大变更漏审 -
极低 Token 开销,API 成本友好,适合 CI 批量跑 -
支持两种模式:增量 diff 评审 + 全库审计扫描 -
可接入任意兼容的 LLM 端点,不绑定模型厂商;支持委托模式复用 Agent 已有模型
局限
-
召回率低于通用 Agent,会漏掉部分缺陷,不能完全替代人工 Code Review,只能作为辅助 -
依赖 Git 2.41+ -
规则体系需要一定学习,深度自定义需要阅读规则文档

