Mnemosyne für Hermes-Agent: Schnelleinführung für lokale Speicher

Lokaler Hermes-Speicher mit kontrollierten Schreibvorgängen.

Inhaltsverzeichnis

Mnemosyne ist ein lokal-firster Memory-Anbieter für Hermes Agent. Er speichert Arbeitsspeicher, strukturierte Fakten, temporale Daten und episodische Historie in lokalen SQLite-Datenbanken — ohne gehosteten Service, ohne obligatorische Netzwerkaufrufe und mit ungewöhnlich granularer Schreibsteuerung.

Seine nützlichste Eigenschaft ist nicht die Rohqualität der Abrufbarkeit. Es ist der Grad der Kontrolle, den er über den Schreibpfad bietet: Das automatische Speichern von Konversationen kann nach Rolle eingeschränkt oder vollständig deaktiviert werden, das Protokollieren von Tool-Ergebnissen ist standardmäßig deaktiviert, explizite Remember- und Forget-Operationen bleiben jederzeit verfügbar, und neuere Releases fügen optionale Selbst-Echo-Unterdrückung an Kontext-Kompressionsgrenzen hinzu. Diese Kombination macht es zu einer sinnvollen Wahl, wenn Sie persistenten Speicher wünschen, ohne jede Konversation automatisch in permanentes Wissen zu verwandeln.

Diese Disziplin im Schreibpfad ist wichtig, weil Agent-Speicher einen gut dokumentierten Fehlerfall aufweist: Die eigene Inferenz eines Modells kann eingefangen, später als wäre sie eine Beobachtung abgerufen und verwendet werden, um eine noch stärkere Version von sich selbst zu rechtfertigen. Selbstverstärkende Memory-Schleifen in KI-Agenten behandelt diesen Fehlerfall im Detail; dieser Leitfaden konzentriert sich auf die konkrete Mnemosyne-Konfiguration, die ihn in der Praxis begrenzt. Für die Einordnung von Mnemosyne gegenüber den anderen Hermes-Speicher-Backends siehe Agent Memory Anbieter im Vergleich).

Ein durchsichtiger lokaler Datenbankspeicher, verbunden durch einen leuchtenden Schlüssel und Filter mit einem kleinen freundlichen Agentenmodul

Mnemosyne in einer Minute

Ein typischer Speicher-Anbieter führt eine Art von Erfassung, Extraktion, Speicherung, Abruf und dann Einspeisung in einen zukünftigen Prompt durch. Mnemosyne fügt mehrere einzelne Ebenen um diesen grundlegenden Zyklus hinzu: Arbeitsspeicher, semantische und lexikalische Abrufbarkeit, strukturierte Fakten, temporale Informationen, Entitätslinks, episodischer Speicher, Konsolidierung, kanonische Fakten und Speicher-Validierung. Die Speicherung erfolgt in lokalem SQLite mit FTS5 und optionalem Vektor-Abruf, was es erheblich untersuchbarer macht als ein ausschließlich cloud-basiertes Speicherprodukt und leistungsfähiger als eine einfache MEMORY.md-Datei.

Sehr knapp gesagt, im Vergleich zum Rest des Hermes-Anbieter-Ökosystems: Holographic ist einfacher und bewusst auf den Fakten-Speicher ausgerichtet; Hindsight betont hybriden Abruf, Wissensgraphen und Reflexion; Honcho betont Peer- und User-Modellierung mit dialektischer Reasoning-Logik; Mem0 betont automatische, LLM-basierte Faktenextraktion; und Mnemosyne kombiniert lokale SQLite-Speicherung, hybriden Abruf, Konsolidierung, strukturierte Fakten und ungewöhnlich granulare Retention-Kontrollen. Die vollständige Aufschlüsselung, einschließlich der Infrastruktur-Anforderungen und Self-Hosting-Hinweise für jeden Anbieter, finden Sie in Agent Memory Anbieter im Vergleich.

Aktuelle Versionen

