🔍 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.
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:
Problema
Qué pasa
Cobertura incompleta
En cambiosets grandes el agente “hace trampa”: revisa algunos archivos y se salta otros.
Position drift
El issue es real, pero el número de línea o el archivo no coinciden.
Calidad inestable
Una 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
Capa
Responsabilidad
Por qué
Selección precisa de archivos
Decide exactamente qué se revisa y qué se filtra.
Ningún cambio importante queda fuera por decisión del modelo.
File bundling inteligente
Agrupa 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 fino
Asigna 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 + reflection
Módulos independientes que corrigen la ubicación y el contenido del comentario.
Ataca directamente el position drift y los falsos positivos.
Agente
Decisiones 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étrica
Qué mide
Por qué importa
Precision
De lo reportado, cuánto es defecto real.
Menos falsos positivos que triagear.
Recall
De los defectos reales, cuántos encuentra.
Menos bugs que se escapan.
F1
Media armónica de precision y recall.
Mejor número único de calidad global.
Avg Time
Tiempo por review.
Latencia en CI.
Avg Token
Tokens 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 customocr 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
Comando
Para qué
ocr review
Review del workspace: cambios staged, unstaged y untracked.
ocr review --from main --to feature-branch
Review del rango desde el merge-base con main.
ocr review --commit abc123
Review de un commit concreto.
ocr session list
Listar sesiones de review.
ocr review --from main --to feature-branch --resume <session-id>
Retomar un review interrumpido.
ocr scan
Revisar archivos completos, no un diff. No necesita historial de Git.
ocr scan --path internal/agent
Escanear un directorio o archivos específicos.
ocr scan --resume <session-id>
Retomar un scan interrumpido.
ocr review --format json --output result.json
Guardar resultados estructurados (recomendado para agentes host).
ocr delegate preview
Ver qué haría el modo delegación.
ocr delegate rule src/main.go src/handler.go
Resolver archivos y reglas para que el agente host haga el review.
Ejemplo mínimo
cd tu-proyectoocr config providerocr config modelocr 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
Plataforma
Qué instala
Claude Code
Plugin con slash commands de review.
Codex
Plugin con skills de review invocables.
Cursor
Plugin con skills portables.
Kimi Code
Plugin con slash commands y skills.
OpenCode
Herramientas nativas de review y slash commands.
QCA Forward
Delegation mode con el modelo host de QCA y template listo para publicar.
Agentes compatibles con skills
Skill 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
📊 CodeGraph — dar contexto de repositorio al agente que revisa.
💼 freehire — ejemplo de repo Go + SvelteKit donde probar ocr scan.