项目名:OpenCodeReview(alibaba/open-code-review) GitHub:https://github.com/alibaba/open-code-review | 官网:https://open-codereview.ai 版本:持续更新中 | 协议:Apache-2.0 | Star:21000+(截至 2026-08-24) 语言:Go | 适用:Windows / macOS / Linux | CLI 命令:ocr

开篇:让 Claude Code 给你做 Code Review,它老是「挑肥拣瘦」
现在的 AI 编程工具都能做代码审查,但真用起来,三个槽点几乎人人踩过:
-
覆盖不全:变更一多,AI 就「选择性审查」,只看几个文件,剩下直接跳过;
-
位置漂移:报的 issue 和实际代码位置对不上,行号、文件引用老是漂;
-
质量不稳:纯靠 prompt 驱动,微调一下措辞,审查质量就天差地别。
本质原因官方一句话点透:纯语言驱动的架构,对审查过程没有硬约束。
阿里把这套问题在内部磨了两年——它原本是阿里集团内部的官方 AI 代码审查助手,服务了数万名开发者、识别了数百万个代码缺陷,2026 年 5 月验证充分后开源了,取名叫 OpenCodeReview,命令是 ocr。

它最狠的一个数字:和通用 agent(Claude Code)用同一个底层模型做审查,Precision 和 F1 更高,token 却只花约 1/9。这篇我从原理、安装、用法、规则、CI 集成、踩坑讲透,Java/Go 程序员看完就能上。
目录
一、它和「让 Claude Code 审查」有什么区别
先明确定位:OpenCodeReview 是专门的代码审查 CLI 工具,不是通用 agent。
| 维度 | 通用 Agent(Claude Code + Skill) | OpenCodeReview |
|---|---|---|
| 架构 | 纯 prompt 驱动 | 确定性工程 + LLM Agent 混合 |
| 文件选择 | 靠模型「自觉」 | 工程逻辑精确定位该审哪些文件 |
| 大变更处理 | 容易跳文件 | 智能打包 + 子 agent 分治,稳定 |
| 规则匹配 | 全塞进 prompt | 模板引擎按文件特征精确匹配规则 |
| 定位精度 | 位置漂移 | 独立定位模块 + 反思模块纠偏 |
| token 消耗 | 高 | 约 1/9 |
| 交付形态 | 对话里的一段话 | 结构化、行级评论 |
说人话:OpenCodeReview 是「审查这件事」的专用流水线,而不是让你拿通用 AI「顺带审一下」。
二、核心设计:确定性工程 × Agent 混合
这是它区别于一切「prompt 审查」的根本。官方把审查拆成两块,各干各擅长的:
2.1 确定性工程——硬约束(必须不犯错的部分,用代码保证)
| 模块 | 干什么 |
|---|---|
| 精确文件选择 | 确定哪些文件要审、哪些该过滤,不放过重要改动 |
| 智能文件打包 | 把相关文件捆成一个审查单元(比如 message_en.properties 和 message_zh.properties 一起审),每个 bundle 跑一个子 agent,隔离上下文 |
| 细粒度规则匹配 | 按文件特征匹配审查规则,让模型注意力聚焦,源头消除噪音 |
| 定位 + 反思模块 | 独立模块系统性纠正评论的位置准确性和内容准确性 |
2.2 Agent——动态决策(该灵活的部分,交给模型)
-
场景化 prompt:为代码审查深度优化的模板,提效降 token;
-
场景化工具集:从大规模生产数据的 tool-call 轨迹里「蒸馏」出来的专用工具集,比通用 agent 的工具更稳、更可预测。
这套「工程管流程、模型管判断」的混合架构,是它能在同样模型下做到「更准 + 更省」的原因。
三、Benchmark:50 仓库 200 PR 的实测数据
官方做了一个真实世界的代码审查基准:
-
50 个热门开源仓库;
-
200 个真实 Pull Request;
-
10 种编程语言;
-
80+ 位资深工程师交叉标注,共 1505 个 ground-truth 缺陷。

| 指标 | 含义 | 为什么重要 |
|---|---|---|
| F1 | Precision 和 Recall 的调和均值 | 综合看审查质量的单值 |
| Precision | 报的 issue 里真实缺陷占比 | 越高越少误报 |
| Recall | 真实缺陷被找到的比例 | 越高越少漏报 |
| Avg Time | 单次审查耗时 | 影响 CI 延迟 |
| Avg Token | 单次审查 token | 直接影响成本 |
结论:和通用 agent 比,OpenCodeReview 用同一模型拿到了更高的 Precision 和 F1,token 只有约 1/9,审查更快。官方也坦白:它的 Recall 略低于通用 agent——这是「宁精勿滥」的刻意取舍。
数据集的标注数据开源在 HuggingFace 上,叫 AACR-Bench,想较真的可以自己去翻。
四、Windows 安装
前置要求:Git >= 2.41(它靠 Git 生成 diff、搜代码、操作仓库)。
4.1 npm 安装(最省事)
npm install -g @alibaba-group/open-code-review
装完 ocr 命令全局可用:
ocr --version
4.2 其他安装方式
-
安装脚本:官方提供一键脚本;
-
GitHub Release 二进制:去 Releases 页下 Windows 的
.exe,解压到D:\tools\ocr\这类无空格路径,加进 PATH; -
源码编译:Go 环境
go install。
Windows 用户注意:
ocr是靠git子进程工作的,确保git在 PATH 里、且版本 ≥ 2.41(git --version查一下)。
五、配置 LLM Provider 和模型
审查前必须先配 LLM(除非用委托模式):
ocr config provider # 选内置 provider 或加自定义的 ocr config model # 给当前 provider 选模型