Stand September 2026 ist die stabile PyPI-Release mnemosyne-memory 3.15.1, wobei der 4.0-Branch als Vorabversion verfügbar ist. Für eine produktionsreife Hermes-Installation beginnen Sie mit der stabilen Version, es sei denn, Sie benötigen spezifisch einen 4.0-Fix oder eine Funktion und sind bereit, die Datenbank-Migration und Verhaltensänderungen zu testen. Prüfen Sie Ihre installierte Version mit:

hermes mnemosyne version

Mnemosyne in Hermes installieren

Aktivieren Sie zuerst die eigene virtuelle Umgebung von Hermes, wenn Sie die standardmäßige lokale Installation verwendet haben:

source ~/.hermes/hermes-agent/venv/bin/activate

Für lokale Embedding-Unterstützung installieren Sie das Kernpaket mit dem Embeddings-Extra sowie dem Hermes-Plugin-Wrapper:

python -m pip install \
  "mnemosyne-memory[embeddings]" \
  mnemosyne-hermes

Registrieren Sie dann 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

Die erwartete Ausgabe sieht ähnlich wie folgt aus:

Provider: mnemosyne

Plugin: installiert
Status: verfügbar

Docker- und persistente Server-Installationen

Wenn Hermes in einer persistenten Docker- oder bildbasierten Deployment-Laufzeit umgegebungen läuft, installieren Sie in eine seitliche virtuelle Umgebung im eingehängten Hermes-Home statt in der wiederherstellbaren Python-Umgebung des Containers, damit das Plugin Image-Rebuilds überlebt:

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-/Nebenversion verwenden wie das laufende Hermes-Gateway — weisen Sie sie nicht auf ein unberechenbares python3 aus dem PATH hin. Starten Sie danach den eigentlichen Container oder Dienst neu und verifizieren Sie mit "$VENV/bin/mnemosyne-hermes" status neben hermes memory status.

Deaktivieren Sie nicht das gesamte Hermes-Memory-Werkzeugset

Halten Sie zwei Konzepte getrennt: Den eigenen eingebauten Speicher von Hermes (MEMORY.md / USER.md, vollständig behandelt in Hermes Agent Memory System) und den externen Anbieter (Mnemosyne). Führen Sie nicht leichtfertig hermes tools disable memory aus, wenn Sie einen externen Anbieter konfigurieren — je nach Hermes-Version kann dieser Befehl auch externe Memory-Anbieter-Tools ausblenden. Verwenden Sie stattdessen die Anbieter-Konfiguration, wie unten gezeigt.

Basisstatus und Inspektion

hermes memory status
hermes mnemosyne stats
hermes mnemosyne stats --global
hermes mnemosyne inspect "query"

Exportieren Sie ein portables Backup:

hermes mnemosyne export \
  --output ~/mnemosyne-backup.json

Die zugrunde liegende Datenbank befindet sich normalerweise unter ~/.hermes/mnemosyne/data/mnemosyne.db. Da es SQLite ist, sind Inspektion und Backup mit Standardwerkzeugen geradlinig. Für den Rest der Gateway-, Session- und Diagnosebefehle, die in diesem Leitfaden referenziert werden, ist das Hermes Agent CLI-Spickzettel eine schnellere Referenz als das Durchwühlen von --help-Ausgaben.

Die Standard-Retention-Richtlinie verdient Aufmerksamkeit

Die erste Kontrolle, die es sich lohnt zu verstehen, ist sync_roles. Die aktuellen Mnemosyne-Standardwerte sind bereits konservativer als frühe Releases — die automatische Hermes-Synchronisation standardmäßig auf Benutzer-Turns statt auf sowohl Benutzer- als auch Assistenten-Turns — aber für strenge, explizit-only-Retention lohnt sich das zusätzliche Schritt, das automatische Turn-Speichern vollständig zu deaktivieren. Bearbeiten Sie ~/.hermes/config.yaml:

memory:
  provider: mnemosyne

  mnemosyne:
    sync_roles: []

Eine leere Liste bedeutet, dass gewöhnliche Konversations-Turns nicht automatisch von sync_turn() gespeichert werden. Explizite mnemosyne_remember-Operationen funktionieren unabhängig davon weiter — normale Konversation fließt nicht mehr automatisch in den Speicher, während ein explizites „merken Sie das“ weiterhin Mnemosyne erreicht.

