Hippocampus: Lass den Agenten aus Fehlern lernen
Einmal in die Tinte gefahren? Die Lehre landet in notes/, mem build kompiliert sie in den Index, und vor der nächsten ähnlichen Aufgabe schaut der Agent nach, wie es beim letzten Mal schiefging. CLI-Befehl: mem.
Speicherwurzelverzeichnis $MEM_HOME (Standard: ~/.claude/memory). Alles reiner Text, mem build erzeugt aus notes/ die drei oberen Ebenen.
Wann verwenden
- Vor einer nicht-trivialen Aufgabe: Prüfen, ob es diese Aufgabe schon einmal gab und welche Entscheidungen oder Fallstricke dokumentiert sind.
- Wenn der Nutzer „letztes Mal“, „schonmal gesagt“ oder „nach alter Regel“ erwähnt.
- Bevor ein Sub-Agent gestartet wird: Relevante Erinnerungen in die Spezifikation schreiben.
- Nach Abschluss eines wiederverwendbaren Ergebnisses, Lösung eines wiederkehrenden Problems, oder Korrektur durch den Nutzer: Eine Notiz schreiben.
Vier-Ebenen-Modell
| Ebene | Datei | Inhalt | Wer schreibt |
|---|---|---|---|
| Tier-0 | MEMORY.md | Routingtabelle: Lese-/Schreibprotokoll, Pack-Liste, die letzten 12 Notizen; mit Byte-Budget (Standard 12000) | mem build |
| Tier-1 | packs/<id>.md | Ein Blatt pro Bereich, jede Notiz eine Zeile mit Beschreibung + Pfad | mem build |
| Tier-2 | catalog.tsv | Jede Notiz eine Zeile: pack date type name title bytes gist | mem build |
| Tier-3 | notes/*.md | Originaltext mit YAML-Frontmatter | mem add erstellt Datei, du füllst Inhalt |
Klassifikationsregeln in $MEM_HOME/.memorypack/packs.json: Wenn in der Frontmatter unter metadata.pack eine gültige ID steht, wird sie verwendet; ansonsten erfolgt eine Schlagwortbewertung (stark +3, keywords +1); Nullpunkte landen in misc.
Lesepfad (der Reihe nach, aufhören sobald ausreichend)
MEMORY.mdvollständig lesen (es ist klein und genau dafür gedacht).- Bei „Wann lesen“ den Bereich finden →
mem pack <id>zum Überfliegen des Bereichs. - Bei Bedarf gezielte Einträge suchen →
mem find <Schlüsselwort> [--pack <id>] [--limit N], gibt nur Katalogzeilen zurück. - Nur bei 1–3 Treffern →
mem show <name>den Originaltext lesen.
Bei Konflikten zwischen Erinnerung und aktuellen Beweisen (Code, Logs, Befehlsausgaben) gelten die aktuellen Beweise; dem Nutzer mitteilen, welche Erinnerung veraltet ist.
Schreibpfad (nur dieser eine)
mem add <slug> --type project|feedback|reference [--pack <id>] [--title "Titel"]
# Den ausgegebenen Pfad öffnen, eine Beschreibungszeile + FAKT / Entscheidung / Fallstrick / Verwandtes eintragen
mem build
descriptionist der einzige Inhalt, der in den oberen drei Ebenen erscheint – schreibe ihn als „Was ist das + wann braucht man es“ in einem Satz.- Vorhandene Notiz ändern: direkt die Datei in
notes/bearbeiten, dannmem build. - Nach dem Schreiben kann
mem doctorausgeführt werden, um Budget, defekte Links und fehlende Beschreibungen zu prüfen.
Verbote
MEMORY.md,packs/*,catalog.tsvniemals von Hand bearbeiten – sie werden generiert und beim nächsten Build überschrieben.- Nicht
notes/im Ganzen lesen (cat notes/*,lsund dann einzeln lesen, gesamtes Verzeichnis mit grep durchsuchen) – stattdessenmem findverwenden. - Keine Notiz löschen, es sei denn, der Nutzer fordert es ausdrücklich an; veraltete Einträge mit Anmerkung versehen und Beschreibung aktualisieren.
- Keine Geheimnisse, Token, Passwörter, privaten Schlüssel oder personenbezogenen Daten in Notizen schreiben.
- Kein zweites Gedächtnis anlegen; alte Pfade anderer Tools mit Symlinks auf
$MEM_HOMEverweisen lassen.
Referenzen
- Tägliche Wartung:
prompts/maintain.md - Sitzungsabschluss-Rückschau und proaktiver Aufbau:
prompts/proactive-build.md - Ein Regelabschnitt zum Einfügen in
AGENTS.md/CLAUDE.md:prompts/agents-snippet.md - Hook-Beispiele:
prompts/hooks/