🔍 Open Code Review — Code Review con IA de Alibaba (CLI ocr)

Revisión de código con restricciones duras, no solo prompts

Herramienta CLI de code review con IA, nacida como el asistente interno oficial de Alibaba Group: dos años sirviendo a decenas de miles de developers y detectando millones de defectos. Lee diffs de Git, manda los archivos cambiados a un LLM configurable mediante un agente con tool use y genera comentarios estructurados con precisión de línea.

  • 💻 Repositorio: github.com/alibaba/open-code-review
  • 🌐 Web y docs: open-codereview.ai · docs
  • 🛠️ Stack: Go · npm (@alibaba-group/open-code-review) · cualquier endpoint compatible con OpenAI o Anthropic
  • 📜 Licencia: Apache-2.0 (Copyright 2026 Alibaba)
  • ⭐ ~47.9k estrellas · 3.5k forks (al 2026-10-21)
  • 🏷️ Topics: agent · agent-skills · code-review · harness · repository-level-context

🎯 Qué es

Un revisor de código que combina ingeniería determinista con un agente LLM. No es un prompt largo pegado a un agente genérico: es un pipeline que garantiza lo que no puede fallar (qué archivos revisar, cómo agruparlos, qué reglas aplicar, dónde va cada comentario) y deja al modelo solo las decisiones dinámicas.

Flujo típico:

git diff → selección de archivos → bundles → reglas por archivo → agente con tools → comentarios con línea exacta

El agente puede leer archivos completos, buscar en el repositorio y consultar otros archivos cambiados para tener contexto. Por eso los comentarios son profundos y no simples observaciones sobre el diff.

Origen real

No es un side project: es el asistente interno de review de Alibaba, usado a escala durante dos años antes de abrirse. Eso explica el sesgo del diseño hacia estabilidad y precisión, no hacia demos vistosas.


🧨 El problema que resuelve

Usar un agente generalista (Claude Code, Codex, etc.) con una skill de review tiene tres fallas recurrentes:

ProblemaQué pasa
Cobertura incompletaEn cambiosets grandes el agente “hace trampa”: revisa algunos archivos y se salta otros.
Position driftEl issue es real, pero el número de línea o el archivo no coinciden.
Calidad inestableUna skill en lenguaje natural es difícil de depurar; cambiar una palabra del prompt altera el resultado.

La causa raíz: una arquitectura puramente guiada por lenguaje no tiene restricciones duras sobre el proceso de review.


🏗️ Arquitectura: determinista + agente

CapaResponsabilidadPor qué
Selección precisa de archivosDecide exactamente qué se revisa y qué se filtra.Ningún cambio importante queda fuera por decisión del modelo.
File bundling inteligenteAgrupa archivos relacionados en una unidad de review. Ejemplo: message_en.properties + message_zh.properties.Cada bundle corre como sub-agente con contexto aislado; divide y vencerás, con concurrencia y estabilidad en cambiosets enormes.
Rule matching finoAsigna reglas según las características de cada archivo mediante un motor de templates.Menos ruido, atención del modelo más enfocada. Más predecible que pedirle al LLM que “recuerde” las reglas.
Positioning + reflectionMódulos independientes que corrigen la ubicación y el contenido del comentario.Ataca directamente el position drift y los falsos positivos.
AgenteDecisiones dinámicas y recuperación de contexto con un toolset específico de review.Prompts y herramientas destilados de trazas de producción: frecuencia de llamadas, repetición por tool, impacto en la cadena.

📊 Benchmark

AACR-Bench: 50 repositorios open source populares, 200 PRs reales, 10 lenguajes, validado por 80+ ingenieros senior y 1,505 issues anotados como ground truth. Dataset en Hugging Face.

MétricaQué midePor qué importa
PrecisionDe lo reportado, cuánto es defecto real.Menos falsos positivos que triagear.
RecallDe los defectos reales, cuántos encuentra.Menos bugs que se escapan.
F1Media armónica de precision y recall.Mejor número único de calidad global.
Avg TimeTiempo por review.Latencia en CI.
Avg TokenTokens por review.Coste directo de API.

El trade-off es deliberado

