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

Benutzerspeicher

Schlüssel/Wert-Speicher für Benutzerspeicher, der bei jeder Chat-Anfrage in LibreChat ausgeführt wird

Übersicht

User Memory in LibreChat ist ein Key/Value-Speicher, der benutzerspezifische Informationen über Konversationen hinweg persistent speichert. Ein dedizierter Memory-Agent wird zu Beginn jeder Chat-Anfrage ausgeführt, liest aus diesem Speicher und schreibt hinein, um der Haupt-KI-Antwort personalisierten Kontext bereitzustellen.

Schlüssel/Wert-Speicher, kein Konversationsgedächtnis

Dies ist kein semantisches Gedächtnis über Ihren gesamten Gesprächsverlauf. Es indiziert, bettet oder durchsucht keine vergangenen Unterhaltungen. Stattdessen verwaltet es einen strukturierten Satz von Schlüssel/Wert-Paaren (z. B. user_preferences, learned_facts), die bei jeder Anfrage als Kontext eingefügt werden. Stellen Sie es sich wie einen permanenten Notizblock vor, den die KI vor jeder Antwort liest.

Für den Kontext zu vorherigen Nachrichten innerhalb einer einzelnen Unterhaltung verwendet LibreChat bereits das Standard-Nachrichtenverlaufsfenster — dies ist von dieser Funktion getrennt.

⚠️ Konfiguration erforderlich

Die Memory-Funktionalität muss explizit in Ihrer librechat.yaml Datei konfiguriert werden, damit sie funktioniert. Sie ist standardmäßig nicht aktiviert.

Hauptfunktionen

  • Führt jede Anfrage aus: Der Memory-Agent wird zu Beginn jeder Chat-Anfrage ausgeführt und stellt sicher, dass der gespeicherte Kontext jederzeit verfügbar ist.
  • Key/Value Storage: Informationen werden als strukturierte Key/Value-Paare gespeichert, nicht als rohe Konversationsprotokolle
  • Manuelle Einträge: Benutzer können Speichereinträge direkt manuell hinzufügen, bearbeiten oder entfernen, was ihnen die volle Kontrolle darüber gibt, was die KI speichert.
  • Benutzersteuerung: Wenn aktiviert, können Benutzer den Speicher für ihre individuellen Chats ein- oder ausschalten
  • Anpassbare Schlüssel: Schränken Sie mit validKeys ein, welche Informationskategorien gespeichert werden dürfen
  • Token-Verwaltung: Legen Sie Limits für die Speichernutzung fest, um die Kosten zu kontrollieren
  • Agent-Integration: Nutzen Sie KI-Agenten, um intelligent zu verwalten, was gespeichert wird

Konfiguration

Um Speicherfunktionen zu aktivieren, müssen Sie die memory-Konfiguration zu Ihrer librechat.yaml-Datei hinzufügen:

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'

Das Feld provider sollte mit den akzeptierten Werten übereinstimmen, wie im Model Spec Guide definiert.

Hinweis: Wenn Sie einen benutzerdefinierten endpoint verwenden, muss der Wert des endpoint exakt mit dem definierten Namen des benutzerdefinierten endpoint übereinstimmen.

Siehe den Memory Configuration Guide für detaillierte Konfigurationsoptionen.

Funktionsweise

Ausführung des Memory Agent

Der Memory-Agent wird bei jeder Chat-Anfrage ausgeführt, wenn Memory aktiviert ist. Er wird gleichzeitig mit der Haupt-Chat-Antwort ausgeführt — er beginnt, bevor die Hauptantwort startet, und ist auf die Dauer der Hauptanfrage plus bis zu 3 Sekunden nach deren Abschluss begrenzt.

Dies bedeutet, dass jede Nachricht, die Sie senden, den Memory-Agent dazu veranlasst:

  1. Lesen Sie den aktuellen Schlüssel/Wert-Speicher und fügen Sie relevante Einträge als Kontext hinzu

  2. Analysieren Sie das aktuelle Nachrichtenfenster auf Informationen, die es wert sind, gespeichert oder aktualisiert zu werden

  3. Schreiben Sie alle neuen oder geänderten Einträge zurück in den Speicher

1. Key/Value-Speicher

Speichereinträge werden als Schlüssel/Wert-Paare gespeichert. Wenn der Speicher aktiviert ist, kann das System Einträge wie die folgenden speichern:

  • Benutzereinstellungen (Kommunikationsstil, Interessengebiete)
  • Wichtige Fakten, die explizit von Benutzern geteilt wurden
  • Laufende Projekte oder erwähnte Aufgaben
  • Jede Kategorie, die Sie über validKeys definieren

Benutzer können Speichereinträge auch manuell über die Benutzeroberfläche erstellen, bearbeiten und löschen, was ihnen die direkte Kontrolle darüber gibt, was die KI über sie weiß.

2. Kontextfenster

Der Parameter messageWindowSize bestimmt, wie viele aktuelle Nachrichten für Speicheraktualisierungen analysiert werden. Dies hilft dem Memory-Agent zu entscheiden, welche Informationen es wert sind, im Key/Value-Speicher gespeichert oder aktualisiert zu werden.

Der Parameter maxInputTokens begrenzt den Text des aktuellen Chats, der vor der Extraktion an den automatischen Memory-Agenten gesendet wird. Wenn das ausgewählte Nachrichtenfenster immer noch zu groß ist, behält LibreChat den neuesten Kontext bei und lässt frühere Chat-Inhalte weg, bevor der Memory-Agent aufgerufen wird.

3. Benutzersteuerung

