🔧 AI 知识库

OpenCodeReview: 阿里开源硬核代码审查工具,确定性规则 + LLM Agent 精准到行的代码质检

原文链接

OpenCodeReview: 阿里开源硬核代码审查工具,确定性规则 + LLM Agent 精准到行的代码质检

原文链接:https://mp.weixin.qq.com/s/TAug9CczSYdxS0d-jD7kIQ

作者:AI开源提效指南

摘要

阿里巴巴开源了一款已在内部生产验证的代码审查工具 open-code-review。核心架构是「确定性规则 + LLM Agent」双保险:Go 语言编写的确定性流水线保证已知漏洞(NPE、SQL 注入等)必被发现、不走概率路线;LLM Agent 拥有跨文件工具调用能力(file_read、code_search 等),处理需要深度理解的设计问题。支持多语言、精准到行级注释、四层规则优先级、并发审查。

架构设计:确定性 + 自适应

外层: Go 语言确定性流水线进行精确调度,保证已知漏洞类型必被发现

内层: LLM Agent 包装为具备工具调用能力的自适应 Agent,处理设计合理性和架构选择等深度问题

六大核心能力

1. 精准行级注释

直接在具体代码行标注问题,给出 before/after 修改建议,引用项目中类似代码作为参考。

2. 内置 fine-tuned 审查规则库

文件类型审查重点
*.java空指针风险、死循环、switch fallthrough、N+1 查询、线程安全
*.{ts,js,tsx,jsx}代码质量、React 最佳实践、异步规范、XSS/安全防护
*.kt空安全、协程使用、惯用写法
*.{go,py,...}逻辑 bug、拼写错误
*.{cpp,cc,hpp}智能指针、RAII、STL 使用、const 正确性
*.cmalloc/free 配对、缓冲区溢出
pom.xml / build.gradle防止 SNAPSHOT 版本泄漏
package.json版本通配符、依赖冲突
*mapper*.xmlSQL 注入、性能问题、逻辑错误

3. 四层规则优先级(首匹配即生效)

  1. --rule 参数(最高)— 用户指定规则文件
  2. 项目配置 .opencodereview/rule.json — 可提交 Git 的团队规则
  3. 全局配置 ~/.opencodereview/rule.json — 个人偏好
  4. 系统默认 system_rules.json — 内置规则兜底

4. LLM Agent 工具链(跨文件上下文感知)

工具用途
file_read读取指定行范围的文件内容
code_search搜索整个代码库的文本/正则
code_comment提交行级审查注释
file_find按文件名关键词查找文件
file_read_diff查看其他变更文件的 diff

Agent 会主动搜索关联代码、读取相关文件,而非只看当前 diff。

5. 三阶段审查流程

  • Phase 1 Plan: 变更 > 50 行时先做风险分析,< 50 行直接进入主审查
  • Phase 2 Main Task: 每个变更文件独立 goroutine 处理,LLM 通过工具调用进行多轮对话
  • Phase 3 Memory Compression: 上下文超限时自动压缩,三区划分(冻结区/压缩区/活跃区)

6. 并发处理

  • 默认 8 并发 worker
  • 单文件超时保护(默认 10 分钟)
  • 可通过 --concurrency 参数调整

快速上手

# 安装(推荐 npm)
npm install -g @alibaba-group/open-code-review

# 配置 LLM
ocr config set llm.url https://api.openai.com/v1/chat/completions
ocr config set llm.auth_token sk-xxxxxxx
ocr config set llm.model gpt-4o
ocr config set language Chinese

# 审查所有变更
ocr review

# 审查分支差异
ocr review --from main --to dev

# 审查单个提交
ocr review --commit 9daad85265c

# 预览模式
ocr review --preview

支持 Claude(Anthropic Messages API)和 OpenAI(Chat Completions API)双协议。

竞品对比

特性open-code-reviewCopilot ReviewReviewDog
确定性规则
LLM Agent 工具调用
跨文件上下文感知⚠️
精准行级注释
多模型支持
本地 CLI
CI/CD 集成
开源

项目信息