Automatische Tool-Ergebnis-Protokollierung deaktivieren

Mnemosyne kann auch Tool-Ausführungen als Speicher protokollieren. Für eine konservative Einstellung lassen Sie das in ~/.hermes/.env deaktiviert:

MNEMOSYNE_LOG_TOOLS=0

Das ist bereits der Standardwert, aber das explizite Setzen dokumentiert die Richtlinie, anstatt sich auf eine Annahme über Standardwerte zu verlassen. Starten Sie danach Hermes neu:

hermes gateway restart

Mit sync_roles: [] und MNEMOSYNE_LOG_TOOLS=0 zusammen sind beide großen automatischen Schreibpfade — Konversations-Autosave und Tool-Ergebnis-Autosave — aus.

Automatischen Abruf beibehalten

Das Deaktivieren automatischer Schreibvorgänge erfordert nicht das Deaktivieren des Abrufs. Eine nützliche Richtlinie hält die automatische Retention aus, während automatischer Abruf, explizites Remembern und explizites Vergessen alles eingeschaltet bleiben — Speicher sollte leicht lesbar und schwer schreibbar sein, was fast das Gegenteil eines „alles erfassen und später sortieren“-Standardwerts ist.

Fügen Sie eine dauerhafte Agentenanweisung hinzu

Anbieter-Konfiguration blockiert automatische, anbieterseitige Erfassung, aber das Modell kann weiterhin entscheiden, ein explizites Schreib-Tool eigenmächtig aufzurufen. Fügen Sie eine explizite Richtlinie zu SOUL.md hinzu:

## Langzeit-Speicher-Richtlinie

Mnemosyne ist der Langzeit-Speicher-Anbieter.

Schreiben Sie nichts in Mnemosyne, außer der Benutzer bittet Sie explizit, diese Information zu merken, zu speichern, zu behalten oder zu lagern.

Wenn Informationen für zukünftige Sessions nützlich erscheinen, der Benutzer aber nicht explizit angefordert hat, dass sie gemerkt werden, fragen Sie nach Erlaubnis, bevor Sie mnemosyne_remember oder ein anderes Mnemosyne-Schreib-Tool aufrufen.

Erstellen Sie keine dauerhaften Speichereinträge aus Ihren eigenen Reasoning-Vorgängen, Annahmen, Zusammenfassungen, Interpretationen, Schlussfolgerungen oder abgeleiteten Präferenzen.

Erstellen Sie keine dauerhaften Speichereinträge aus Tool-Ausgaben, außer der Benutzer fordert explizit an, dass dieses Ergebnis gemerkt wird.

Beim Speichern eines genehmigten Speichereintrags, bewahren Sie auf, was der Benutzer tatsächlich angegeben hat. Verzieren Sie es nicht mit abgeleitetem Kontext oder Schlussfolgerungen.

Das Lesen und Abrufen von Mnemosyne-Speichereinträgen ist ohne Erlaubnisfrage erlaubt.

Starten Sie das Gateway neu und beginnen Sie danach eine neue Session:

hermes gateway restart
/new

Dies ist eine modellgedeckte Richtlinie, keine harte Berechtigungsgrenze — sie ergänzt die oben genannte anbieterseitige Konfiguration, ersetzt sie aber nicht.

Was ist mit memory.write_approval?

Hermes unterstützt memory.write_approval: true für Schreibvorgänge in eingebauten MEMORY.md / USER.md, und Mnemosyne implementiert in neueren Releases seine eigene, anbieterspezifische Staging-Phase für explizite Schreibvorgänge. Das ist vielversprechend, aber es gibt einen architektonischen Hinweis, der ernst genommen werden sollte: Hermes bietet noch keinen einheitlichen, anbieterneutralen Genehmigungsvertrag über alle externen Memory-Anbieter hinweg an, und Mnemosynes Pending/Apply-Implementierung ist anbieterspezifisch und nicht Teil eines gemeinsamen Standards. Gehen Sie nicht davon aus, 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 Genehmigungen reifen, gibt Ihnen die Kombination aus sync_roles: [], MNEMOSYNE_LOG_TOOLS=0 und der explizit-schreibenden SOUL.md-Richtlinie oben eine zuverlässige Baseline, mit dem Genehmigungspfad separat getestet, falls Sie darauf angewiesen sind.

