Motor de memoria SQL nativo de código abierto para LLM, Agentes de IA y sistemas multiagente. Implementa memoria de IA persistente y consultable con una sola línea de código.
Memori - Introducción detallada al motor de memoria de IA de código abierto
Resumen del proyecto
Memori es un motor de memoria SQL nativo de código abierto, diseñado específicamente para modelos de lenguaje grandes (LLM), agentes de IA y sistemas multiagente. Permite que cualquier LLM tenga capacidades de memoria persistente y consultable con una sola línea de código, almacenando los datos de memoria en una base de datos SQL estándar.
Características principales:
- Integración con una sola línea de código mediante
memori.enable() - Los datos de memoria se almacenan en bases de datos SQL estándar (SQLite, PostgreSQL, MySQL), con control y propiedad total del usuario
- La IA puede recordar conversaciones, aprender de las interacciones y mantener el contexto a lo largo de múltiples sesiones
¿Por qué elegir Memori?
1. Integración con una sola línea de código
Compatible con OpenAI, Anthropic, LiteLLM, LangChain y cualquier framework de LLM, la integración es extremadamente sencilla.
2. Almacenamiento SQL nativo
- Datos de memoria portátiles, consultables y auditables
- Almacenados en una base de datos bajo tu control total
- No se necesitan complejas bases de datos vectoriales
3. Ahorro de costes del 80-90%
No requiere costosas bases de datos vectoriales, lo que reduce significativamente los costes operativos.
4. Cero dependencia de proveedor
Puedes exportar la memoria a formato SQLite y migrarla a cualquier lugar en cualquier momento.
5. Gestión inteligente de la memoria
- Extracción automática de entidades
- Mapeo de relaciones
- Priorización de contexto
Inicio rápido
Instalación
pip install memorisdk
Uso básico
from memori import Memori
from openai import OpenAI
# Inicialización
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": "I'm building a FastAPI project"}]
)
# Conversación posterior - Memori proporciona contexto automáticamente
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Help me add authentication"}]
)
# El LLM sabrá automáticamente la información de tu proyecto FastAPI
Bases de datos compatibles
Memori es compatible con cualquier base de datos SQL estándar:
| Base de datos | Ejemplo de cadena de conexión |
|---|---|
| SQLite | sqlite:///my_memory.db |
| PostgreSQL | postgresql://user:pass@localhost/memori |
| MySQL | mysql://user:pass@localhost/memori |
| Neon | postgresql://user:pass@ep-*.neon.tech/memori |
| Supabase | postgresql://postgres:pass@db.*.supabase.co/postgres |
Frameworks de LLM compatibles
A través del sistema de callbacks nativo de LiteLLM, Memori es compatible con todos los frameworks principales:
| Framework | Estado | Modo de uso |
|---|---|---|
| OpenAI | ✓ Soporte nativo | from openai import OpenAI |
| Anthropic | ✓ Soporte nativo | from anthropic import Anthropic |
| LiteLLM | ✓ Soporte nativo | from litellm import completion |
| LangChain | ✓ Compatible | Integración a través de LiteLLM |
| Azure OpenAI | ✓ Compatible | Configuración usando ProviderConfig.from_azure() |
| Más de 100 modelos | ✓ Compatible | Cualquier proveedor compatible con LiteLLM |
Opciones de configuración
Configuración de la base de datos
from memori import Memori
memori = Memori(
database_connect="postgresql://user:pass@localhost/memori",
conscious_ingest=True, # Memoria de trabajo a corto plazo
auto_ingest=True, # Búsqueda dinámica en cada consulta
openai_api_key="sk-..."
)
memori.enable()
Modos de memoria
Modo Conscious - Inyección de memoria de trabajo única
memori = Memori(conscious_ingest=True)
Modo Auto - Búsqueda dinámica en cada consulta
memori = Memori(auto_ingest=True)
Modo combinado - Ambos
memori = Memori(conscious_ingest=True, auto_ingest=True)
Configuración de variables de entorno
from memori import Memori, ConfigManager
config = ConfigManager()
config.auto_load() # Carga desde variables de entorno o archivo de configuración
memori = Memori()
memori.enable()
Configurar variables de entorno:
export MEMORI_DATABASE__CONNECTION_STRING="postgresql://..."
export MEMORI_AGENTS__OPENAI_API_KEY="sk-..."
export MEMORI_MEMORY__NAMESPACE="production"
Cómo funciona
Memori funciona interceptando las llamadas a los LLM, inyectando contexto antes de la llamada y registrando información después:
Antes de la llamada (Inyección de contexto)
- Tu aplicación llama a
client.chat.completions.create(messages=[...]) - Memori intercepta transparentemente esa llamada
- El Agente de Recuperación (modo auto) o el Agente Consciente (modo conscious) recupera la memoria relevante
- El contexto se inyecta en los mensajes antes de enviarlos al proveedor del LLM
Después de la llamada (Registro)
- El proveedor del LLM devuelve la respuesta
- El Agente de Memoria extrae entidades, clasifica (hechos, preferencias, habilidades, reglas, contexto)
- La conversación se almacena en la base de datos SQL, con índices de búsqueda de texto completo
- La respuesta original se devuelve a tu aplicación
Procesamiento en segundo plano (cada 6 horas)
- El Agente Consciente analiza patrones, elevando recuerdos importantes del almacenamiento a largo plazo al almacenamiento a corto plazo
Ejemplos de escenarios de aplicación
Ejemplos básicos
- Uso básico - Configuración sencilla de memoria
- Asistente personal - Asistente de IA con memoria
- Recuperación de memoria - Llamada a funciones
- Configuración avanzada - Configuración para entornos de producción
Escenarios multiusuario
- Multiusuario simple - Aislamiento de memoria de usuario
- Aplicación FastAPI multiusuario - API REST con Swagger
Ejemplos de integración de frameworks
Memori proporciona ejemplos de integración con varios frameworks de IA populares:
- Agno
- AWS Strands
- Azure AI Foundry
- AutoGen
- CamelAI
- CrewAI
- Digital Ocean AI
- LangChain
- OpenAI Agent
- Swarms
Demostraciones en línea
- Asistente de diario personal - Aplicación Streamlit disponible en línea
- Agente asistente de investigación - Herramienta de investigación disponible en línea
Arquitectura técnica
Memori adopta un diseño de arquitectura por capas:
- Capa de intercepción - Intercepta transparentemente las llamadas a la API del LLM
- Capa de recuperación - Recupera inteligentemente el contexto de memoria relevante
- Capa de almacenamiento - Almacenamiento persistente en base de datos SQL
- Capa de análisis - Análisis en segundo plano y optimización de la memoria
Para obtener documentación detallada sobre la arquitectura, consulta architecture.md en la documentación oficial.
Edición Enterprise (Memori v3)
Memori está abriendo un pequeño grupo de prueba privado para la versión v3. Si deseas obtener más información y acceso anticipado a la nueva arquitectura de memoria para IA empresarial, puedes unirte a su programa de pruebas.
Comunidad y soporte
- Documentación: https://memorilabs.ai/docs
- Comunidad Discord: https://discord.gg/abD4eGym6v
- Problemas en GitHub: https://github.com/GibsonAI/memori/issues
Guía de contribución
¡Memori da la bienvenida a las contribuciones de la comunidad! El proyecto proporciona una guía detallada de contribución, que incluye:
- Configuración del entorno de desarrollo
- Estilo y estándares de código
- Envío de Pull Requests
- Reporte de problemas
Licencia de código abierto
Licencia Apache 2.0
Resumen
Memori es una solución de memoria de IA potente y fácil de usar, especialmente adecuada para:
- Desarrolladores que necesitan añadir funciones de memoria a aplicaciones LLM
- Equipos que construyen asistentes de IA multisesión
- Proyectos que necesitan reducir los costes de las bases de datos vectoriales
- Empresas que desean un control total sobre los datos de memoria de la IA
A través de su almacenamiento SQL nativo y su filosofía de diseño de integración con una sola línea de código, Memori reduce en gran medida la barrera y el coste de añadir funciones de memoria a las aplicaciones de IA.