开源代码评审

alibaba/open-code-review 访问 GitHub ↗
🔤 Go ★ 47382 ⑂ 0 monthly #9 (+20351) 抓取 2026-10-16

一句话简介

阿里巴巴开源的代码评审工具,基于Go语言构建,支持自动化代码审查、质量检测与协作,帮助团队提升代码规范与开发效率。

标签

  • 代码评审
  • Go
  • 自动化
  • 质量检测
  • 阿里巴巴

适用应用场景

  • 团队协作中的代码规范审查
  • CI/CD流水线集成自动质量检测
  • Pull Request自动化评审与反馈
  • 开源项目贡献者代码合规检查

README 中文摘要

项目概述

OpenCodeReview 是一款由 AI 驱动的代码审查命令行工具(CLI),源自阿里巴巴集团内部的官方 AI 代码审查助手。过去两年间,该工具服务了数万名开发者,发现了数百万代码缺陷,现已通过大规模验证后开源。只需配置一个模型端点即可快速启动。

核心工作流程是:读取 Git diff,将变更文件通过具备工具调用能力的代理(Agent)发送给可配置的大语言模型(LLM),并生成行级精度的结构化审查意见。代理可以读取完整文件内容、检索代码库、检查其他相关变更文件,从而产出深度审查结果,而非仅停留在 diff 表层。除 diff 审查外,ocr scan 命令可对整个文件进行审查,适用于审查陌生代码库或无 diff 历史的目录。

基准测试表现

OpenCodeReview 基于 50 个开源仓库、200 个真实 PR、覆盖 10 种编程语言构建了真实场景基准测试,由 80 多位资深工程师交叉标注(1,505 个真实问题)。与通用代理(如 Claude Code)相比,在底层模型相同的情况下,OpenCodeReview 的精确率和F1 值显著更高,同时仅消耗约 1/9 的 Token,审查速度更快。召回率略低于通用代理,这是有意为之的权衡——以牺牲少量召回为代价,换取更高的精确率,避免产生过多噪声。

通用代理的痛点

使用通用代理执行代码审查时常遇到三类问题:

  • 覆盖不完整:在大规模变更集上,代理容易"偷工减料",选择性审查部分文件而遗漏其他。
  • 位置漂移:报告的问题与代码实际位置不匹配,行号或文件引用常常偏离目标。
  • 质量不稳定:基于自然语言驱动的技能难以调试,提示词的微小变化就会导致审查质量大幅波动。

根本原因在于:纯语言驱动的架构缺乏对审查流程的硬约束。

核心设计:确定性工程 × 代理混合架构

确定性工程——硬约束保证

对于"绝不能出错"的审查步骤,由工程逻辑而非语言模型保证正确性:

  • 精准文件选择:准确判断需要审查与需要过滤的文件,确保不遗漏任何重要变更。
  • 智能文件打包:将相关文件归入同一审查单元(如 message_en.properties 与 message_zh.properties 视为一组)。每个包以独立子代理运行并隔离上下文——分而治之的策略在大规模变更下依然稳定,且天然支持并发审查。
  • 细粒度规则匹配:根据每个文件的特征匹配审查规则,让模型注意力高度聚焦,从源头消除信息噪声。相比纯语言驱动的规则引导,基于模板引擎的规则匹配更稳定、更可预测。
  • 外部定位与反思模块:独立的评论定位与评论反思模块,系统性提升 AI 反馈的位置准确度与内容准确度。

代理——动态决策与动态上下文

代理的优势集中在真正需要灵活性的环节:

  • 场景化提示词:针对代码审查深度优化的提示词模板,在提升效果的同时降低 Token 消耗。
  • 场景化工具集:基于生产环境大规模工具调用追踪数据深度分析得出——包括调用频率分布、单一工具重复调用率、新增工具对整体调用链的影响——打造专用工具集,相比通用代理工具包更稳定、更可预测。

使用方法

环境要求

  • Git >= 2.41:依赖 Git 进行 diff 生成、代码搜索与仓库操作。

安装

npm install -g @alibaba-group/open-code-review

安装完成后,ocr 命令即可全局使用。

配置 LLM

ocr config provider          # 选择内置提供商或新增自定义提供商
ocr config model             # 为当前提供商选择模型

交互式界面会引导完成提供商选择、API Key 输入、模型配置,并自动测试连通性。

常用审查命令

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 历史)
ocr scan                          # 扫描整个仓库
ocr scan --path internal/agent    # 扫描指定目录或文件
ocr scan --resume <session-id>   # 恢复中断的扫描

# 将结果保存到文件(推荐用于 AI 宿主代理)
ocr review --format json --output result.json

# 委托模式:让 AI 编码代理自行执行审查
# OCR 仅负责文件选择与规则解析,无需配置 LLM
ocr delegate preview
ocr delegate rule src/main.go src/handler.go

文档与生态

完整文档位于 open-codereview.ai/docs,涵盖快速上手、安装、CLI 参考、审查规则自定义、配置项、MCP 服务器、CI/CD 集成、会话查看器、可观测性(OpenTelemetry)以及常见问题解答。

项目同时提供多个主流编码代理的插件集成:Claude Code、Codex、Cursor、Kimi Code、OpenCode,以及兼容 Skill 规范的通用代理方案。

许可证

Apache-2.0 — Copyright 2026 Alibaba

摘要更新于 2026-10-09 00:32:27 · 原文 13323 字符 · md5 cce086f5870d…