Mnemosyne für den Hermes-Agenten: Schnellstart für lokale Erinnerungen
Lokaler Hermes-Speicher mit kontrollierten Schreibvorgängen.
Mnemosyne ist ein lokalzenterter Gedächtnisanbieter für den Hermes Agent, der Arbeitsgedächtnis, strukturierte Fakten, zeitliche Daten und episodische Verläufe in lokalen SQLite-Datenbanken speichert – ohne gehosteten Service, ohne zwingende Netzwerkaufrufe und mit ungewöhnlich granularer Steuermöglichkeit beim Schreiben.
Die nützlichste Eigenschaft ist dabei nicht die reine Qualität der Abrufbarkeit. Es ist der Umfang der Kontrolle, die über den Schreibpfad offen gelegt wird: Das automatische Speichern von Konversationen kann nach Rolle eingeschränkt oder ganz deaktiviert werden, das Protokollieren von Werkzeugergebnissen ist standardmäßig ausgeschaltet, explizite Merken- und Vergessen-Operationen bleiben unabhängig davon verfügbar und neuere Versionen fügen optionale Unterdrückungen von Selbst-Echos an den Grenzen der Kontextkompression hinzu. Diese Kombination macht es zu einer sinnvollen Wahl, wenn Sie persistentes Gedächtnis wünschen, ohne dass automatisch jede Konversation zu permanentem Wissen wird.
Diese Disziplin des Schreibpfads ist wichtig, weil Agent-Gedächtnis einen gut dokumentierten Fehlermodus aufweist: Die eigene Inferenz eines Modells kann erfasst, später so abgerufen werden, als wäre sie eine Beobachtung, und genutzt werden, um eine noch stärkere Version von sich selbst zu rechtfertigen. Selbstverstärkende Gedächtnisschleifen bei KI-Agenten behandelt diesen Fehlermodus ausführlich; dieser Leitfaden konzentriert sich auf die konkrete Mnemosyne-Konfiguration, die ihn in der Praxis begrenzt. Für die Einordnung von Mnemosyne im Vergleich zu den anderen Hermes-Gedächtnis-Backends siehe Vergleich der Agent-Gedächtnisanbieter.