Frente a agentes generales como Claude Code, con el mismo modelo base, Open Code Review logra mayor Precision y F1, consume ~1/9 de los tokens y termina más rápido. Su Recall es menor a propósito: prefiere precisión sobre ruido. Si tu equipo quiere “cazar todo”, esto no es la herramienta; si quiere comentarios accionables sin ahogarse, sí.


🚀 Instalación

Requisito: Git ≥ 2.41. Se usa para generar diffs, buscar en el código y operar el repo.

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

El comando global queda como ocr. También hay script de instalación, binario de GitHub Releases y build desde fuente (ver Installation).

Configurar el LLM

ocr config provider   # elegir provider integrado o agregar uno custom
ocr config model      # elegir modelo del provider activo

La UI interactiva guía provider → API key → modelo y prueba la conectividad al final. Soporta endpoints compatibles con OpenAI y Anthropic. También se puede configurar por variables de entorno.

Sin LLM no hay review

Salvo que uses Delegation Mode (abajo), ocr necesita un modelo configurado. No trae un modelo propio ni una API key incluida.


🧰 Comandos

ComandoPara qué
ocr reviewReview del workspace: cambios staged, unstaged y untracked.
ocr review --from main --to feature-branchReview del rango desde el merge-base con main.
ocr review --commit abc123Review de un commit concreto.
ocr session listListar sesiones de review.
ocr review --from main --to feature-branch --resume <session-id>Retomar un review interrumpido.
ocr scanRevisar archivos completos, no un diff. No necesita historial de Git.
ocr scan --path internal/agentEscanear un directorio o archivos específicos.
ocr scan --resume <session-id>Retomar un scan interrumpido.
ocr review --format json --output result.jsonGuardar resultados estructurados (recomendado para agentes host).
ocr delegate previewVer qué haría el modo delegación.
ocr delegate rule src/main.go src/handler.goResolver archivos y reglas para que el agente host haga el review.

Ejemplo mínimo

cd tu-proyecto
ocr config provider
ocr config model
ocr review

🤝 Delegation Mode

Modo pensado para agentes de coding (Claude Code, Codex, Cursor, Kimi, OpenCode):

  • OCR se encarga de la parte determinista: selección de archivos y resolución de reglas.
  • Tu agente host ejecuta el review con su propio LLM.
  • No requiere API key de OCR ni configurar un provider aparte.

Útil si ya pagas un agente y no quieres sumar otro endpoint. La contra: la calidad del review pasa a depender del modelo y del harness del agente host.


🔌 Integraciones

PlataformaQué instala
Claude CodePlugin con slash commands de review.
CodexPlugin con skills de review invocables.
CursorPlugin con skills portables.
Kimi CodePlugin con slash commands y skills.
OpenCodeHerramientas nativas de review y slash commands.
QCA ForwardDelegation mode con el modelo host de QCA y template listo para publicar.
Agentes compatibles con skillsSkill portable de review.

Además:

  • MCP Server — extiende el agente de review con herramientas externas.
  • CI/CD — GitHub Actions, GitLab CI, GitFlic CI y Gerrit.
  • Session Viewer — navegar y reproducir sesiones en el browser; marcar comentarios como corregidos o ignorados y ocultarlos mientras trabajas.
  • OpenTelemetry — observabilidad de las ejecuciones.

📏 Reglas incluidas

El repo trae un ruleset multi-lenguaje integrado, con foco en defectos clásicos:

  • Null pointer exceptions (NPE)
  • Thread safety
  • XSS
  • SQL injection

Las reglas se pueden personalizar con path filtering y targeting (ver Review Rules).


⚠️ Notas prácticas

  • No reemplaza tests ni revisión humana: prioriza precisión; su recall menor es una decisión de diseño.
  • Depende del modelo: el benchmark usa el mismo modelo base para comparar; con un modelo flojo, el resultado baja.
  • Git ≥ 2.41 es obligatorio, no opcional.
  • Costo controlado: ~1/9 de tokens frente a un agente generalista en el benchmark, pero sigue consumiendo API.
  • CI/CD: revisar latencia y presupuesto antes de ponerlo en cada PR.
  • OpenCode: la integración es con el agente OpenCode; no confundir con el nombre del repo.
  • Calidad del ruleset: las reglas built-in cubren lo común; para arquitectura o dominio necesitas reglas propias.

🔗 Enlaces relacionados