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:
version: 1.3.5
cache: true
memory:
disabled: false # Set to true to completely disable memory
personalize: true # Gives users the ability to toggle memory on/off, true by default
tokenLimit: 2000 # Maximum tokens for memory storage
maxInputTokens: 12000 # Maximum recent-chat tokens sent to the memory agent
messageWindowSize: 5 # Number of recent messages to consider
agent:
provider: 'openAI'
model: 'gpt-4'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:
memory:
validKeys:
- 'user_preferences'
- 'conversation_context'
- 'learned_facts'
- 'personal_information'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:
memory:
agent:
provider: 'openAI'
model: 'gpt-4'
instructions: |
Store information only in the specified validKeys categories.
Focus on explicitly stated preferences and important facts.
Delete outdated or corrected information promptly.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:
memory:
tokenLimit: 2000
maxInputTokens: 12000
agent:
provider: 'openAI'
model: 'gpt-4.1-mini'Configuración avanzada
Configuración completa con todas las opciones:
memory:
disabled: false
validKeys: ['preferences', 'context', 'facts']
tokenLimit: 3000
maxInputTokens: 12000
personalize: true
messageWindowSize: 10
agent:
provider: 'anthropic'
model: 'claude-3-opus-20240229'
instructions: 'Remember only explicitly stated preferences and key facts.'
model_parameters:
temperature: 0.3Para 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:
memory:
agent:
id: 'memory-specialist-001'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 encabezado y las variables de entorno se resuelven correctamente durante el procesamiento de Memory.
endpoints:
custom:
- name: 'Custom Memory Endpoint'
apiKey: 'dummy'
baseURL: 'https://api.gateway.ai/v1'
headers:
x-gateway-api-key: '${GATEWAY_API_KEY}'
x-gateway-virtual-key: '${GATEWAY_OPENAI_VIRTUAL_KEY}'
X-User-Identifier: '{{LIBRECHAT_USER_EMAIL}}'
X-Application-Identifier: 'LibreChat - Test'
api-key: '${TEST_CUSTOM_API_KEY}'
models:
default:
- 'gpt-4o-mini'
- 'gpt-4o'
fetch: false
memory:
disabled: false
tokenLimit: 3000
maxInputTokens: 12000
personalize: true
messageWindowSize: 10
agent:
provider: 'Custom Memory Endpoint'
model: 'gpt-4o-mini'- 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 consumo 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 personalizados
- 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 funcione para las finalizaciones de chat regulares 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 cuándo 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 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 ajustes de conversación
- Fork Messages - Bifurca conversaciones manteniendo el contexto
¿Qué te parece esta guía?
Búsqueda de mensajes
Busque rápidamente en conversaciones pasadas con Meilisearch integrado en LibreChat
API de RAG (Chat con archivos)
API de Generación Aumentada por Recuperación (RAG) para la indexación y recuperación de documentos utilizando Langchain y FastAPI. Esta API se integra con LibreChat para proporcionar respuestas basadas en el contexto a partir de archivos subidos por el usuario.