En pocas palabras
Amplía RAG con grafos de entidades y relaciones para recuperar contexto conectado.
Qué problema resuelve
Búsquedas que encuentran fragmentos parecidos pero pierden relaciones entre documentos o componentes.
Cuándo utilizarlo
Investigación documental y código legado. Ejemplo: rastrear qué servicios dependen de una regla de negocio.
De la idea a la práctica
Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.
En el Radar compartido: Trial (valoración de la edición aportada).
Cómo funciona
La indexación identifica entidades y conexiones; la consulta recupera vecindarios, evidencias o resúmenes. El proyecto GraphRAG de Microsoft implementa estrategias locales y globales específicas.
Ejemplo de uso
Construir relaciones entre requisitos, módulos y tablas; al preguntar por un cambio fiscal, recuperar la norma y los componentes conectados. En código, AST y dependencias pueden aportar relaciones deterministas.
Pipeline de indexación
Documentos → fragmentos (text units)
→ extracción de entidades y relaciones con un LLM
→ grafo de entidades
→ detección de comunidades (algoritmo de Leiden, jerárquico)
→ informe resumido por comunidad
→ embeddings de entidades, fragmentos e informes
Los informes de comunidad son la pieza diferencial: resúmenes de grupos de entidades relacionadas que permiten responder preguntas sobre el corpus completo.
Modos de búsqueda
| Modo | Adecuado para | Ejemplo |
|---|---|---|
| Local | Preguntas sobre entidades concretas y su entorno | «¿Qué productos dependen del servicio de buró?» |
| Global | Preguntas que requieren visión del conjunto | «¿Cuáles son los temas principales de las quejas de 2026?» |
| DRIFT | Combina local y global con preguntas de seguimiento | Exploraciones amplias que bajan a detalles |
| Básico | Búsqueda vectorial clásica, como referencia | — |
El RAG vectorial clásico falla en las preguntas globales porque ningún fragmento individual contiene la respuesta.
Uso del proyecto de Microsoft
pip install graphrag
graphrag init --root ./quejas # crea settings.yaml y carpeta input/
# copiar documentos de texto en ./quejas/input y configurar el modelo en settings.yaml
graphrag index --root ./quejas
graphrag query --root ./quejas --method global "¿Qué problemas recurrentes mencionan los clientes?"
graphrag query --root ./quejas --method local "¿Qué dicen sobre el desembolso por PSE?"
Coste y mantenimiento
La extracción hace muchas llamadas al LLM por fragmento: indexar un corpus grande puede ser caro y lento. Estrategias para controlarlo:
- Probar primero con una muestra y estimar el coste total.
- Usar un modelo más económico para la extracción y uno mejor para las respuestas.
- Ajustar los prompts de extracción a los tipos de entidad del dominio (cliente, producto, canal, norma).
- Indexación incremental para documentos nuevos en lugar de reprocesar todo.
Alternativas
| Enfoque | Cuándo |
|---|---|
| RAG vectorial | Preguntas puntuales sobre documentos |
| GraphRAG | Preguntas globales, temas y relaciones en corpus grandes |
| Grafos deterministas (código, CMDB, catálogo) | Las relaciones ya existen en datos estructurados |
| Graphiti | Memoria de agente que cambia en el tiempo |
| LightRAG, Neo4j GraphRAG y similares | Variantes más ligeras o integradas en una base de grafos |
Evalúa con preguntas reales de ambos tipos (puntuales y globales) y compara con un RAG bien ajustado antes de asumir el coste.
Criterios de implementación
Conservar procedencia y permisos por fuente. Evaluar precisión de las aristas, actualización y coste de extracción; un grafo erróneo también introduce contexto engañoso.
Continúa en las fuentes
Documentación oficial para verificar detalles y explorar más.