Memoria del usuario
Almacén de clave/valor para la memoria del usuario que se ejecuta en cada solicitud de chat en LibreChat
Descripción general
La User Memory en LibreChat es un almacén de clave/valor que persiste información específica del usuario a través de las conversaciones. Un agente de memoria dedicado se ejecuta al inicio de cada solicitud de chat, leyendo y escribiendo en este almacén para proporcionar contexto personalizado a la respuesta principal de la IA.
Almacén de clave/valor, no memoria de conversación
Esto no es memoria semántica sobre todo tu historial de conversaciones. No indexa, incrusta ni busca conversaciones pasadas. En su lugar, mantiene un conjunto estructurado de pares clave/valor (por ejemplo, user_preferences, learned_facts) que se inyectan en cada solicitud como contexto. Piénsalo como un bloc de notas persistente que la IA lee antes de cada respuesta.
Para obtener contexto sobre mensajes anteriores dentro de una misma conversación, LibreChat ya utiliza la ventana de historial de mensajes estándar, la cual es independiente de esta función.
⚠️ Configuración requerida
La funcionalidad de Memory debe configurarse explícitamente en su archivo librechat.yaml para que funcione. No está habilitada de forma predeterminada.
Características clave
- Se ejecuta en cada solicitud: El agente de memoria se ejecuta al inicio de cada solicitud de chat, asegurando que el contexto almacenado esté siempre disponible.
- Almacenamiento Clave/Valor: La información se almacena como pares clave/valor estructurados, no como registros de conversación sin procesar
- Entradas manuales: Los usuarios pueden añadir, editar o eliminar entradas de memoria manualmente de forma directa, lo que otorga un control total sobre lo que la IA recuerda.
- Control de usuario: Cuando está habilitado, los usuarios pueden activar o desactivar la memoria para sus chats individuales
- Claves personalizables: Restrinja qué categorías de información pueden almacenarse utilizando
validKeys - Gestión de tokens: Establezca límites en el uso de memoria para controlar los costos
- Integración de agentes: Utilice agentes de IA para gestionar de forma inteligente lo que se recuerda
Configuración
Para habilitar las funciones de memoria, necesitas añadir la configuración memory a tu archivo librechat.yaml:
El campo provider debe coincidir con los valores aceptados tal como se define en la Guía de Model Specs.
Nota: Si está utilizando un endpoint personalizado, el valor del endpoint debe coincidir exactamente con el nombre del endpoint personalizado definido.
Consulta la Guía de configuración de memoria para obtener opciones de configuración detalladas.
Cómo funciona
Ejecución del Agente de Memoria
El agente de memoria se ejecuta en cada solicitud de chat cuando la memoria está habilitada. Se ejecuta simultáneamente con la respuesta principal del chat: comienza antes de que inicie la respuesta principal y está limitado a la duración de la solicitud principal más hasta 3 segundos después de que esta finalice.
Esto significa que cada mensaje que envías activa al agente de memoria para:
Leer el almacén de clave/valor actual e inyectar las entradas relevantes como contexto
Analiza la ventana de mensajes reciente en busca de información que valga la pena almacenar o actualizar
Escribir cualquier entrada nueva o modificada de vuelta al almacén
1. Almacenamiento de clave/valor
Las entradas de memoria se almacenan como pares clave/valor. Cuando la memoria está habilitada, el sistema puede almacenar entradas como:
- Preferencias del usuario (estilo de comunicación, temas de interés)
- Hechos importantes compartidos explícitamente por los usuarios
- Proyectos o tareas en curso mencionados
- Cualquier categoría que definas mediante
validKeys
Los usuarios también pueden crear, editar y eliminar manualmente entradas de memoria a través de la interfaz, lo que les otorga un control directo sobre lo que la IA sabe acerca de ellos.
2. Ventana de contexto
El parámetro messageWindowSize determina cuántos mensajes recientes se analizan para las actualizaciones de memoria. Esto ayuda al agente de memoria a decidir qué información vale la pena almacenar o actualizar en el almacén de clave/valor.
El parámetro maxInputTokens limita el texto del chat reciente enviado al agente de memoria automática antes de la extracción. Si la ventana de mensajes seleccionada sigue siendo demasiado grande, LibreChat conserva el contexto más reciente y omite el contenido del chat anterior antes de invocar al agente de memoria.
3. Control del usuario
Cuando personalize está configurado en true:
- Los usuarios ven un interruptor de memoria en su interfaz de chat
- Pueden habilitar/deshabilitar la memoria para conversaciones individuales
- Los ajustes de Memory persisten entre sesiones
4. Claves válidas
Puede restringir qué categorías de información se almacenan especificando validKeys:
Mejores prácticas
1. Límites de tokens
Establezca límites de tokens adecuados para equilibrar la funcionalidad con el costo:
- Límites más altos permiten una memoria más completa
- Los límites inferiores reducen los costos de procesamiento
- Considere sus patrones de uso y presupuesto
2. Instrucciones personalizadas
Al usar validKeys, proporcione instrucciones personalizadas al agente de memoria:
3. Consideraciones de privacidad
- La memoria almacena información del usuario a través de las conversaciones
- Asegúrese de que los usuarios comprendan qué información se está almacenando
- Considere implementar políticas de retención de datos
- Proporcionar documentación clara sobre el uso de memoria
Ejemplos
Configuración básica
Habilitar la memoria con la configuración predeterminada:
Configuración avanzada
Configuración completa con todas las opciones:
Para conocer los parámetros de modelo válidos por proveedor, consulte los Model Spec Preset Fields.
Uso de agentes predefinidos
Referenciar un agente existente por ID:
Endpoints personalizados con memoria
Memory es totalmente compatible con endpoints personalizados, incluidos aquellos con encabezados personalizados y variables de entorno. Al utilizar un endpoint personalizado, los marcadores de posición de los encabezados y las variables de entorno se resuelven correctamente durante el procesamiento de Memory.
- Todos los custom endpoint headers son compatibles
Solución de problemas
La memoria no funciona
- Verifique que la memoria esté configurada en
librechat.yaml - Comprueba que
disabledesté establecido enfalse - Asegúrese de que el agente/modelo configurado esté disponible
- Verifique que los usuarios hayan habilitado la memoria en su interfaz de chat
- Para endpoints personalizados: asegúrese de que el nombre del
providercoincida exactamente con elnamedel endpoint personalizado
Alto uso de tokens
- Reduzca
tokenLimitpara controlar los costos - Reduzca
maxInputTokenspara limitar la cantidad de chat reciente que se envía al agente de memoria - Disminuya
messageWindowSizepara analizar menos mensajes - Usa
validKeyspara restringir lo que se almacena - Revisar y optimizar las instrucciones del agente
Memoria inconsistente
- Comprobar si los usuarios están activando o desactivando la memoria
- Verificar que no se excedan los límites de tokens
- Asegurar una configuración de agente consistente
- Revisar la memoria almacenada en busca de conflictos
Problemas de autenticación de endpoint personalizado
- Verifique que las variables de entorno estén configuradas correctamente en su archivo
.env - Asegúrese de que los encabezados personalizados utilicen la sintaxis correcta (
${ENV_VAR}para variables de entorno,{{LIBRECHAT_USER_*}}para marcadores de posición de usuario) - Comprueba que el endpoint personalizado funciona para las completaciones de chat normales antes de realizar pruebas con la memoria.
- Revise los registros del servidor en busca de errores de autenticación de la API del endpoint personalizado
Mejoras futuras
La implementación actual ejecuta el agente de memoria en cada solicitud de chat de forma incondicional. Las mejoras planificadas incluyen:
- Activador semántico para escrituras: Detecta cuando un usuario ha pedido explícitamente al modelo que recuerde algo (por ejemplo, "Recuerda que prefiero Python") y ejecuta el agente de escritura en memoria solo en esos casos, reduciendo el procesamiento innecesario en mensajes rutinarios.
- Recuperación por similitud vectorial: En lugar de inyectar todas las entradas de memoria almacenadas en cada solicitud, utiliza incrustaciones vectoriales (vector embeddings) para recuperar solo las entradas más relevantes para el contexto actual de la conversación, mejorando tanto la eficiencia como la relevancia.
Funciones relacionadas
- Agents - Crea asistentes de IA personalizados
- Presets - Guardar configuraciones de conversación
- Fork Messages - Bifurca conversaciones manteniendo el contexto
¿Qué te parece esta guía?