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 Speicherfunktionen zu aktivieren, müssen Sie die memory-Konfiguration zu Ihrer librechat.yaml-Datei hinzufügen:
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:
Lesen Sie den aktuellen Schlüssel/Wert-Speicher und fügen Sie 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 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:
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:
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:
Erweiterte Konfiguration
Vollständige Konfiguration mit allen Optionen:
Für gültige Modellparameter pro Anbieter siehe die Model Spec Preset Fields.
Verwendung vordefinierter Agents
Referenzieren Sie einen bestehenden Agenten über dessen ID:
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.
- 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 - Agent-Anweisungen überprüfen und optimieren
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 für benutzerdefinierte endpoint-Konfigurationen
- Ü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 (Memory) 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 für den aktuellen Gesprächskontext relevantesten Einträge abzurufen, was sowohl die Effizienz als auch die Relevanz verbessert.
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?