Mnemosyne in einer Minute
Ein typischer Gedächtnisanbieter führt eine Form von Erfassen, Extrahieren, Speichern, Abrufen und anschließender Einspeisung in einen zukünftigen Prompt durch. Mnemosyne fügt mehrere unterschiedliche Schichten um diesen grundlegenden Zyklus hinzu: Arbeitsgedächtnis, semantische und lexikale Abrufbarkeit, strukturierte Fakten, zeitliche Informationen, Entitätsverknüpfungen, episodisches Gedächtnis, Konsolidierung, kanonische Fakten und Gedächtnisvalidierung. Die Speicherung erfolgt in lokalem SQLite mit FTS5 und optionalem Vektorabruf, was es considerably überprüfbarer als ein rein cloudbasiertes Gedächtnisprodukt und leistungsfähiger als eine einfache MEMORY.md-Datei macht.
Sehr kurz zur Einordnung im Verhältnis zum übrigen Hermes-Ökosystem: Holographic ist einfacher und bewusst auf Fakten-Speicher ausgerichtet; Hindsight betont hybride Abrufbarkeit, Wissensgraphen und Reflexion; Honcho betont Peer- und Nutzermodellierung mit dialektischer Schlussfolgerung; Mem0 betont automatische, LLM-basierte Faktenextraktion; und Mnemosyne kombiniert lokale SQLite-Speicherung, hybride Abrufbarkeit, Konsolidierung, strukturierte Fakten und ungewöhnlich granulare Beibehaltungskontrollen. Die vollständige Aufschlüsselung, einschließlich der Infrastrukturanforderungen und Self-Hosting-Hinweise für jeden Anbieter, findet sich in Vergleich der Agent-Gedächtnisanbieter.
Aktuelle Versionen
Stand September 2026 ist die stabile PyPI-Veröffentlichung mnemosyne-memory 3.15.1, wobei der 4.0-Zweig als Pre-Release verfügbar ist. Für eine produktionsreife Hermes-Installation beginnen Sie mit der stabilen Version, es sei denn, Sie benötigen spezifisch einen Fix oder eine Funktion aus 4.0 und sind bereit, die Datenbankmigration und das Verhaltensänderungen zu testen. Prüfen Sie Ihre installierte Version mit:
hermes mnemosyne version
Mnemosyne in Hermes installieren
Aktivieren Sie zunächst die eigene virtuelle Umgebung von Hermes, falls Sie die standardmäßige lokale Installation verwendet haben:
source ~/.hermes/hermes-agent/venv/bin/activate
Für lokale Embedding-Unterstützung installieren Sie das Kernterminal mit dem Embeddings-Extra sowie dem Hermes-Plugin-Wrapper:
python -m pip install \
"mnemosyne-memory[embeddings]" \
mnemosyne-hermes
Registrieren Sie anschließend das Plugin:
mnemosyne-hermes install
Wenn Sie eine bestehende Plugin-Registrierung ersetzen:
mnemosyne-hermes install --force
Aktivieren Sie den Anbieter und starten Sie das Gateway neu:
hermes config set memory.provider mnemosyne
hermes gateway restart
Verifizieren Sie mit:
hermes memory status
Das erwartete Ausgabe-Ähnliche sieht so aus:
Provider: mnemosyne
Plugin: installiert
Status: verfügbar
Docker- und persistente Server-Installationen
Falls Hermes innerhalb einer persistierenden Docker- oder imagebasierten Bereitstellung läuft, installieren Sie in eine seitliche virtuelle Umgebung im montierten Hermes-Home, anstatt in die wiederaufbaubare Python-Umgebung des Containers, damit das Plugin Image-Rebuilds übersteht:
export HERMES_HOME=/opt/data
VENV="$HERMES_HOME/.mnemosyne/venv"
python3 -m venv "$VENV"
"$VENV/bin/python" -m pip install --upgrade "mnemosyne-memory[embeddings]" mnemosyne-hermes
"$VENV/bin/mnemosyne-hermes" install --mode wrapper --python "$VENV/bin/python"
hermes config set memory.provider mnemosyne
Die seitliche Venv muss dieselbe Python-Haupt- und Minder_VERSION wie das laufende Hermes-Gateway verwenden – verweisen Sie nicht auf ein beliebiges python3 aus dem PATH. Starten Sie anschließend den eigentlichen Container oder Service neu und verifizieren Sie mit "$VENV/bin/mnemosyne-hermes" status parallel zu hermes memory status.
Deaktivieren Sie nicht das gesamte Hermes-Gedächtnis-Werkzeugset
Halten Sie zwei Konzepte getrennt: Das eigene eingebaute Gedächtnis von Hermes (MEMORY.md / USER.md, vollständig behandelt in Hermes Agent Gedächtnissystem) und den externen Anbieter (Mnemosyne). Führen Sie nicht beiläufig hermes tools disable memory aus, wenn Sie einen externen Anbieter konfigurieren – je nach Hermes-Version kann dieser Befehl auch externe Gedächtnisanbieter-Werkzeuge ausblenden. Verwenden Sie stattdessen die Anbieterkonfiguration, wie unten gezeigt.
Grundlegender Status und Inspektion
hermes memory status
hermes mnemosyne stats
hermes mnemosyne stats --global
hermes mnemosyne inspect "Abfrage"
Exportieren Sie ein portables Backup:
hermes mnemosyne export \
--output ~/mnemosyne-backup.json
Die zugrunde liegende Datenbank liegt normalerweise unter ~/.hermes/mnemosyne/data/mnemosyne.db. Da es sich um SQLite handelt, sind Inspektion und Backup mit Standardwerkzeugen einfach. Für den Rest der im gesamten Leitfaden referenzierten Gateway-, Sessions- und Diagnosebefehle ist das Hermes Agent CLI-Spickzettel eine schnellere Referenz, als durch die --help-Ausgabe zu graben.
Die Standard-Beibehaltungspolitik verdient Aufmerksamkeit
Die erste Kontrolle, die es zu verstehen gilt, ist sync_roles. Die aktuellen Standardwerte von Mnemosyne sind bereits konservativer als frühe Versionen – die automatische Hermes-Synchronisation standardmäßig auf Nutzertumme statt auf sowohl Nutzer- als auch Assistenten-Tumme – aber für eine strenge nur-explizite Beibehaltung lohnt es sich, das automatische Speichern von Tummern vollständig zu deaktivieren. Bearbeiten Sie ~/.hermes/config.yaml:
memory:
provider: mnemosyne
mnemosyne:
sync_roles: []
Eine leere Liste bedeutet, dass gewöhnliche Konversationstummern nicht automatisch von sync_turn() gespeichert werden. Explizite mnemosyne_remember-Operationen funktionieren weiterhin unabhängig – normale Konversationen fließen nicht mehr automatisch ins Gedächtnis, während ein explizites „merke dir das“ Mnemosyne weiterhin erreicht.
Automatisches Protokollieren von Werkzeugergebnissen deaktivieren
Mnemosyne kann auch Werkzeugausführungen als Gedächtnis protokollieren. Für eine konservative Einstellung lassen Sie dies in ~/.hermes/.env deaktiviert:
MNEMOSYNE_LOG_TOOLS=0
Dies ist bereits der Standard, aber das explizite Setzen dokumentiert die Richtlinie, anstatt sich auf eine Annahme über Standardwerte zu verlassen. Starten Sie Hermes anschließend neu:
hermes gateway restart
Mit sync_roles: [] und MNEMOSYNE_LOG_TOOLS=0 zusammen sind beide großen automatischen Schreibpfade – das automatische Konversationsspeichern und das automatische Werkzeugergebnis-Speichern – ausgeschaltet.
Automatisches Abrufen beibehalten
Das Deaktivieren automatischer Schreibvorgänge erfordert nicht das Deaktivieren des Abrufens. Eine nützliche Richtlinie hält die automatische Beibehaltung ausgeschaltet, während automatisches Abrufen, explizites Merken und explizites Vergessen alle aktiv bleiben – das Gedächtnis sollte leicht lesbar und schwer schreibbar sein, was dem Gegenteil einer „alles erfassen und später sortieren“-Standardeinstellung nahe kommt.
Eine dauerhafte Agenten-Anweisung hinzufügen
Die Anbieterkonfiguration blockiert die automatische Anbieter-Erfassung, aber das Modell kann weiterhin selbst entscheiden, ein explizites Schreibwerkzeug auf eigene Initiative aufzurufen. Fügen Sie eine explizite Richtlinie zu SOUL.md hinzu:
## Langzeitgedächtnis-Richtlinie
Mnemosyne ist der Langzeitgedächtnis-Anbieter.
Schreibe nichts in Mnemosyne, es sei denn, der Nutzer bittet explizit dich, diese Informationen zu merken, zu speichern, zu beibehalten oder zu archivieren.
Wenn Informationen nützlich für zukünftige Sessions erscheinen, aber der Nutzer nicht explizit darum gebeten hat, sie zu merken, bitte um Erlaubnis, bevor du mnemosyne_remember oder ein anderes Mnemosyne-Schreibwerkzeug aufrufst.
Erstelle keine dauerhaften Gedächtnisse aus deiner eigenen Schlussfolgerung, Annahmen, Zusammenfassungen, Interpretationen, Konklusionen oder abgeleiteten Präferenzen.
Erstelle keine dauerhaften Gedächtnisse aus Werkzeugausgaben, es sei denn, der Nutzer bittet explizit darum, dieses Ergebnis zu merken.
Wenn du ein genehmigtes Gedächtnis speicherst, bewahre das auf, was der Nutzer tatsächlich gesagt hat.
Verziere es nicht mit abgeleitetem Kontext oder Schlussfolgerungen.
Das Lesen und Abrufen von Mnemosyne-Gedächtnissen ist erlaubt, ohne um Erlaubnis bitten zu müssen.
Starten Sie das Gateway neu und beginnen Sie anschließend eine neue Session:
hermes gateway restart
/new
Dies ist eine modellzwinge Richtlinien, keine harte Berechtigungsgrenze – sie ergänzt die obige anbieterseitige Konfiguration, ersetzt sie aber nicht.
Was ist mit memory.write_approval?
Hermes unterstützt memory.write_approval: true für das Schreiben in das eingebaute MEMORY.md / USER.md, und Mnemosyne implementiert in neueren Versionen seine eigene anbieterspezifische Staging-Logik für explizite Schreibvorgänge. Dies ist vielversprechend, aber es gibt einen Architektur-Einwand, der ernst genommen werden sollte: Hermes stellt noch keinen einheitlichen, anbieterneutralen Genehmigungsvertrag über alle externen Gedächtnisanbieter bereit, und Mnemosynes Pending/Apply-Implementierung ist anbieterspezifisch, statt Teil eines gemeinsamen Standards zu sein. Nehmen Sie nicht an, dass die Genehmigung korrekt funktioniert, nur weil der Konfigurationsschlüssel vorhanden ist – testen Sie ihn gegen Ihre exakten Hermes- und Mnemosyne-Versionen. Bis anbieterunabhängige Genehmigung reift, ergibt die Kombination aus sync_roles: [], MNEMOSYNE_LOG_TOOLS=0 und der obigen explizit-schreibenden SOUL.md-Richtlinie eine verlässliche Baseline, wobei der Genehmigungspfad separat getestet wird, falls Sie darauf vertrauen möchten.
Selbst-Echo-Unterdrückung aktivieren
Aktuelles Mnemosyne bietet auch optionale Selbst-Echo-Unterdrückung an:
MNEMOSYNE_SELF_ECHO_ENABLED=1
Fügen Sie dies in ~/.hermes/.env hinzu und starten Sie dann neu:
hermes gateway restart
Die Selbst-Echo-Unterdrückung zielt spezifisch auf Kontextkompressionsgrenzen ab – ihr Zweck ist es, Fälle zu reduzieren, in denen Gedächtnis, das der Anbieter gerade erstellt hat, sofort wieder dem Agenten als unabhängiger Kontext zugeführt wird. Sie ist bewusst best-effort und ersetzt keine Schreibfilterung: Schreibkontrollen verhindern, dass fragwürdige Gedächtnisse überhaupt erst eingehen, während Selbst-Echo-Kontrollen verhindern, dass aktuelle Anbieterausgaben direkt zurückgeleitet werden. Beide sind wichtig, und keines ersetzt das andere.
Eine konservative Mnemosyne-Konfiguration
Die Teile zusammengefügt, sieht eine Startkonfiguration für einen selbstgehosteten persönlichen Engineering-Agenten so aus. In ~/.hermes/config.yaml:
memory:
provider: mnemosyne
mnemosyne:
sync_roles: []
In ~/.hermes/.env:
MNEMOSYNE_LOG_TOOLS=0
MNEMOSYNE_SELF_ECHO_ENABLED=1
Und in SOUL.md, mindestens:
Speichere Langzeitgedächtnis nur, wenn der Nutzer explizit darum bittet.
Erhöhe modellgenerierte Schlussfolgerungen oder Werkzeugausgaben nicht ohne explizite Erlaubnis zu dauerhaftem Gedächtnis.
Testen, dass gewöhnliche Konversation nicht beibehalten wird
Prüfen Sie zuerst die Basisanzahl:
hermes mnemosyne stats
Starten Sie eine neue Hermes-Session und sagen Sie eine einfache faktische Aussage, ohne den Agenten zu bitten, sie zu merken, beispielsweise:
PurpleOtter nutzt Port 48123.
Suchen Sie danach danach:
hermes mnemosyne inspect "PurpleOtter"
Erwartet: Ergebnisse für 'PurpleOtter': 0. Prüfen Sie auch hermes mnemosyne stats erneut – die Arbeitsgedächtnis-Anzahl sollte aufgrund dieses gewöhnlichen Tumms nicht zugenommen haben.
Explizites Gedächtnis testen
Sagen Sie nun die gleiche Art von Aussage, aber bitten Sie explizit um Beibehaltung:
Merke dir, dass BlueKoala Port 17321 nutzt.
Inspektieren Sie es, starten Sie dann eine neue Session und fragen Sie danach:
hermes mnemosyne inspect "BlueKoala"
/new
Welchen Port nutzt BlueKoala?
Hermes sollte den Wert korrekt abrufen – dieses Testpaar trennt die Schreibpfad-Richtlinie (nichts kommt rein ohne Nachfrage) vom Abrufmechanismus (was rein kommt, kommt zuverlässig wieder heraus).
Werkzeugprotokollierung testen
Mit gesetztem MNEMOSYNE_LOG_TOOLS=0 bitten Sie Hermes, einen eindeutigen, individuellen Befehl auszuführen:
Nutze das Terminal-Werkzeug, um auszuführen:
echo tool-canary-834729
Suchen Sie dann nach der Canary-String:
hermes mnemosyne inspect "tool-canary-834729"
Erwartet: 0 Ergebnisse. Dies ist ein viel stärkerer Test, als einfach zu vertrauen, dass die Umgebungsvariable überall respektiert wird.
Datenbank inspizieren
Da die Speicherung SQLite ist, ist das interne Schema direkt inspizierbar:
sqlite3 ~/.hermes/mnemosyne/data/mnemosyne.db '.tables'
Je nach Version sehen Sie Tabellen wie working_memory, episodic_memory, facts, consolidated_facts, gists, graph_edges, memoria_facts und memory_embeddings. Dies ist wichtig beim Testen von Löschvorgängen – ein Gedächtnissystem kann erfolgreich eine Arbeitsgedächtnis-Zeile entfernen und dabei eine abgeleitete Tatsache, eine Gist oder ein Graphobjekt zurücklassen. Mnemosyne hat echte Bugs in diesem Bereich mit verwaisten abgeleiteten Datensätzen gehabt, und neuere Versionen haben sowohl das Löschen als auch die Diagnostik entsprechend gestrafft. Bevorzugen Sie die unterstützten Löschen- und Doctor/Repair-Pfade des Anbieters gegenüber dem manuellen Löschen von SQLite-Zeilen, es sei denn, Sie verstehen das aktuelle Schema vollständig.
Löschen von sessionbegrenztem Arbeitsgedächtnis
Eine Nuance: Mnemosyne-Arbeitsgedächtnisse können sessionbegrenzt sein, daher ist eine Zeile mit scope = session möglicherweise nicht für ein standalone-Löschvorgang in der default-Session sichtbar. Bei der Fehlersuche das Scope direkt inspizieren:
SELECT id, session_id, scope, content
FROM working_memory;
Der Anbieter oder die API benötigt den korrekten Session-Bereich, um sessionslokale Datensätze zu ändern – ein weiterer Grund, unterstützte Verwaltungswerkzeuge gegenüber rohen SQL-Edits vorzuziehen.
Konsolidierung: nicht zu früh sleep() aufrufen
Mnemosyne kann Arbeitsgedächtnis in langlebigeren Darstellungen konsolidieren, was nützlich, aber ein mutierender Vorgang ist. Bevor Sie aggressive automatische Konsolidierung aktivieren, inspizieren Sie, was tatsächlich erfasst wird, stellen Sie sicher, dass gewöhnliche Tummern nicht unerwartet ins Gedächtnis gelangen, verifizieren Sie das Löschen von Anfang bis Ende und erstellen Sie ein Backup der Datenbank. Experimentieren Sie dann mit:
hermes mnemosyne sleep
Neuere Mnemosyne-Änderungen haben die Konfliktbehandlung konservativer gemacht – semantische Ähnlichkeit allein beweist nicht mehr, dass ein Gedächtnis ein anderes ungültig machen sollte, was genau die Richtung ist, in die sich ein dauerhaftes Agent-Gedächtnissystem bewegen sollte, wie in Selbstverstärkende Gedächtnisschleifen bei KI-Agenten behandelt wird.
Backup vor Upgrades
Erstellen Sie ein portables Backup vor jeder wesentlichen Änderung:
hermes mnemosyne export \
--output ~/mnemosyne-backup.json
Für wichtige Installationen kopieren Sie zusätzlich die lokale Datenbank oder das Verzeichnis vor größeren Upgrades. Mnemosyne 4.x ist derzeit eine Pre-Release-Linie, daher verdient ein Major-Version-Upgrade mehr Vorsicht als ein routinemäßiger Patch-Update.
Empfohlenes finales Setup
Für eine langfristig laufende Hermes-Installation, bei der die Genauigkeit des Gedächtnisses wichtiger ist als das Merken von allem, ist die dauerhafte Konfiguration: Mnemosyne-Lokalspeicher an, automatisches Abrufen an, Konversations-Autosave aus, Assistenten-Nachrichten-Autosave aus, Werkzeugergebnis-Protokollierung aus, explizites Merken und Vergessen an, Selbst-Echo-Unterdrückung an, Sessiensuche an und menschliche Überprüfung für sensible Schreibvorgänge wünschenswert, sobald der Genehmigungspfad getestet wurde. Dies lässt Mnemosyne primär als kuratierten Langzeitgedächtnis-Store statt als Transkript-Archiv fungieren – das Ziel ist es nicht, Hermes alles vergessen zu lassen, was es je gesagt hat, sondern es die Dinge merken zu lassen, die noch wahr sein werden, wenn die nächste Session beginnt. Wenn Sie mehrere Profile mit verschiedenen Anbietern oder Beibehaltungspolitiken betreiben, deckt Hermes Agent Produktions-Setup) die profilseitige Verkabelung ab, um sie konsistent zu halten.