交互式 UI 会引导你选 provider、填 API Key、选模型,最后自动测试连通性。
几点说明:
-
OpenAI & Anthropic 兼容:既支持官方 Claude / GPT,也支持任何兼容网关(比如 DeepSeek、通义、或你自己搭的中转站);
-
环境变量 / 自定义 provider:支持 CLI 配置,适合 CI 场景;
六、四种审查模式:review / commit / scan / delegate
进入你的项目目录后:
6.1 ocr review —— 工作区 / 分支范围审查
cd your-project # 工作区模式:审所有 staged / unstaged / untracked 改动 ocr review # 分支范围:审 feature-branch 相对 main 分叉后的改动(merge-base 模式) ocr review --from main --to feature-branch # 单提交 ocr review --commit abc123 # 断点续审 ocr session list ocr review --from main --to feature-branch --resume <session-id>
6.2 ocr scan —— 全文件扫描(无 git 历史也能审)
ocr scan # 扫整个仓库 ocr scan --path internal/agent # 只扫某个目录/文件 ocr scan --resume <session-id> # 续扫
适合审计陌生代码库、或者没有 diff 可看的目录。
6.3 ocr delegate —— 委托模式(让 AI 编码工具自己审)
ocr delegate preview ocr delegate rule src/main.go src/handler.go
这个模式很聪明:OpenCodeReview 只负责文件选择和规则解析,真正的审查交给你的 AI 编码工具,而且不用配 LLM。适合已经有 Claude Code / Cursor 在跑、想让审查更可控的人。
七、内置多语言规则:NPE / 线程安全 / XSS / SQL 注入
OpenCodeReview 内置了一套多语言规则集,覆盖 Java/Go 等语言的高频缺陷类型:
| 规则类型 | 典型问题 |
|---|---|
| NPE(空指针) | Java 里 null 未判、Optional 误用、getter 返回 null |
| 线程安全 | 共享可变状态未同步、SimpleDateFormat 静态共享、双重检查锁 |
| XSS | 用户输入未转义直接输出、模板注入 |
| SQL 注入 | 字符串拼接 SQL、like '%' + param + '%' 这类 |
| 其他 | 资源未关闭、异常吞掉、魔法值等 |
这套规则正是它「比通用 agent 稳」的底气——规则是模板引擎按文件特征精确匹配的,不是让模型「凭感觉」想起哪条算哪条。对 Java 程序员来说,NPE 和线程安全这两类,通用 agent 经常漏,它专门盯着。
八、接进 CI/CD 和 AI 编码工具
8.1 CI/CD(GitHub Actions / GitLab CI)
OpenCodeReview 支持 CI/CD 集成,把审查变成 PR 检查的一环。核心思路:CI 里 ocr review --from main --to $PR_BRANCH,把结构化评论回贴到 PR 上。具体模板看官网文档。
8.2 和 Claude Code / Codex / Cursor 配合
-
直接审查:
ocr review跑完出结构化报告; -
委托模式:
ocr delegate让 AI 编码工具在它的上下文里完成审查,OpenCodeReview 保证「审哪些文件、用哪些规则」不出错; -
AI 编码工具写,OpenCodeReview 审:一个负责生成、一个负责把关,正好互补。
九、常见坑和解决方案
Q1:ocr 命令找不到
npm 全局 bin 目录没进 PATH。where ocr 看路径,Windows 上通常是 %APPDATA%\npm,手动加进系统 PATH。
Q2:审查报 git 版本过低
git --version 确认 ≥ 2.41。Windows 上 Git for Windows 老版本要升级。
Q3:配置 provider 后连接测试失败
检查 API Key、base_url(尤其走中转/网关时)、以及网络能不能通。走 Anthropic 官方要注意网络。
Q4:审查慢 / 卡在大仓库
大变更会自动打包并发审,但超大仓库第一次扫会慢。可以先用 ocr scan --path 缩小范围,或断点续审。
Q5:想接 DeepSeek 等国产模型
选「自定义 provider」,填 OpenAI 兼容的 base_url 和 key 即可,模型选对应的 chat 模型。
Q6:ocr review 和 ocr scan 傻傻分不清
-
有 git 历史、要审「这次改了什么」→
review; -
没 git 历史、要审「整个文件/目录」→
scan。
十、适合谁 / 不适合谁
✅ 适合
-
Java / Go 后端,尤其在意 NPE、线程安全、SQL 注入这类「通用 agent 容易漏」的缺陷;
-
想在 CI/CD 里加一道自动化代码审查关卡,又不想花大价钱 token;
-
团队想要结构化、行级、可回贴到 PR 的审查结果,而不是一段对话;
-
已经用 Claude Code / Cursor,想让审查更「可控」(用委托模式)。
❌ 不适合
-
只想让 AI 泛泛聊「这段代码怎么样」,不需要工程化流水线——通用 agent 就够了;
-
追求极致 Recall(宁多勿漏)的场景——它官方也说了 Recall 是刻意压低换 Precision;
-
代码量极小、纯个人项目,配一套 CLI 反而麻烦。
最后总结
OpenCodeReview 是 2026 年「AI 代码审查」这个细分方向里最扎实的开源项目——阿里内部两年级别验证、21k Star、确定性工程 × Agent 混合架构、同模型下 token 只要 1/9。它解决的不是「AI 能不能审代码」,而是「AI 审查怎么做到稳、准、省、可进 CI」。
对 Java 程序员来说,npm i -g @alibaba-group/open-code-review 一条命令,就能在提交前多一道「专门盯着 NPE / 线程安全 / SQL 注入」的审查,性价比极高。
项目地址:https://github.com/alibaba/open-code-review 官网:https://open-codereview.ai

556

被折叠的 条评论
为什么被折叠?



