Almacena, comprime y recupera memorias a largo plazo con compresión semántica sin pérdidas. Compatible con Claude, Cursor, LM Studio y más.
Funciona con cualquier plataforma de IA que soporte MCP o integración con Python
|
Claude Desktop |
Cursor |
LM Studio |
Cherry Studio |
Paquete PyPI |
+ Cualquier Cliente MCP |
🇨🇳 中文 •
🇯🇵 日本語 •
🇰🇷 한국어 •
🇪🇸 Español •
🇫🇷 Français •
🇩🇪 Deutsch •
🇧🇷 Português
🇷🇺 Русский •
🇸🇦 العربية •
🇮🇹 Italiano •
🇻🇳 Tiếng Việt •
🇹🇷 Türkçe
Descripción General • Inicio Rápido • Servidor MCP • Evaluación • Citación
pip install simplemem. Ver Guía de Uso del Paquete →
SimpleMem logra una puntuación F1 superior (43.24%) con un costo mínimo de tokens (~550), ocupando la posición ideal superior izquierda.
SimpleMem es un marco de memoria eficiente basado en compresión semántica sin pérdidas que aborda el desafío fundamental de la memoria eficiente a largo plazo para agentes LLM. A diferencia de los sistemas existentes que acumulan pasivamente contexto redundante o dependen de costosos bucles de razonamiento iterativo, SimpleMem maximiza la densidad de información y la utilización de tokens a través de un pipeline de tres etapas:
|
Compresión Estructurada Semántica Destila interacciones no estructuradas en unidades de memoria compactas con índices multi-vista |
Síntesis Semántica en Línea Proceso intra-sesión que integra instantáneamente contexto relacionado en representaciones abstractas unificadas para eliminar redundancia |
Planificación de Recuperación Consciente de la Intención Infiere la intención de búsqueda para determinar dinámicamente el alcance de recuperación y construir contexto preciso eficientemente |
La Arquitectura SimpleMem: (1) La Compresión Estructurada Semántica filtra diálogos de baja utilidad y convierte ventanas informativas en unidades de memoria compactas e independientes del contexto. (2) La Síntesis Semántica en Línea consolida fragmentos relacionados durante la escritura, manteniendo una topología de memoria compacta y coherente. (3) La Planificación de Recuperación Consciente de la Intención infiere la intención de búsqueda para adaptar el alcance de recuperación y las formas de consulta, permitiendo recuperación paralela multi-vista y construcción de contexto eficiente en tokens.
Demo de Comparación de Velocidad
SimpleMem vs. Línea Base: Demostración de comparación de velocidad en tiempo real
Resultados del Benchmark LoCoMo-10 (GPT-4.1-mini)
| Modelo | ⏱️ Tiempo de Construcción | 🔎 Tiempo de Recuperación | ⚡ Tiempo Total | 🎯 F1 Promedio |
|---|---|---|---|---|
| A-Mem | 5140.5s | 796.7s | 5937.2s | 32.58% |
| LightMem | 97.8s | 577.1s | 675.9s | 24.63% |
| Mem0 | 1350.9s | 583.4s | 1934.3s | 34.20% |
| SimpleMem ⭐ | 92.6s | 388.3s | 480.9s | 43.24% |
💡 Ventajas Clave:
- 🏆 Mayor Puntuación F1: 43.24% (+26.4% vs. Mem0, +75.6% vs. LightMem)
- ⚡ Recuperación Más Rápida: 388.3s (32.7% más rápido que LightMem, 51.3% más rápido que Mem0)
- 🚀 Más Rápido de Extremo a Extremo: 480.9s de tiempo total de procesamiento (12.5× más rápido que A-Mem)
SimpleMem aplica un mecanismo de filtrado implícito de densidad semántica integrado en el proceso de generación del LLM para filtrar contenido de interacción redundante. El sistema reformula flujos de diálogo brutos en unidades de memoria compactas — hechos autocontenidos con correferencias resueltas y marcas de tiempo absolutas. Cada unidad se indexa mediante tres representaciones complementarias:
| 🔍 Capa | 📊 Tipo | 🎯 Propósito | 🛠️ Implementación |
|---|---|---|---|
| Semántica | Densa | Similitud conceptual | Embeddings vectoriales (1024-d) |
| Léxica | Dispersa | Coincidencia exacta de términos | Índice de palabras clave estilo BM25 |
| Simbólica | Metadatos | Filtrado estructurado | Marcas de tiempo, entidades, personas |
✨ Ejemplo de Transformación:
- Entrada: "Él se reunirá con Bob mañana a las 2pm" [❌ relativo, ambiguo]
+ Salida: "Alice se reunirá con Bob en Starbucks el 2025-11-16T14:00:00" [✅ absoluto, atómico]
A diferencia de los sistemas tradicionales que dependen del mantenimiento asíncrono en segundo plano, SimpleMem realiza la síntesis sobre la marcha durante la fase de escritura. Las unidades de memoria relacionadas se sintetizan en representaciones abstractas de nivel superior dentro del alcance de la sesión actual, permitiendo que experiencias repetitivas o estructuralmente similares se desruiden y compriman inmediatamente.
✨ Ejemplo de Síntesis:
- Fragmento 1: "El usuario quiere café"
- Fragmento 2: "El usuario prefiere leche de avena"
- Fragmento 3: "El usuario lo quiere caliente"
+ Consolidado: "El usuario prefiere café caliente con leche de avena"
Esta síntesis proactiva asegura que la topología de memoria se mantenga compacta y libre de fragmentación redundante.
En lugar de una recuperación de profundidad fija, SimpleMem aprovecha las capacidades de razonamiento del LLM para generar un plan de recuperación integral. Dada una consulta, el módulo de planificación infiere la intención de búsqueda latente para determinar dinámicamente el alcance y la profundidad de recuperación:
El sistema luego ejecuta recuperación paralela multi-vista a través de índices semánticos, léxicos y simbólicos, y fusiona los resultados mediante deduplicación basada en ID:
|
🔹 Consultas Simples
|
🔸 Consultas Complejas
|
📈 Resultado: 43.24% de puntuación F1 con 30× menos tokens que los métodos de contexto completo.
| Tipo de Tarea | SimpleMem F1 | Mem0 F1 | Mejora |
|---|---|---|---|
| MultiHop | 43.46% | 30.14% | +43.8% |
| Temporal | 58.62% | 48.91% | +19.9% |
| SingleHop | 51.12% | 41.3% | +23.8% |
| Métrica | SimpleMem | Mem0 | Notas |
|---|---|---|---|
| F1 Promedio | 25.23% | 23.77% | Competitivo con un modelo 99× más pequeño |
# 📥 Clonar repositorio
git clone https://github.com/aiming-lab/SimpleMem.git
cd SimpleMem
# 📦 Instalar dependencias
pip install -r requirements.txt
# ⚙️ Configurar ajustes de API
cp config.py.example config.py
# Editar config.py con tu clave API y preferencias
# config.py
OPENAI_API_KEY = "your-api-key"
OPENAI_BASE_URL = None # o endpoint personalizado para Qwen/Azure
LLM_MODEL = "gpt-4.1-mini"
EMBEDDING_MODEL = "Qwen/Qwen3-Embedding-0.6B" # Recuperación de última generación
from main import SimpleMemSystem
# 🚀 Inicializar sistema
system = SimpleMemSystem(clear_db=True)
# 💬 Agregar diálogos (Etapa 1: Compresión Estructurada Semántica)
system.add_dialogue("Alice", "Bob, let's meet at Starbucks tomorrow at 2pm", "2025-11-15T14:30:00")
system.add_dialogue("Bob", "Sure, I'll bring the market analysis report", "2025-11-15T14:31:00")
# ✅ Finalizar codificación atómica
system.finalize()
# 🔎 Consulta con recuperación consciente de la intención
answer = system.ask("When and where will Alice and Bob meet?")
print(answer)
# Salida: "16 November 2025 at 2:00 PM at Starbucks"
SimpleMem está disponible como servicio de memoria alojado en la nube mediante el Model Context Protocol (MCP).
🌐 Servicio en la Nube: mcp.simplemem.cloud
{
"mcpServers": {
"simplemem": {
"url": "https://mcp.simplemem.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}
📖 Para instrucciones detalladas y guía de auto-alojamiento, consulta la Documentación MCP
# 🎯 Benchmark completo LoCoMo
python test_locomo10.py
# 📉 Evaluación de subconjunto (5 muestras)
python test_locomo10.py --num-samples 5
@article{simplemem2025, title={SimpleMem: Efficient Lifelong Memory for LLM Agents}, author={Liu, Jiaqi and Su, Yaofeng and Xia, Peng and Zhou, Yiyang and Han, Siwei and Zheng, Zeyu and Xie, Cihang and Ding, Mingyu and Yao, Huaxiu}, journal={arXiv preprint arXiv:2601.02553}, year={2025}, url={https://github.com/aiming-lab/SimpleMem} }
Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.