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

Configuração de Memória

Visão geral

O objeto memory permite que você configure a memória de conversação e os recursos de personalização para a aplicação. Esta configuração controla como o sistema lembra e personaliza as conversas, incluindo limites de tokens, janelas de contexto de mensagens e processamento de memória baseado em agentes.

Exemplo

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
disabledBooleanDesativa a funcionalidade de memória quando definido como true. Quando desativado, o sistema não armazenará nem usará o histórico de conversas.disabled: false

Padrão: false

memory:
  disabled: true

validKeys

KeyTypeDescriptionExample
validKeysArray of StringsEspecifica quais chaves são válidas para o armazenamento na memória. Isso ajuda a controlar quais tipos de informações podem ser armazenados na memória.validKeys: ["user_name", "preferences", "contexto"]

Padrão: Sem restrição (todas as chaves são válidas)

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

tokenLimit

KeyTypeDescriptionExample
tokenLimitNumberDefine o número máximo de tokens que podem ser usados para armazenamento e processamento de memória.tokenLimit: 2000

Padrão: Sem limite

memory:
  tokenLimit: 2000

charLimit

KeyTypeDescriptionExample
charLimitNumberDefine o número máximo de caracteres permitido para entradas individuais de memória. Isso evita payloads de memória excessivamente grandes que poderiam impactar o desempenho ou exceder os limites da API.charLimit: 10000

Padrão: 10000

memory:
  charLimit: 10000

maxInputTokens

KeyTypeDescriptionExample
maxInputTokensNumberDefine o número máximo de tokens de chats recentes enviados ao agente de memória automática antes da extração da memória. Entradas longas são truncadas a partir do início para que o contexto mais recente seja preservado.maxInputTokens: 12000

Padrão: 12000

memory:
  maxInputTokens: 12000

personalize

KeyTypeDescriptionExample
personalizeBooleanQuando definido como true, dá aos usuários a capacidade de optar por usar ou não os recursos de memória. Os usuários podem ativar/desativar a memória na interface de chat. Quando false, os recursos de memória são completamente desativados.personalize: true

Padrão: true

memory:
  personalize: false

messageWindowSize

KeyTypeDescriptionExample
messageWindowSizeNumberEspecifica o número de mensagens recentes a serem incluídas na janela de contexto da memória.messageWindowSize: 5

Padrão: 5

memory:
  messageWindowSize: 10

agent

KeyTypeDescriptionExample
agentObject | UnionConfigura o agente responsável pelo processamento de memória. Pode ser uma referência a um agente existente por ID ou uma configuração completa de agente.agent: { provider: "openAI", model: "gpt-4" }

O campo agent suporta dois formatos de configuração diferentes:

Agente por ID

Quando você tiver um agente pré-configurado, você pode referenciá-lo pelo seu ID:

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

Configuração de Agente Personalizado

Para maior controle, você pode definir uma configuração completa de 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 Configuração do Agente

Ao usar a configuração de agente personalizada, os seguintes campos estão disponíveis:

provider (obrigatório)

KeyTypeDescriptionExample
providerStringEspecifica o provedor de IA para o agente de memória. Pode ser um provedor integrado (por exemplo, "openAI", "anthropic", "google") ou um nome de endpoint personalizado.provider: "openAI"

model (obrigatório)

KeyTypeDescriptionExample
modelStringEspecifica o modelo a ser usado para o processamento de memória.model: "gpt-4"

instruções (opcional)

KeyTypeDescriptionExample
instructionsStringInstruções personalizadas que substituem as instruções padrão sobre quando definir e/ou excluir a memória. Devem ser usadas principalmente ao utilizar validKeys que exigem um tratamento de informações específico.instructions: "Only store user preferences and facts when explicitly mentioned."

model_parameters (opcional)

KeyTypeDescriptionExample
model_parametersObjectParâmetros adicionais para passar ao modelo para ajustar seu comportamento. Os valores devem ser strings, números ou booleanos.model_parameters: { temperature: 0.7 }

Exemplo Completo de Configuração

Aqui está um exemplo abrangente mostrando todas as opções de configuração de memória:

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

Usando Custom Endpoints

O recurso de memória suporta endpoints personalizados. Ao usar um endpoint personalizado, o campo provider deve corresponder exatamente ao name do endpoint personalizado. Cabeçalhos personalizados com variáveis de ambiente e placeholders de usuário são resolvidos corretamente.


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

  • A funcionalidade de Memory aprimora a continuidade e a personalização das conversas
  • Quando personalize for true, os usuários recebem uma chave seletora na interface de chat para controlar o uso da memória
  • Os limites de tokens ajudam a controlar o uso de memória e os custos de processamento.
  • maxInputTokens limita o contexto do chat enviado para o agente de memória automática, enquanto tokenLimit controla o uso da memória armazenada
  • Chaves válidas fornecem controle granular sobre quais informações podem ser armazenadas
  • As instructions personalizadas substituem as instruções padrão de manipulação de memória e devem ser usadas com validKeys
  • A configuração de Agent permite a personalização do comportamento de processamento de memória
  • Quando desativado, todos os recursos de memória são desligados, independentemente de outras configurações
  • O tamanho da janela de mensagens afeta quanto contexto recente é considerado para atualizações de memória

Como está este guia?