Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Configuración de memoria

Descripción general

El objeto memory le permite configurar la memoria de la conversación y las funciones de personalización de la aplicación. Esta configuración controla cómo el sistema recuerda y personaliza las conversaciones, incluyendo los límites de tokens, las ventanas de contexto de los mensajes y el procesamiento de memoria basado en agentes.

Ejemplo

memory:
  disabled: false
  validKeys: ['user_preferences', 'conversation_context', 'personal_info']
  tokenLimit: 2000
  charLimit: 10000
  maxInputTokens: 12000
  personalize: true
  messageWindowSize: 5
  agent:
    provider: 'openAI'
    model: 'gpt-4'
    instructions: 'You are a helpful assistant that remembers user preferences and context.'
    model_parameters:
      temperature: 0.7
      max_tokens: 1000

disabled

KeyTypeDescriptionExample
disabledBooleanDesactiva la funcionalidad de memoria cuando se establece en true. Cuando está desactivada, el sistema no almacenará ni utilizará la memoria de la conversación.disabled: false

Predeterminado: false

memory:
  disabled: true

validKeys

KeyTypeDescriptionExample
validKeysArray of StringsEspecifica qué claves son válidas para el almacenamiento en memoria. Esto ayuda a controlar qué tipos de información pueden almacenarse en la memoria.validKeys: ["user_name", "preferences", "contexto"]

Predeterminado: Sin restricciones (todas las claves son válidas)

memory:
  validKeys:
    - 'user_preferences'
    - 'conversation_context'
    - 'personal_information'
    - 'learned_facts'

tokenLimit

KeyTypeDescriptionExample
tokenLimitNumberEstablece el número máximo de tokens que se pueden utilizar para el almacenamiento y procesamiento de memoria.tokenLimit: 2000

Predeterminado: Sin límite

memory:
  tokenLimit: 2000

charLimit

KeyTypeDescriptionExample
charLimitNumberEstablece el número máximo de caracteres permitidos para las entradas de memoria individuales. Esto evita cargas útiles de memoria excesivas que podrían afectar el rendimiento o exceder los límites de la API.charLimit: 10000

Predeterminado: 10000

memory:
  charLimit: 10000

maxInputTokens

KeyTypeDescriptionExample
maxInputTokensNumberEstablece el número máximo de tokens de chats recientes enviados al agente de memoria automática antes de la extracción de memoria. Las entradas largas se truncan desde el principio para que se preserve el contexto más reciente.maxInputTokens: 12000

Predeterminado: 12000

memory:
  maxInputTokens: 12000

personalize

KeyTypeDescriptionExample
personalizeBooleanCuando se establece en true, permite a los usuarios optar por activar o desactivar el uso de las funciones de memoria. Los usuarios pueden activar/desactivar la memoria en su interfaz de chat. Cuando es false, las funciones de memoria se desactivan por completo.personalize: true

Predeterminado: true

memory:
  personalize: false

messageWindowSize

KeyTypeDescriptionExample
messageWindowSizeNumberEspecifica el número de mensajes recientes que se incluirán en la ventana de contexto de memoria.messageWindowSize: 5

Predeterminado: 5

memory:
  messageWindowSize: 10

agent

KeyTypeDescriptionExample
agentObject | UnionConfigura el agente responsable del procesamiento de memoria. Puede ser una referencia a un agente existente por ID o una configuración de agente completa.agent: { provider: "openAI", model: "gpt-4" }

El campo agent admite dos formatos de configuración diferentes:

Agente por ID

Cuando tengas un agente preconfigurado, puedes hacer referencia a él mediante su ID:

memory:
  agent:
    id: 'memory-agent-001'

Configuración de Agente Personalizado

Para un mayor control, puede definir una configuración completa del agente:

memory:
  agent:
    provider: 'openAI'
    model: 'gpt-4'
    instructions: 'You are a memory assistant that helps maintain conversation context and user preferences.'
    model_parameters:
      temperature: 0.3
      max_tokens: 1500
      top_p: 0.9

Campos de configuración del agente

Al utilizar la configuración de agente personalizada, los siguientes campos están disponibles:

provider (obligatorio)

KeyTypeDescriptionExample
providerStringEspecifica el proveedor de IA para el agente de memoria. Puede ser un proveedor integrado (por ejemplo, "openAI", "anthropic", "google") o un nombre de endpoint personalizado.provider: "openAI"

model (obligatorio)

KeyTypeDescriptionExample
modelStringEspecifica el modelo a utilizar para el procesamiento de memoria.model: "gpt-4"

instructions (opcional)

KeyTypeDescriptionExample
instructionsStringInstrucciones personalizadas que reemplazan las instrucciones predeterminadas sobre cuándo establecer y/o eliminar la memoria. Deben utilizarse principalmente cuando se emplean validKeys que requieren un manejo de información específico.instructions: "Only store user preferences and facts when explicitly mentioned."

model_parameters (opcional)

KeyTypeDescriptionExample
model_parametersObjectParámetros adicionales para pasar al modelo para ajustar su comportamiento. Los valores deben ser cadenas, números o booleanos.model_parameters: { temperature: 0.7 }

Ejemplo de configuración completa

Aquí tienes un ejemplo completo que muestra todas las opciones de configuración de memoria:

version: 1.3.10
cache: true
 
memory:
  disabled: false
  validKeys:
    - 'user_preferences'
    - 'conversation_context'
    - 'learned_facts'
    - 'personal_information'
  tokenLimit: 3000
  charLimit: 10000
  maxInputTokens: 12000
  personalize: true
  messageWindowSize: 8
  agent:
    provider: 'openAI'
    model: 'gpt-4'
    instructions: |
      Store memory using only the specified validKeys. For user_preferences: save 
      explicitly stated preferences about communication style, topics of interest, 
      or workflow preferences. For conversation_context: save important facts or 
      ongoing projects mentioned. For learned_facts: save objective information 
      about the user. For personal_information: save only what the user explicitly 
      shares about themselves. Delete outdated or incorrect information promptly.
    model_parameters:
      temperature: 0.2
      max_tokens: 2000
      top_p: 0.8
      frequency_penalty: 0.1

Uso de endpoints personalizados

La función de memoria es compatible con endpoints personalizados. Al utilizar un endpoint personalizado, el campo provider debe coincidir exactamente con el name del endpoint personalizado. Los encabezados personalizados con variables de entorno y marcadores de posición de usuario se resuelven correctamente.

 
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'

Notas

  • La funcionalidad de Memory mejora la continuidad y personalización de la conversación
  • Cuando personalize es true, los usuarios obtienen un interruptor en su interfaz de chat para controlar el uso de la memoria.
  • Los límites de tokens ayudan a controlar el uso de memoria y los costos de procesamiento.
  • maxInputTokens limita el contexto del chat enviado al agente de memoria automática, mientras que tokenLimit controla el uso de memoria almacenada
  • Las claves válidas proporcionan un control granular sobre qué información puede almacenarse
  • Las instructions personalizadas reemplazan las instrucciones de manejo de memoria predeterminadas y deben usarse con validKeys
  • La configuración del agente permite personalizar el comportamiento del procesamiento de memoria
  • Cuando está desactivado, todas las funciones de memoria se apagan independientemente de otros ajustes.
  • El tamaño de la ventana de mensajes afecta cuánta información de contexto reciente se considera para las actualizaciones de memoria

¿Qué te parece esta guía?