Preguntas frecuentes
Preguntas básicas
¿Qué relación hay entre MemX y mem0?
MemX es la versión mejorada (superconjunto) de mem0, que añade la capa de gestión inteligente de memoria ACE. Con ace_enabled=False, su comportamiento es idéntico al de mem0 y sin sobrecarga.
¿Se necesita GPU?
No. El modelo de embeddings local all-MiniLM-L6-v2 se ejecuta en la CPU mediante ONNX Runtime (< 5ms/entrada); el prefiltrado por reglas del Reflector no depende de la GPU, y el refinamiento con LLM del modo hybrid se realiza a través de una API remota.
¿Genera un consumo adicional de tokens de LLM?
El modo hybrid predeterminado solo invoca al LLM para los candidatos con valor, lo que reduce las llamadas en más del 90 % respecto al uso total de mem0; cuando el LLM no está disponible, degrada automáticamente a reglas puras, con coste cero. Para desactivarlo explícitamente, configura reflector.mode="rules".
¿Qué bases de datos vectoriales son compatibles?
Hereda todas las de mem0 (Qdrant, Chroma, Pinecone, Weaviate, Milvus, etc.); el almacenamiento en memoria predeterminado es adecuado para desarrollo y pruebas.
Preguntas de uso
¿Cómo migrar desde mem0?
pip install git+https://github.com/UU114/memx.gitCambia
from mem0 import Memoryporfrom memx import MemoryEl código existente no requiere modificaciones (ACE está desactivado por defecto).
Cuando estés listo, añade
config={"ace_enabled": True}para habilitar las funciones inteligentes.
¿Dónde se almacenan los datos?
Depende del backend de base de datos vectorial configurado; por defecto se usa la memoria (se pierde al reiniciar). Para producción se recomienda la persistencia con Qdrant/Chroma. El modelo de embeddings local se almacena en caché en ~/.memx/models/.
¿Cómo se controla la velocidad de decaimiento?
| Parámetro | Efecto |
|---|---|
decay.half_life_days | Aumentar → decaimiento más lento (predeterminado: 30 días) |
decay.boost_factor | Aumentar → refuerzo de recuperación más marcado (predeterminado: 0,1) |
decay.permanent_threshold | Reducir → más fácil convertirse en memoria permanente (predeterminado: 15 veces) |
¿Cómo se gestiona el conocimiento mal identificado?
memx list --scope project:my-app— consultarmemx forget <memory-id>— eliminarmemx learn "correct knowledge"— añadir manualmente
¿Cómo compartir memoria entre varias personas o varios agentes?
Habilita el modo demonio; varios agentes comparten la misma base de conocimiento a través de un socket IPC (complementos de IDE, colaboración en equipo), y se usa scope para distinguir proyectos/espacios de trabajo.
Preguntas de privacidad
El filtrado no se puede desactivar
Las 12 reglas integradas de filtrado de información sensible son una línea de seguridad que no se puede desactivar; solo es posible añadir reglas adicionales mediante privacy_custom_patterns.
¿Qué tipos de información sensible se filtran?
| Tipo | Ejemplo |
|---|---|
| Clave privada PEM | -----BEGIN RSA PRIVATE KEY----- |
| Token Bearer / JWT | Bearer eyJhbG... |
| Clave de API de Anthropic | sk-ant-api03-* |
| Clave de API de OpenAI | sk-proj-* |
| Token de GitHub | ghp_*, github_pat_* |
| Clave de acceso de AWS | AKIA* |
| Clave secreta de AWS | base64 de 40 caracteres |
| Cadena de conexión de base de datos | postgres://user:pass@host/db |
| Ruta del sistema operativo | /home/user/.ssh/id_rsa |
| Regla personalizada | Se añade mediante privacy_custom_patterns |
INFO
Estas 12 reglas se centran en información sensible del tipo claves y rutas locales (secrets + user paths), y no en la PII en el sentido tradicional (correo electrónico / teléfono / documento de identidad, etc.). Si necesitas filtrar PII, amplíalo por tu cuenta mediante privacy_custom_patterns.
¿Adónde van los valores originales tras el filtrado?
Se reemplazan por un marcador de posición (como [REDACTED:api_key]), y el valor original no se almacena en ningún lugar. El filtrado se ejecuta al inicio del flujo de escritura.
Preguntas de rendimiento
¿Cuántas memorias se pueden almacenar?
Depende de la capacidad del backend de base de datos vectorial; MemX en sí no tiene un límite rígido. El motor de decaimiento archiva automáticamente para mantener un tamaño activo razonable.
¿RecallReinforcer afecta al rendimiento de búsqueda?
No. Es un hilo en segundo plano asíncrono que solo actualiza recall_count después de devolver los resultados, sin bloquear la búsqueda.
¿Cuál es la latencia de recuperación? (< 10.000 memorias)
| Operación | Latencia |
|---|---|
| Búsqueda híbrida de cuatro capas | 10-50ms |
| Búsqueda por palabras clave pura (degradación L4) | 5-20ms |
| Cálculo de embeddings local | < 5ms |
| Escritura (incluye Reflector + Curator) | 20-100ms |