Wenn personalize auf true gesetzt ist:

  • Benutzer sehen einen Memory-Umschalter in ihrer Chat-Oberfläche
  • Sie können den Speicher für einzelne Konversationen aktivieren/deaktivieren
  • Memory-Einstellungen bleiben über Sitzungen hinweg bestehen

4. Gültige Schlüssel

Sie können einschränken, welche Informationskategorien gespeichert werden, indem Sie validKeys angeben:

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

Best Practices

1. Token-Limits

Legen Sie geeignete Token-Limits fest, um Funktionalität und Kosten in Einklang zu bringen:

  • Höhere Limits ermöglichen ein umfassenderes Gedächtnis
  • Niedrigere Limits reduzieren die Verarbeitungskosten
  • Berücksichtigen Sie Ihre Nutzungsmuster und Ihr Budget

2. Benutzerdefinierte Anweisungen

Wenn Sie validKeys verwenden, geben Sie dem Memory-Agent benutzerdefinierte Anweisungen:

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. Datenschutzaspekte

  • Memory speichert Benutzerinformationen über Konversationen hinweg
  • Stellen Sie sicher, dass die Benutzer verstehen, welche Informationen gespeichert werden
  • Erwägen Sie die Implementierung von Datenaufbewahrungsrichtlinien
  • Stellen Sie eine klare Dokumentation zur Speicherauslastung bereit

Beispiele

Grundlegende Konfiguration

Speicher mit Standardeinstellungen aktivieren:

memory:
  tokenLimit: 2000
  maxInputTokens: 12000
  agent:
    provider: 'openAI'
    model: 'gpt-4.1-mini'

Erweiterte Konfiguration

Vollständige Konfiguration mit allen Optionen:

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.3

Für gültige Modellparameter pro Anbieter siehe die Model Spec Preset Fields.

Verwendung vordefinierter Agents

Referenzieren Sie einen bestehenden Agenten über dessen ID:

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

Benutzerdefinierte Endpoints mit Memory

Memory unterstützt vollständig benutzerdefinierte endpoints, einschließlich solcher mit benutzerdefinierten Headern und Umgebungsvariablen. Bei der Verwendung eines benutzerdefinierten endpoints werden Header-Platzhalter und Umgebungsvariablen während der Speicherverarbeitung ordnungsgemäß aufgelöst.

 
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'

Fehlerbehebung

Memory funktioniert nicht

  1. Überprüfen Sie, ob der Speicher in librechat.yaml konfiguriert ist
  2. Überprüfen Sie, dass disabled auf false gesetzt ist
  3. Stellen Sie sicher, dass der konfigurierte Agent/das konfigurierte Modell verfügbar ist
  4. Überprüfen Sie, ob Benutzer den Speicher in ihrer Chat-Oberfläche aktiviert haben
  5. Für benutzerdefinierte endpoints: Stellen Sie sicher, dass der provider-Name exakt mit dem name des benutzerdefinierten endpoints übereinstimmt.

Hoher Token-Verbrauch

  1. Reduzieren Sie tokenLimit, um die Kosten zu kontrollieren
  2. Reduzieren Sie maxInputTokens, um zu begrenzen, wie viel des aktuellen Chats an den Memory-Agent gesendet wird
  3. Verringern Sie messageWindowSize, um weniger Nachrichten zu analysieren
  4. Verwenden Sie validKeys, um einzuschränken, was gespeichert wird
  5. Agent-Anweisungen überprüfen und optimieren

Inkonsistenter Speicher

  1. Überprüfen, ob Benutzer den Speicher ein-/ausschalten
  2. Überprüfen Sie, ob die Token-Limits nicht überschritten werden
  3. Stellen Sie eine konsistente Agentenkonfiguration sicher
  4. Gespeicherten Speicher auf Konflikte überprüfen

Probleme bei der Authentifizierung für benutzerdefinierte endpoint-Konfigurationen

  1. Überprüfen Sie, ob die Umgebungsvariablen in Ihrer .env Datei korrekt gesetzt sind
  2. Stellen Sie sicher, dass benutzerdefinierte Header die korrekte Syntax verwenden (${ENV_VAR} für Umgebungsvariablen, {{LIBRECHAT_USER_*}} für Benutzer-Platzhalter)
  3. Überprüfen Sie, ob der benutzerdefinierte endpoint für reguläre Chat-Vervollständigungen funktioniert, bevor Sie ihn mit dem Speicher (Memory) testen.
  4. Überprüfen Sie die Server-Logs auf Authentifizierungsfehler der benutzerdefinierten endpoint API

Zukünftige Verbesserungen

Die aktuelle Implementierung führt den Memory Agent bei jeder Chat-Anfrage bedingungslos aus. Geplante Verbesserungen umfassen:

  • Semantischer Trigger für Schreibvorgänge: Erkennt, wenn ein Benutzer das Modell explizit aufgefordert hat, sich etwas zu merken (z. B. „Merke dir, dass ich Python bevorzuge“), und führt den Memory-Write-Agent nur in diesen Fällen aus, wodurch unnötige Verarbeitung bei Routine-Nachrichten reduziert wird.
  • Vektor-Ähnlichkeitsabruf (Vector Similarity Recall): Anstatt alle gespeicherten Memory-Einträge in jede Anfrage einzufügen, werden Vektor-Embeddings verwendet, um nur die für den aktuellen Gesprächskontext relevantesten Einträge abzurufen, was sowohl die Effizienz als auch die Relevanz verbessert.
  • Agents - Erstellen Sie benutzerdefinierte KI-Assistenten
  • Presets - Konversationseinstellungen speichern
  • Fork Messages - Unterhaltungen verzweigen und dabei den Kontext beibehalten

Wie finden Sie diese Anleitung?