alibaba open-code-review
OpenCodeReview 英文 | 简体中文 | 日本語 | 한국어 | Русский
什么是 Open Code Review?
Open Code Review 是一款 AI 驱动的代码审查 CLI 工具。它最初是阿里巴巴集团内部的官方 AI 代码审查助手——在过去两年中,它已服务了数万名开发者,识别了数百万个代码缺陷。经过大规模充分验证后,我们将其孵化为一个面向社区的开源项目。只需配置一个模型端点即可开始使用。它读取 Git diff,通过具备工具调用能力的 agent 将变更文件发送给可配置的 LLM,并生成具有行级精度的结构化审查评论。该 agent 可以读取完整文件内容、搜索代码库、检查其他变更文件以获取上下文,并产出深度审查——而不仅仅是表面的 diff 反馈。除了 diff 审查之外,ocr scan 还可以审查整个文件,用于审计没有有意义 diff 的不熟悉代码库或目录。访问官方网站了解更多详情。
基准测试
与通用 agent(Claude Code)相比,Open Code Review 在相同底层模型下实现了显著更高的 Precision 和 F1,同时仅消耗约 1/9 的 token,并更快完成审查。请注意,其 Recall 低于通用 agent——这是有意为之的权衡,偏向精确性而非噪音。
一个真实世界的代码审查基准,由 50 个热门开源仓库、200 个真实 Pull Request 和 10 种编程语言构建——由 80 多位资深工程师交叉验证(1,505 个标注的真实问题)。在 Hugging Face 上探索 AACR-Bench 数据集。
| 指标 | 衡量内容 | 为何重要 | |------|----------|----------| | F1 | 精确率与召回率的调和平均值 | 整体审查质量的最佳单一指标 | | Precision | 报告问题中真实缺陷的比例 | 越高 = 需要分诊的误报越少 | | Recall | 被发现的真实缺陷比例 | 越高 = 审查中遗漏的问题越少 | | Avg Time | 每次审查的实际耗时 | 影响 CI 流水线延迟 | | Avg Token | 每次审查消耗的总 token 数 | 直接影响 API 成本 |
为什么选择 Open Code Review?
通用 Agent 的问题
如果你使用过 Claude Code 等通用 agent 配合 Skills 进行代码审查,你可能遇到过以下痛点:
- 覆盖不完整——在较大的变更集上,agent 倾向于“偷工减料”,只选择性地审查部分文件而遗漏其他文件。
- 位置漂移——报告的问题经常与实际代码位置不匹配,行号或文件引用偏离目标。
- 质量不稳定——自然语言驱动的 Skills 难以调试,审查质量会因细微的 prompt 变化而显著波动。
根本原因:纯语言驱动的架构对审查过程缺乏硬性约束。
核心设计:确定性工程 × Agent 混合
Open Code Review 的核心理念是将确定性工程与 agent 相结合,各司其职。
确定性工程——硬性约束
对于绝不能出错的审查步骤,由工程逻辑——而非语言模型——来保证正确性:
- 精确的文件选择——准确判定哪些文件需要审查、哪些应被过滤,确保不遗漏重要变更。
- 智能文件捆绑——将相关文件分组为单个审查单元(例如
message_en.properties和message_zh.properties捆绑在一起)。每个捆绑作为具有隔离上下文的子 agent 运行——这是一种分治策略,在非常大的变更集上保持稳定,并天然支持并发审查。 - 细粒度规则匹配——根据每个文件的特征匹配审查规则,使模型的注意力高度集中,从源头消除信息噪音。与纯语言驱动的规则引导相比,基于模板引擎的规则匹配更加稳定和可预测。
- 外部定位与反思模块——独立的评论定位和评论反思模块,系统性地提升 AI 反馈的位置准确性和内容准确性。
Agent——动态决策
Agent 的优势集中在最关键的地方——动态决策和动态上下文检索:
- 场景调优的 prompt——为代码审查深度优化的 prompt 模板,在提升效果的同时减少 token 消耗。
- 场景调优的工具集——从大规模生产数据中工具调用轨迹的深度分析中提炼而来——包括调用频率分布、各工具重复率以及新工具对整体调用链的影响——从而构建出一个专为代码审查打造的工具集,比通用 agent 工具包更稳定、更可预测。
如何使用
前置条件
Git >= 2.41——Open Code Review 依赖 Git 进行 diff 生成、代码搜索和仓库操作。
CLI 安装
npm install -g @alibaba-group/open-code-review
安装后,ocr 命令全局可用。其他安装方式(安装脚本、GitHub Release 二进制文件、从源码构建),请参阅 Installation。
快速开始
1. 配置 LLM
在审查代码之前,你必须配置一个 LLM,除非你使用 Delegation Mode。
ocr config provider # 选择内置 provider 或添加自定义 provider
ocr config model # 为当前活跃的 provider 选择一个模型
交互式 UI 会引导你完成 provider 选择、API key 输入和模型配置,然后自动测试连通性。CLI 设置、环境变量、自定义 provider 及其他高级配置,请参阅 Configuration。
2. 审查
cd your-project
# 工作区模式——审查所有已暂存、未暂存和未跟踪的变更
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 >
# 全文件扫描——审查整个文件而非 diff(无需 git 历史记录)