"Si los LLMs modernos pueden manejar 200k tokens, ¿por qué no simplemente enviar el diff con el contexto relevante y dejar que el modelo lo resuelva? ¿Cuál es el punto de toda esta complejidad de agentes?"
Un prompt solo puede ver lo que le envías. Para una revisión de código significativa, necesitas contexto de toda tu base de código — imports, dependencias, archivos relacionados, tests, convenciones.
La investigación demuestra que volcar más contexto en los LLMs perjudica activamente el rendimiento. Esto se llama "dilución de contexto."
10-20%
caída de rendimiento por demasiados documentos
Curva U
la info en el medio se "pierde"
60-80%
tasa de falsos positivos en herramientas de volcado de contexto
Los agentes no solo "leen prompts mejor." Ellos investigan activamente tu base de código:
Obtienen solo archivos relevantes bajo demanda, no vuelcan todo de antemano
"Sospecho un desajuste de tipos" → buscar llamadores → confirmar con análisis estático
Siguen pistas entre archivos, profundizan cuando algo parece sospechoso
Ejecutan linters, verificadores de tipos y analizadores para verificar hallazgos con datos reales
Un prompt ve lo que le das.
Un agente encuentra lo que necesita.
La diferencia entre una revisión útil y ruido no es cuánto contexto tienes — es tener el contexto correcto
Antes de que comience la revisión, construimos un mapa de cómo se conectan los archivos — imports, exports, definiciones de tipos y cadenas de llamadas
Cada agente recibe solo el contexto relevante para su tarea — el agente de seguridad obtiene flujos de autenticación, no estilos de UI
Los agentes obtienen contexto adicional solo cuando es necesario — siguiendo pistas sin sobrecarga inicial
El contexto central (diff, tipos) permanece residente; el contexto circundante (llamadores, tests) se carga según sea necesario
200k tokens de todo — diff, archivos completos, dependencias aleatorias...
Fragmentos enfocados — diff + dependencias directas + patrones relevantes
Una sola llamada LLM revisando código tiene limitaciones fundamentales
Limitado al diff que proporcionas
Sin iteración ni verificación
Ciego a dependencias y contexto
Sin forma de validar afirmaciones
Atención dispersa en todas las preocupaciones
"Asegúrate de actualizar los llamadores"
Navega todo tu proyecto
Sigue pistas, profundiza
Entiende imports y dependencias
Ejecuta analizadores estáticos para confirmar
Cada agente se especializa en un área
"3 sitios de llamada tienen desajustes de tipos en líneas 45, 89, 112"
La diferencia está entre especulación e investigación.
Un agente es un sistema de IA que puede pensar, actuar y verificar
Leer archivos, buscar código, ejecutar analizadores estáticos
Elegir qué investigar basándose en hallazgos
Seguir pistas, verificar hipótesis, profundizar
Validar razonamiento contra datos reales
Cuando diffray revisa tu PR, los agentes no solo "miran el diff"
Siguen imports para entender cómo el código modificado afecta a todo el sistema
Examinan tests, configuraciones y documentación para contexto
Ejecutan análisis estático para confirmar que los problemas sospechados realmente existen
Buscan definiciones de tipos, contratos de API y convenciones
Considera un cambio de firma de función en un PR:
"Esto cambia el tipo de retorno, asegúrate de actualizar los llamadores"
Consejo genérico. Sin especificaciones.
→ "Encontrados 3 cambios incompatibles: src/api/users.ts:45, src/hooks/useAuth.ts:89, src/utils/validate.ts:112"
Para entender verdaderamente los cambios, necesitas ver cómo encajan en toda la base de código
Nueva función formatUserName() añadida
Parece sintácticamente correcto
Sin bugs obvios en estas 20 líneas
Veredicto: "LGTM" — pero perdiendo completamente el panorama general
Esta función duplica utils/names.ts:formatName()
La función existente maneja casos límite que esta no
3 otros archivos ya usan la utilidad existente
Esto rompe la convención de nombres en /docs/CONVENTIONS.md
Veredicto: "Considera usar formatName() existente de utils/names.ts"
¿El desarrollador está reinventando la rueda? ¿Ya existe una solución similar en la base de código?
¿Estos cambios siguen patrones establecidos? ¿O introducen un enfoque conflictivo?
¿Cómo afectan estos cambios al resto del sistema? ¿Qué depende del código modificado?
¿Se están siguiendo las convenciones del equipo y los estándares documentados?
Un diff te muestra qué cambió. El contexto completo de la base de código te muestra si debería haberlo hecho.
Fundamentos poderosos que permiten la verdadera colaboración multi-agente
Cada revisión pasa por un pipeline multi-fase, cada fase optimizada para su propósito
Clonar
Obtener repo y checkout del PR
Preparar Datos
Construir grafo de dependencias
Resumir
LLM resume los cambios
Triaje
Enrutar archivos a agentes
Reglas
Cargar y filtrar reglas
Revisar
Análisis paralelo de agentes
Deduplicar
Fusionar y recalificar
Validar
Verificar y recalificar
Reportar
Generar comentarios de PR
Clonar
Obtener repo y checkout del PR
Preparar Datos
Construir grafo de dependencias
Resumir
LLM resume los cambios
Triaje
Enrutar archivos a agentes
Reglas
Cargar y filtrar reglas
Revisar
Análisis paralelo de agentes
Deduplicar
Fusionar y recalificar
Validar
Verificar y recalificar
Reportar
Generar comentarios de PR
El Resultado
Un sistema multi-agente que combina razonamiento de IA con análisis concreto de código — entregando hallazgos precisos y verificados en lugar de especulación.
Insights basados en datos de más de 50 fuentes de investigación. Por qué los desarrolladores dedican 5-6 horas semanales a revisión, por qué el código generado por IA necesita más escrutinio, y cómo implementar herramientas de IA en las que los desarrolladores realmente confían.
Ve cómo la investigación supera a la especulación. Prueba diffray gratis en tu próximo PR.