Selbst-Echo-Unterdrückung aktivieren

Aktuelle Mnemosyne-Versionen bieten auch optionale Selbst-Echo-Unterdrückung:

MNEMOSYNE_SELF_ECHO_ENABLED=1

Geben Sie dies in ~/.hermes/.env ein und starten Sie neu:

hermes gateway restart

Selbst-Echo-Unterdrückung zielt spezifisch auf Kontext-Kompressionsgrenzen ab — ihr Zweck ist es, Fälle zu reduzieren, in denen Speicher, den der Anbieter gerade erstellt hat, sofort an den Agenten zurückgespielt wird, als wäre er unabhängiger Kontext. Sie ist bewusst Best-Effort und ersetzt keine Schreibfilterung: Schreibkontrollen halten zweifelhafte Speichereinträge davon ab, überhaupt erst einzutreten, während Selbst-Echo-Kontrollen verhindern, dass aktuelle Anbieter-Ausgaben sofort zurückprallen. Beides ist wichtig, und keines ersetzt das andere.

Eine konservative Mnemosyne-Konfiguration

Zusammengenommen sieht eine Startkonfiguration für einen selbst gehosteten persönlichen Engineering-Agenten wie folgt 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 Langzeit-Speicher nur, wenn der Benutzer dies explizit anfordert.
Fördere nicht modellerzeugte Schlussfolgerungen oder Tool-Ausgaben zu dauerhaften Speichereinträgen ohne explizite Erlaubnis.
flowchart LR U[User conversation] -.->|blocked| M[(Mnemosyne)] T[Tool results] -.->|blocked| M R["Explicit: remember this"] -->|mnemosyne_remember| M Q[Future question] -->|recall| M

Testen, dass gewöhnliche Konversation nicht gespeichert wird

Prüfen Sie zuerst die Basisanzahl:

hermes mnemosyne stats

Starten Sie eine neue Hermes-Session und sagen Sie eine normale faktische Aussage, ohne den Agenten zu bitten, sie zu merken, zum Beispiel:

PurpleOtter uses port 48123.

Suchen Sie danach danach:

hermes mnemosyne inspect "PurpleOtter"

Erwartet: Results for 'PurpleOtter': 0. Prüfen Sie auch hermes mnemosyne stats erneut — die Arbeitspeicher-Anzahl sollte wegen dieses gewöhnlichen Turns nicht zugenommen haben.

Expliziten Speicher testen

Sagen Sie nun dieselbe Art von Aussage, aber bitten Sie explizit um Retention:

Remember that BlueKoala uses port 17321.

Inspektieren Sie es, starten Sie dann eine neue Session und fragen Sie danach:

hermes mnemosyne inspect "BlueKoala"
/new
What port does BlueKoala use?

Hermes sollte den Wert korrekt abrufen — dieses Testpaar trennt die Schreibpfad-Richtlinie (nichts kommt ohne Frage rein) vom Abrufmechanismus (was reinkommt, kommt zuverlässig wieder raus).

Tool-Protokollierung testen

Mit gesetztem MNEMOSYNE_LOG_TOOLS=0 bitten Sie Hermes, einen unterscheidbaren, einzigartigen Befehl auszuführen:

Use the terminal tool to run:
echo tool-canary-834729

Suchen Sie dann nach dem Canary-String:

hermes mnemosyne inspect "tool-canary-834729"

Erwartet: 0 results. Das ist ein viel stärkerer Test, als einfach darauf zu vertrauen, dass die Umgebungsvariable überall beachtet wird.

Datenbank inspizieren

Da die Speicherung SQLite ist, ist das interne Schema direkt untersuchbar:

sqlite3 ~/.hermes/mnemosyne/data/mnemosyne.db '.tables'

