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

Configurazione della memoria

Panoramica

L'oggetto memory ti consente di configurare la memoria della conversazione e le funzionalità di personalizzazione per l'applicazione. Questa configurazione controlla come il sistema ricorda e personalizza le conversazioni, inclusi i limiti di token, le finestre di contesto dei messaggi e l'elaborazione della memoria basata su agenti.

Esempio

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
disabledBooleanDisabilita la funzionalità di memoria quando impostato su true. Quando disabilitato, il sistema non memorizzerà né utilizzerà la memoria della conversazione.disabled: false

Predefinito: false

memory:
  disabled: true

validKeys

KeyTypeDescriptionExample
validKeysArray of StringsSpecifica quali chiavi sono valide per l'archiviazione della memoria. Questo aiuta a controllare quali tipi di informazioni possono essere memorizzati nella memoria.validKeys: ["user_name", "preferences", "contesto"]

Predefinito: Nessuna restrizione (tutte le chiavi sono valide)

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

tokenLimit

KeyTypeDescriptionExample
tokenLimitNumberImposta il numero massimo di token che possono essere utilizzati per l'archiviazione e l'elaborazione della memoria.tokenLimit: 2000

Predefinito: Nessun limite

memory:
  tokenLimit: 2000

charLimit

KeyTypeDescriptionExample
charLimitNumberImposta il numero massimo di caratteri consentiti per le singole voci di memoria. Ciò previene payload di memoria eccessivi che potrebbero influire sulle prestazioni o superare i limiti dell'API.charLimit: 10000

Predefinito: 10000

memory:
  charLimit: 10000

maxInputTokens

KeyTypeDescriptionExample
maxInputTokensNumberImposta il numero massimo di token delle chat recenti inviati all'agente di memoria automatica prima dell'estrazione della memoria. Gli input lunghi vengono troncati dall'inizio in modo che il contesto più recente venga preservato.maxInputTokens: 12000

Predefinito: 12000

memory:
  maxInputTokens: 12000

personalize

KeyTypeDescriptionExample
personalizeBooleanSe impostato su true, offre agli utenti la possibilità di attivare o disattivare le funzionalità di memoria. Gli utenti possono attivare/disattivare la memoria nella loro interfaccia di chat. Se impostato su false, le funzionalità di memoria sono completamente disabilitate.personalize: true

Predefinito: true

memory:
  personalize: false

messageWindowSize

KeyTypeDescriptionExample
messageWindowSizeNumberSpecifica il numero di messaggi recenti da includere nella finestra di contesto della memoria.messageWindowSize: 5

Predefinito: 5

memory:
  messageWindowSize: 10

agent

KeyTypeDescriptionExample
agentObject | UnionConfigura l'agente responsabile dell'elaborazione della memoria. Può essere un riferimento a un agente esistente tramite ID o una configurazione completa dell'agente.agent: { provider: "openAI", model: "gpt-4" }

Il campo agent supporta due diversi formati di configurazione:

Agent per ID

Quando hai un agente preconfigurato, puoi farvi riferimento tramite il suo ID:

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

Configurazione Agente Personalizzato

Per un maggiore controllo, puoi definire una configurazione completa dell'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

Campi di configurazione dell'agente

Quando si utilizza una configurazione personalizzata dell'agente, sono disponibili i seguenti campi:

provider (obbligatorio)

KeyTypeDescriptionExample
providerStringSpecifica il provider AI per l'agente di memoria. Può essere un provider integrato (ad esempio, "openAI", "anthropic", "google") o un nome di endpoint personalizzato.provider: "openAI"

model (obbligatorio)

KeyTypeDescriptionExample
modelStringSpecifica il modello da utilizzare per l'elaborazione della memoria.model: "gpt-4"

istruzioni (opzionale)

KeyTypeDescriptionExample
instructionsStringIstruzioni personalizzate che sostituiscono le istruzioni predefinite su quando impostare e/o eliminare la memoria. Dovrebbero essere utilizzate principalmente quando si impiegano validKeys che richiedono una gestione specifica delle informazioni.instructions: "Only store user preferences and facts when explicitly mentioned."

model_parameters (opzionale)

KeyTypeDescriptionExample
model_parametersObjectParametri aggiuntivi da passare al modello per perfezionarne il comportamento. I valori devono essere stringhe, numeri o booleani.model_parameters: { temperature: 0.7 }

Esempio di configurazione completa

Ecco un esempio completo che mostra tutte le opzioni di configurazione della 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

Utilizzo di endpoint personalizzati

La funzionalità di memoria supporta gli endpoint personalizzati. Quando si utilizza un endpoint personalizzato, il campo provider deve corrispondere esattamente al name dell'endpoint personalizzato. Le intestazioni personalizzate con variabili d'ambiente e segnaposto utente vengono risolte correttamente.


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'

Note

  • La funzionalità Memory migliora la continuità e la personalizzazione della conversazione
  • Quando personalize è impostato su true, gli utenti visualizzano un interruttore nell'interfaccia di chat per controllare l'utilizzo della memoria.
  • I limiti dei token aiutano a controllare l'utilizzo della memoria e i costi di elaborazione
  • maxInputTokens limita il contesto della chat inviato all'agente di memoria automatico, mentre tokenLimit controlla l'utilizzo della memoria archiviata
  • Le chiavi valide forniscono un controllo granulare su quali informazioni possono essere archiviate
  • Le instructions personalizzate sostituiscono le istruzioni di gestione della memoria predefinite e dovrebbero essere utilizzate con validKeys
  • La configurazione dell'agente consente la personalizzazione del comportamento di elaborazione della memoria
  • Quando disabilitato, tutte le funzionalità di memoria vengono disattivate indipendentemente dalle altre impostazioni
  • La dimensione della finestra del messaggio influisce sulla quantità di contesto recente considerata per gli aggiornamenti della memoria

Com’è questa guida?