Graphiti: Grafos de Conocimiento Temporales para la Memoria de Agentes de IA
Graphiti es un framework de vanguardia diseñado para dotar a los agentes de IA de una memoria estructurada, evolutiva y con conciencia temporal. A diferencia de los sistemas RAG tradicionales basados únicamente en vectores, Graphiti permite que el conocimiento se organice en un grafo dinámico que registra no solo los hechos, sino también cuándo ocurrieron y cómo han cambiado con el tiempo.
🚀 Propósito y Visión Estratégica
El objetivo central de Graphiti es resolver las limitaciones de la memoria a largo plazo en los LLMs. Al construir grafos de conocimiento en tiempo real, permite que los agentes mantengan un contexto histórico preciso, realicen consultas complejas que requieren navegación entre entidades y eviten la pérdida de información crítica que ocurre en las ventanas de contexto limitadas o en las búsquedas semánticas puras.
🛠️ Arquitectura y Stack Tecnológico
El proyecto destaca por su modularidad y su capacidad de integración con diversos ecosistemas de datos:
- Lenguaje de Núcleo: Python (99.3%).
- Gestión de Datos: Arquitectura de drivers pluggable compatible con Neo4j, FalkorDB, Kuzu y Amazon Neptune.
- Validación de Esquemas: Utiliza Pydantic para definir ontologías personalizadas de entidades y relaciones.
- Modelos de IA Soportados:
- LLMs: OpenAI, Anthropic (Claude), Google Gemini, Groq y modelos locales vía Ollama (ej. DeepSeek-R1).
- Embeddings: OpenAI, Gemini, Voyage y Ollama (ej.
nomic-embed-text).
- Protocolo de Contexto: Incluye un servidor MCP (Model Context Protocol) nativo, facilitando su uso como memoria externa en herramientas como Claude Code o Cursor.
✨ Características Clave
- Actualizaciones Incrementales en Tiempo Real: Permite la ingesta de nuevos “episodios” de datos sin necesidad de reconstruir o recomputar el grafo completo.
- Modelo de Datos Bi-Temporal: Rastrea la temporalidad de los eventos (cuándo sucedió) y del procesamiento (cuándo se registró), permitiendo consultas históricas exactas (“point-in-time”).
- Recuperación Híbrida Eficiente: Combina la potencia de la búsqueda semántica (vectores), la búsqueda por palabras clave (BM25) y el recorrido de grafos (graph traversal) para una precisión superior.
- Deduplicación Automática: Gestiona la limpieza y consolidación de nodos duplicados y la organización de “comunidades” de conocimiento para optimizar la recuperación a gran escala.
- Ontologías Flexibles: Capacidad para definir esquemas de datos específicos según el dominio de aplicación del agente de IA.
⚙️ Funcionamiento y Flujo de Datos
- Ingesta: Se reciben “episodios” (texto o JSON) que el sistema procesa mediante LLMs con salida estructurada para extraer tripletes (Sujeto-Predicado-Objeto).
- Evolución: Si un hecho cambia (ej: “Leandro vive en Madrid” pasa a “Leandro vive en Barcelona”), Graphiti invalida temporalmente la relación antigua y crea la nueva, preservando el historial completo en el grafo.
- Consulta: Ante una pregunta del usuario, el sistema no solo busca fragmentos de texto similares, sino que navega por las conexiones del grafo para reunir contexto relacionado de múltiples saltos (multi-hop reasoning).
- Respuesta: El agente recibe un contexto enriquecido y estructurado, permitiendo respuestas mucho más precisas y basadas en hechos verificables del grafo.
Nota técnica: Graphiti representa la evolución del RAG hacia el GraphRAG, proporcionando una estructura de datos que permite a los agentes de IA “entender” las relaciones y la línea de tiempo del conocimiento de forma nativa.