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
validKeysein, 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 Memory-Funktionen 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:
Liest den aktuellen Schlüssel/Wert-Speicher und fügt relevante Einträge als Kontext hinzu
Analysieren Sie das aktuelle Nachrichtenfenster auf Informationen, die es wert sind, gespeichert oder aktualisiert zu werden
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
validKeysdefinieren
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 Unterhaltungen 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 angemessene 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.3Fü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'- Alle custom endpoint headers werden unterstützt
Fehlerbehebung
Memory funktioniert nicht
- Überprüfen Sie, ob der Speicher in
librechat.yamlkonfiguriert ist - Überprüfen Sie, dass
disabledauffalsegesetzt ist - Stellen Sie sicher, dass der konfigurierte Agent/das konfigurierte Modell verfügbar ist
- Überprüfen Sie, ob Benutzer den Speicher in ihrer Chat-Oberfläche aktiviert haben
- Für benutzerdefinierte endpoints: Stellen Sie sicher, dass der
provider-Name exakt mit demnamedes benutzerdefinierten endpoints übereinstimmt.
Hoher Token-Verbrauch
- Reduzieren Sie
tokenLimit, um die Kosten zu kontrollieren - Reduzieren Sie
maxInputTokens, um zu begrenzen, wie viel des aktuellen Chats an den Memory-Agent gesendet wird - Verringern Sie
messageWindowSize, um weniger Nachrichten zu analysieren - Verwenden Sie
validKeys, um einzuschränken, was gespeichert wird - Überprüfen und optimieren Sie die Agent-Anweisungen
Inkonsistenter Speicher
- Überprüfen, ob Benutzer den Speicher ein-/ausschalten
- Überprüfen Sie, ob die Token-Limits nicht überschritten werden
- Stellen Sie eine konsistente Agentenkonfiguration sicher
- Gespeicherten Speicher auf Konflikte überprüfen
Probleme bei der Authentifizierung von Custom Endpoints
- Überprüfen Sie, ob die Umgebungsvariablen in Ihrer
.envDatei korrekt gesetzt sind - Stellen Sie sicher, dass benutzerdefinierte Header die korrekte Syntax verwenden (
${ENV_VAR}für Umgebungsvariablen,{{LIBRECHAT_USER_*}}für Benutzer-Platzhalter) - Überprüfen Sie, ob der benutzerdefinierte endpoint für reguläre Chat-Vervollständigungen funktioniert, bevor Sie ihn mit dem Speicher testen.
- Ü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 Einträge abzurufen, die für den aktuellen Gesprächskontext am relevantesten sind. Dies verbessert sowohl die Effizienz als auch die Relevanz.
Verwandte Funktionen
- Agents - Erstellen Sie benutzerdefinierte KI-Assistenten
- Presets - Konversationseinstellungen speichern
- Fork Messages - Unterhaltungen verzweigen und dabei den Kontext beibehalten
Wie finden Sie diese Anleitung?
Nachrichtensuche
Schnelle Suche in vergangenen Unterhaltungen mit der integrierten Meilisearch von LibreChat
RAG-API (Chat mit Dateien)
Retrieval-Augmented Generation (RAG) API für die Dokumentenindizierung und -abfrage unter Verwendung von Langchain und FastAPI. Diese API lässt sich in LibreChat integrieren, um kontextbezogene Antworten basierend auf vom Benutzer hochgeladenen Dateien bereitzustellen.