Je nach Version sehen Sie möglicherweise Tabellen wie working_memory, episodic_memory, facts, consolidated_facts, gists, graph_edges, memoria_facts und memory_embeddings. Das ist wichtig beim Testen von Löschvorgängen — ein Speicher-System kann eine Arbeitspeicher-Zeile erfolgreich entfernen, während es einen abgeleiteten Fakt, Gist oder Graph-Objekt zurücklässt. Mnemosyne hatte echte Bugs in diesem Bereich im Zusammenhang mit verwaisten abgeleiteten Datensätzen, und neuere Releases haben sowohl Löschung als auch Diagnose entsprechend verschärft. Bevorzugen Sie die unterstützten Löschen- und Doctor/Repair-Pfade des Anbieters gegenüber manuellem Löschen von SQLite-Zeilen, es sei denn, Sie verstehen das aktuelle Schema vollständig.

Löschen von sessionsbezogenem Arbeitspeicher

Eine Feinheit: Mnemosyne-Arbeitsspeicher-Einträge können sessionsbezogen sein, also ist eine Zeile mit scope = session möglicherweise nicht sichtbar für ein eigenständiges Löschen, das in der default-Session arbeitet. Bei der Fehlersuche inspizieren Sie den Scope direkt:

SELECT id, session_id, scope, content
FROM working_memory;

Der Anbieter oder die API benötigt den korrekten Session-Scope, um sessionslokalen Datensätze zu ändern — ein weiterer Grund, unterstützte Verwaltungstools gegenüber rohen SQL-Edits zu bevorzugen.

Konsolidierung: Eilen Sie nicht mit sleep()

Mnemosyne kann Arbeitspeicher in längerlebige Darstellungen konsolidieren, was nützlich ist, aber eine mutierende Operation. Bevor Sie aggressive automatische Konsolidierung aktivieren, inspizieren Sie, was tatsächlich erfasst wird, verifizieren Sie, dass gewöhnliche Turns nicht unerwartet in den Speicher einfließen, verifizieren Sie Löschung von Ende zu Ende und sichern Sie die Datenbank. Experimentieren Sie dann mit:

hermes mnemosyne sleep

Neuere Mnemosyne-Änderungen haben die Konfliktbehandlung konservativer gemacht — semantische Ähnlichkeit allein beweist nicht mehr, dass ein Speicher Eintrag einen anderen ungültig machen sollte, was genau die Richtung ist, in die sich ein dauerhafter Agenten-Speicher-System bewegen sollte, wie in Selbstverstärkende Memory-Schleifen in KI-Agenten behandelt wird.

Backup vor Upgrades

Erstellen Sie ein portables Export 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 großen Upgrades. Mnemosyne 4.x ist derzeit eine Vorabversions-Linie, also verdient ein Major-Upgrade mehr Vorsicht als ein routinemäßiges Patch-Update.

Empfohlene Endkonfiguration

Für eine langfristig laufende Hermes-Installation, in der Speicher-Genauigkeit wichtiger ist als alles zu merken, ist die dauerhafte Konfiguration: Mnemosyne lokale Speicherung an, automatischer Abruf an, Konversations-Autosave aus, Assistenten-Nachrichten-Autosave aus, Tool-Ergebnis-Protokollierung aus, explizites Remembern und Vergessen an, Selbst-Echo-Unterdrückung an, Session-Suche an, und menschliche Überprüfung für sensible Schreibvorgänge wünschenswert, sobald der Genehmigungspfad getestet ist. Das macht Mnemosyne funktional primär zu einem kuratierten Langzeit-Speicher statt zu einem Transkript-Archiv — das Ziel ist nicht, Hermes alles sagen zu lassen, was er jemals 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 Retention-Richtlinien betreiben, behandelt Hermes Agent Produktions-Setup) die profilbezogene Verkabelung, um sie konsistent zu halten. Wenn Sie Speicher lieber als separaten Docker-Dienst mit Wissensgraph und Reflect-Operation betreiben möchten, ist Hindsight für Hermes Agent) der externe, docker-basierte Anbieter-Leitfaden.

Abonnieren

Neue Beiträge zu Systemen, Infrastruktur und KI-Engineering.