alibaba/open-code-review
GitHub: alibaba/open-code-review
一款由阿里巴巴开源的 AI 代码审查 CLI 工具,结合确定性工程与 LLM Agent 实现行级精度的自动化代码缺陷检测。
Stars: 10913 | Forks: 751
English | 简体中文 | 日本語 | 한국어 | Русский
## 什么是 Open Code Review? Open Code Review 是一款 AI 驱动的代码审查 CLI 工具。它最初作为阿里巴巴集团内部官方的 AI 代码审查助手——在过去两年中,它服务了数以万计的开发者,并发现了数以百万计的代码缺陷。经过在海量规模下的充分验证,我们将其孵化为面向社区的开源项目。只需配置一个模型 endpoint 即可开始使用。 它读取 Git diff,通过一个具备工具调用能力的 agent 将更改的文件发送到可配置的 LLM,并生成具有行级精度的结构化审查意见。该 agent 能够读取完整文件内容、搜索代码库、检查其他已更改的文件以获取上下文,从而生成深度的审查报告——而不仅仅是表层的 diff 反馈。除了 diff 审查之外,`ocr scan` 还可以对整个文件进行审查,用于审计陌生的代码库或没有实质性 diff 的目录。 访问[官方网站](https://open-codereview.ai)了解更多详情。  ## 基准测试 一个基于真实场景的代码审查基准测试,由 **50** 个流行的开源代码库、**200** 个真实的 Pull Request 和 **10** 种编程语言构建而成——由 80 多位资深工程师交叉验证(**1,505** 个已标注的真实问题)。 | 指标 | 衡量内容 | 重要性 | |--------|-----------------|----------------| | **F1** | 精确率和召回率的调和平均数 | 衡量整体审查质量的最佳单一指标 | | **Precision** | 报告的问题中真实缺陷的比例 | 越高 = 需要处理的误报越少 | | **Recall** | 发现的真实缺陷的比例 | 越高 = 审查中遗漏的问题越少 | | **Avg Time** | 每次审查的实际耗时 | 对 CI pipeline 的延迟至关重要 | | **Avg Token** | 每次审查消耗的总 token 数量 | 直接影响 API 成本 |  ## 为什么选择 Open Code Review? ### 通用 Agent 存在的问题 如果您曾使用过 Claude Code 等结合了 Skills 的通用 Agent 进行代码审查,您很可能遇到过以下痛点: - **覆盖不完整** —— 在处理较大的变更集时,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 二进制文件、从源码编译),请参阅[安装指南](https://open-codereview.ai/docs/installation)。 #### 快速开始 **1. 配置 LLM** 在审查代码之前,您必须配置一个 LLM,除非您使用[委托模式](https://open-codereview.ai/docs/integrations/delegate)。 ``` ocr config provider # Select a built-in provider or add a custom one ocr config model # Pick a model for the active provider ```  交互式 UI 将引导您完成 provider 选择、API 密钥输入和模型配置,随后会自动测试连通性。 有关 CLI 设置、环境变量、自定义 provider 及其他高级配置,请参阅[配置](https://open-codereview.ai/docs/configuration)。 **2. 审查** ``` cd your-project # Workspace 模式 — 审查所有已暂存、未暂存和未跟踪的更改 ocr review # Branch range — 比较两个 refs ocr review --from main --to feature-branch # Single commit ocr review --commit abc123 # 恢复中断的 range 或 commit 审查 ocr session list ocr review --from main --to feature-branch --resume标签:DLL 劫持, EVTX分析, LLM Agent, LNA, MITM代理, SOC Prime, 代码审查, 大语言模型, 开发工具, 文档结构分析, 暗色界面, 用户代理, 网络安全研究, 错误基检测, 静态代码分析