mnemo es una capa de memoria local diseñada para dotar a los modelos de lenguaje grandes (LLM) de memoria persistente entre conversaciones. Su premisa es resolver una limitación habitual de los chatbots y asistentes basados en LLM: el olvido total del contexto cuando termina una sesión. La herramienta, publicada en GitHub por el desarrollador zaydmulani09 bajo licencia MIT, opera como un servicio "sidecar" que recibe texto, extrae entidades y relaciones, las almacena en un grafo de conocimiento en SQLite y, en menos de 50 milisegundos, devuelve contexto relevante listo para inyectar en el prompt del modelo.
El proyecto está escrito en Rust y se distribuye como un único binario estático, sin dependencias en la nube. Por defecto se conecta a Ollama para usar modelos locales como llama3, lo que permite un funcionamiento 100 % offline y gratuito, pero también admite los proveedores OpenAI, Anthropic y cualquier API compatible con el estándar OpenAI mediante variables de entorno. La configuración se realiza con un archivo TOML o desde la línea de comandos.
La arquitectura se divide en cuatro crates Rust: mnemo-core (extracción de entidades, operaciones sobre el grafo, motor de recuperación y capa de base de datos), mnemo-api (servidor REST con Axum), mnemo-cli (herramienta de terminal) y mnemo-bench (12 suites de benchmarks). El grafo en memoria se construye con la biblioteca petgraph y se sincroniza atómicamente con SQLite. El SDK de Python (pip install mnemo-sdk) ofrece un cliente síncrono y otro asíncrono para integrar mnemo en aplicaciones existentes.
El flujo de uso es directo: el usuario hace POST de un texto al endpoint /ingest y la herramienta extrae entidades (personas, herramientas, lugares, conceptos) y sus relaciones; al llamar a /retrieve se ejecuta un pipeline de seis etapas —búsqueda de fragmentos por texto completo, búsqueda por nombre de entidad, expansión BFS del grafo, filtrado de relaciones, puntuación y ensamblado del contexto final—. El sistema deduplica entidades por nombre y tipo y consolida alias de forma automática.
Entre los casos de uso figuran asistentes personales que recuerden proyectos en curso, herramientas de gestión del conocimiento corporativo y desarrolladores que quieran evitar los costes y la latencia de los servicios de memoria gestionados en la nube. Las pruebas de rendimiento en un Apple M2 indican alrededor de 4,2 ms para el pipeline completo de recuperación y más de 8.000 inserciones de entidades por segundo, si bien los autores precisan que son cifras de compilación en modo debug y que --release las multiplica por 3-5. El repositorio incluye 122 pruebas en Rust, 21 en Python y 12 benchmarks, y acepta contribuciones mediante pull requests.
