En el nuevo ecosistema de agentes y modelos de lenguaje, todos hablan de “memoria”, pero en la práctica muchos sistemas siguen siendo amnésicos: cada conversación empieza casi de cero, el histórico está disperso y la información útil se pierde en logs o vector stores poco transparentes. Ahí es donde entra Memori, un motor de memoria open source pensado para dar a cualquier LLM una memoria persistente, auditable y fácilmente integrable… con una sola línea de código.
Lejos de reinventar la rueda con otra base de datos exótica, Memori apuesta por algo radicalmente pragmático: usa bases de datos SQL estándar (SQLite, PostgreSQL, MySQL…) como backend de memoria. Es decir, la memoria de tu agente vive en infra que ya conoces, controlas y puedes consultar con SQL de toda la vida.
Qué es Memori y qué problema intenta resolver
Memori se presenta como:
“Un motor de memoria SQL-native para IA que permite a cualquier LLM recordar conversaciones, aprender de las interacciones y mantener contexto entre sesiones con una sola línea:
memori.enable()”.
El objetivo es claro:
- Que un asistente de IA recuerde:
- quién eres, qué proyecto estás construyendo,
- tus preferencias,
- decisiones pasadas.
- Que esa memoria:
- sea persistente (no se pierda al cerrar el proceso),
- sea consultable y auditada (SQL estándar),
- no dependa de un proveedor propietario.
En otras palabras, una capa de memoria reusable para asistentes, agentes y sistemas multiagente, sin obligación de montar un vector DB caro o una infraestructura paralela.
Una integración pensada para desarrolladores impacientes
La promesa central de Memori es casi provocadora:
“One-line integration”.
El flujo básico con OpenAI, por ejemplo, sería algo así:
from memori import Memori
from openai import OpenAI
# Inicializar Memori
memori = Memori(conscious_ingest=True)
memori.enable()
client = OpenAI()
# Primera conversación
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Estoy creando un proyecto con FastAPI"}]
)
# Conversación posterior
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Ayúdame a añadir autenticación"}]
)
# El LLM "sabe" que estás con un proyecto FastAPI gracias a la memoria
No hace falta cambiar la forma en la que llamas a la API: Memori intercepta las llamadas, inyecta contexto antes del request y registra lo importante después de la respuesta.
Además, funciona con:
- OpenAI y Anthropic de forma nativa.
- LiteLLM como capa de compatibilidad para más de 100 modelos.
- Integraciones con frameworks como LangChain, CrewAI, AutoGen, Azure AI Foundry, entre otros.
SQL en lugar de vector DB: una apuesta muy consciente
En un mundo dominado por vector stores, embeddings y ANN indexes, Memori va por otro camino:
- Almacenamiento SQL-nativo:
- Soporta SQLite, PostgreSQL, MySQL, Neon, Supabase…
- La memoria vive en una BBDD que tú gestionas y conoces.
- Sin vendor lock-in:
- Puedes exportar todo a un fichero SQLite y moverlo donde quieras.
- Costes mucho más bajos:
- El proyecto afirma ahorros del 80–90 % frente a montarte un vector DB dedicado.
- Memoria “inteligente”:
- Extrae entidades,
- modela relaciones,
- clasifica recuerdos (hechos, preferencias, contexto…)
- y prioriza qué inyectar en cada conversación.
La idea no es competir con los vector stores para búsquedas semánticas masivas, sino cubrir el caso de uso que muchísimos desarrolladores necesitan: memoria conversacional estructurada, ligada a usuarios y sesiones, fácilmente explotable desde un backend estándar.
Modos de memoria: consciente, automática o ambos
Memori distingue entre varios modos de funcionamiento:
- Conscious Mode (
conscious_ingest=True)
La memoria actúa como una especie de “memoria de trabajo”: inyecta contexto relevante en la conversación actual de manera directa. - Auto Mode (
auto_ingest=True)
El sistema lanza búsquedas dinámicas por cada consulta para recuperar recuerdos relevantes según el prompt y el usuario. - Combined Mode
Combina ambos enfoques: memoria de trabajo + recuperación dinámica, pensado para agentes más sofisticados y sistemas en producción.
La configuración puede hacerse directamente en código o vía variables de entorno usando ConfigManager, lo que facilita integrarlo en despliegues serios (Docker, Kubernetes, etc.) sin acoplar secretos en el código.
Cómo funciona por dentro: interceptor, agentes y SQL
La arquitectura de Memori se basa en una idea sencilla pero poderosa: ponerse en medio de las llamadas al LLM.
Fase previa: inyección de contexto
- Tu app llama a
client.chat.completions.create(...). - Memori intercepta esta llamada antes de llegar al proveedor.
- Un agente de recuperación (auto mode) o agente consciente decide qué recuerdos son relevantes.
- Memori inyecta esos recuerdos en el mensaje que se envía al modelo.
Fase posterior: grabación de memoria
- El modelo devuelve la respuesta.
- Un Memory Agent analiza la conversación:
- extrae entidades,
- clasifica información (hechos, preferencias, reglas, contexto),
- almacena todo en la base SQL con índices de búsqueda de texto.
- Devuelve al cliente exactamente la misma respuesta que habría dado el modelo original.
Proceso en background
Cada cierto tiempo (por defecto, cada 6 horas):
- Un Conscious Agent revisa patrones a largo plazo y promociona recuerdos importantes a memoria de corto plazo, para hacer más eficiente y útil la inyección de contexto.
Casos de uso: de asistentes personales a sistemas multiagente
El repositorio incluye ejemplos prácticos que ilustran bien el tipo de proyectos para los que Memori tiene sentido:
- Asistentes personales con memoria persistente
Un bot que recuerda tu stack, tus proyectos, tus preferencias de estilo de código o hasta tu horario. - Aplicaciones multiusuario
Ejemplos con FastAPI donde cada usuario tiene su propio espacio de memoria aislado (multi-tenant). - Sistemas multiagente
Integraciones con marcos como CrewAI, AutoGen, CamelAI, Swarms, donde varios agentes comparten memoria estructurada. - Diarios personales, investigadores virtuales, soporte al cliente
Demos como “Personal Diary” (seguimiento de estado de ánimo y patrones) o “Researcher” (asistente de investigación con memoria y búsqueda web).
Para quién tiene más sentido Memori
Memori resulta especialmente atractivo si:
- Estás construyendo agentes o asistentes que tienen que recordar cosas a medio y largo plazo.
- No quieres depender de un vector DB propietario ni levantar más infraestructura de la estrictamente necesaria.
- Tu empresa ya tiene un stack basado en PostgreSQL/MySQL y quieres que la memoria de IA sea:
- auditada,
- controlada internamente,
- y compatible con políticas de compliance, backup y observabilidad ya existentes.
- Te interesa evitar el lock-in de servicios gestionados de IA y poder mover tu memoria entre clouds o incluso on-premise.
Preguntas frecuentes sobre Memori
¿Memori sustituye a los vector databases tradicionales?
No necesariamente. Memori está pensado como un motor de memoria conversacional y contextual sobre SQL. Si necesitas búsquedas semánticas a gran escala sobre millones de documentos, un vector DB sigue teniendo sentido. Pero para recordar usuarios, proyectos, preferencias y contexto de interacción, Memori ofrece una alternativa más simple, barata y portable.
¿Es compatible con múltiples modelos y proveedores de IA?
Sí. Funciona de forma nativa con OpenAI y Anthropic, y mediante LiteLLM se integra con más de 100 modelos y proveedores distintos, incluyendo Azure OpenAI y otros servicios compatibles. La idea es que la memoria no dependa de un único modelo.
¿Qué bases de datos soporta Memori?
Memori funciona con cualquier base de datos SQL accesible vía conexión estándar, incluyendo SQLite, PostgreSQL, MySQL, Neon y Supabase. Esto facilita reutilizar infra existente y cumplir con requisitos de soberanía de datos o despliegues on-prem.
¿Es adecuado para entornos de producción y aplicaciones multiusuario?
Sí. El diseño contempla escenarios multiusuario con aislamiento de memoria por usuario o namespace, integración vía variables de entorno y ejemplos de despliegue con FastAPI y otros frameworks. Como siempre, en producción conviene ajustar índices, políticas de retención y monitorización según el volumen real de uso.
Si estás construyendo agentes con memoria y no quieres montar medio stack nuevo solo para guardar recuerdos, Memori es, como mínimo, un proyecto a seguir muy de cerca.
Más información en GitHub Memori





