Skip to content

🧠 Memory & Gedächtnis

Das Memory ist Hermes' Langzeitgedächtnis – Fakten, die über Sessions hinweg erhalten bleiben. Sag ihm einmal etwas, und er merkt es sich für immer.


Wie funktioniert Memory?

Memory wird bei jedem Gesprächsstart automatisch geladen und in den System-Prompt injiziert. Hermes sieht also sofort, was er über dich und deine Umgebung weiß – ohne dass du dich wiederholen musst.

yaml
# Beispiel: Was Hermes zu Sessionsbeginn sieht
USER PROFILE:
- Bevorzugt DeepSeek als Modell
- Arbeitet an N-Body-Simulationen (JAS2)
- Kein sudo auf dem System

MEMORY (Agent-Notizen):
- ComfyUI benötigt HSA_OVERRIDE_GFX_VERSION=10.3.0
- Projekte liegen in ~/projects/

Zwei Ziele

ZielZweckBeispiel
🧑 UserWer du bist – Name, Rolle, Vorlieben, Kommunikationsstil"User bevorzugt kurze, präzise Antworten"
📝 MemoryDeine Notizen – Umgebungsfakten, Projekt-Conventions, Tool-Erfahrungen"HSA_OVERRIDE_GFX_VERSION=10.3.0 für ROCm nötig"

Wann speichert Hermes etwas?

Hermes speichert proaktiv – ohne dass du es sagen musst:

✅ Speichern (erwünscht)

  • Korrekturen – "Nein, ich nutze Firefox, nicht Chrome" → merkt er sich
  • Präferenzen – "Ich mag lieber relative Pfade" → bleibt dauerhaft
  • Umgebungsfakten – "Dieser Rechner hat eine AMD GPU" → für künftige Sessions
  • Projekt-Conventions – "Das Repo nutzt pytest" → nie wieder nachfragen
  • Tool-Quirks – "Hier hilft --mca btl sm,self bei MPI" → gleich verfügbar

❌ Nicht speichern

  • Task-Fortschritt – "Ich habe gerade Datei X bearbeitet" → das ist Session-Kontext
  • Session-Outcomes – "Build war erfolgreich" → gehört in die Session-Historie
  • Temporäre TODOs – "Als nächstes muss ich Y machen" → vergänglich
  • Offensichtliches – "Ich bin ein KI-Assistent" → unnötig

Faustregel: Alles, was du beim nächsten Login nicht wiederholen willst → Memory. Alles, was nur für die aktuelle Aufgabe relevant ist → Session-Kontext.


Memory verwalten

Automatisch (Hermes entscheidet)

Hermes speichert von selbst, wenn er relevante und stabile Fakten entdeckt. Nach Korrekturen, nach komplexen Tasks (5+ Tool-Calls), und wenn du etwas explizit erwähnst ("Denk dran…").

Manuell (du sagst es)

"Denk dran, mein Projekt liegt unter ~/projects/"
"Merke: Ich nutze DeepSeek als Standard-Modell"
"Vergiss das mit dem alten Pfad wieder"

Oder per Slash-Befehl:

BefehlWirkung
/memory listZeigt alle aktuellen Memory-Einträge
/memory remove "Stichwort"Löscht einen Eintrag
/memory clearLeert das gesamte Memory (Vorsicht!)

Memory-Einträge direkt ansehen

bash
# Alle Memory-Einträge anzeigen
cat ~/.hermes/state.db | python3 -c "
import sqlite3, json
db = sqlite3.connect('/home/USER/.hermes/state.db')
for row in db.execute('SELECT target, content FROM memory ORDER BY target'):
    print(f'[{row[0]}] {row[1][:120]}')
"

Hinweis: Der genaue Pfad der Memory-Datenbank variiert je nach Profil (~/.hermes/ vs ~/.hermes/profiles/<name>/).


Memory Provider (Pluggable)

Seit v0.7.0 ist das Memory-System erweiterbar. Drittanbieter können eigene Memory-Backends als Plugin einbinden:

ProviderBeschreibung
Standard (SQLite)Eingebaut – speichert Memory lokal in state.db
HonchoKI-gestütztes Memory mit semantischer Suche
Mem0Self-Improving Memory mit automatischer Konsolidierung
SupermemoryCloud-basiertes Memory für mehrere Geräte
Eigene ProviderEinfaches ABC-Interface → ~/.hermes/plugins/

Provider wechseln

yaml
# config.yaml
memory:
  memory_enabled: true
  provider: honcho     # oder: mem0, supermemory, default (SQLite)
  # providerspezifische Config
  honcho_api_key: "sk-..."

Best Practices

👍 Gut

  • Kompakt halten – Ein Satz pro Fakt. "Nutzt pytest mit xdist" statt "Wenn ich Tests ausführe, dann mit pytest -n 4"
  • Präferenzen zuerst – Was du magst/nicht magst, ist das Wertvollste
  • Umgebungsfakten – OS, Tools, Pfade, Konventionen
  • Nach Korrekturen speichern – "Eigentlich ist es anders" → wichtigster Lernmoment

👎 Schlecht

  • Task-Status – "Bin bei Schritt 3 von 5" → nächste Session irrelevant
  • Ausführliche Anleitungen – Gehören in Skills, nicht ins Memory
  • Widersprüchliche Einträge – "Nutzt Python 3.11" + "Python 3.12" → verwirrt
  • Veraltete Infos – "Alter Rechner: RX 6600 XT" nach Umstieg → aktiv löschen

Memory vs Skills

MemorySkills
InhaltKurze Fakten, Präferenzen, ConventionsAusführliche Workflows, Code, Anleitungen
GrößeWenige Sätze (max ~4000 Zeichen)Beliebig (ganze Dateien)
InjektionJeder Turn (im System-Prompt)Nur bei Bedarf (per skill_view)
LebensdauerDauerhaft, bis gelöschtDauerhaft, bis geändert
WartungAutomatisch (Hermes) + manuellManuell (oder Curator ab v0.12)

Faustregel: Memory = "Der User mag Python 3.13". Skill = "So richtest du ein Flask-Projekt mit Python 3.13 ein."


Speicherbegrenzung

Das Memory ist auf etwa 4000 Zeichen (~1000 Tokens) begrenzt. Bei Überlauf wird Hermes ältere/unwichtigere Einträge automatisch zusammenfassen oder entfernen.

Tipp: Wenn dein Memory voll ist, prüfe mit /memory list, welche Einträge veraltet sind, und lösche sie gezielt.