Sobre el proyecto

M-flow es una biblioteca de Python de código abierto que redefine la generación aumentada por recuperación (RAG) al tratar el grafo de conocimiento como el motor de puntuación principal. A diferencia de los sistemas RAG tradicionales que clasifican los resultados por similitud vectorial, M-flow organiza el conocimiento en un grafo cónico de cuatro niveles (Episode, Facet, FacetPoint y Entity) y utiliza la propagación de grafos a lo largo de bordes tipados y ponderados semánticamente para puntuar cada unidad de conocimiento por su cadena de razonamiento más fuerte que la conecta con la consulta. Este enfoque, llamado búsqueda de paquetes enrutada por grafo, permite la recuperación multigranularidad: una consulta precisa puede anclarse en un FacetPoint y devolver el Episode al que pertenece, mientras que una consulta amplia puede entrar a través de un resumen de Episode. El sistema también incluye resolución de correferencias en la ingesta para resolver pronombres antes de la indexación, partición de memoria opcional consciente de rostros para el aislamiento multipersona y extracción de memoria procedimental para patrones abstractos reutilizables. M-flow admite múltiples bases de datos vectoriales y de grafos (LanceDB, Neo4j, PostgreSQL/pgvector, ChromaDB, KùzuDB, Pinecone), es agnóstico en cuanto a LLM (OpenAI, Anthropic, Mistral, Groq, Ollama, etc.) y proporciona una CLI, interfaz web y servidor MCP. Los puntos de referencia en LoCoMo-10 y LongMemEval muestran un rendimiento sólido, aunque estos son autoinformados. El proyecto incluye opciones de implementación con Docker, un área de juegos con reconocimiento facial y documentación extensa.