Permanentes Gedächtnis & Selbst-Evolution (memory)
Kernprinzip: Aktiv speichern, nicht auf Benutzer warten. Verwandeln Sie die Umgebung des Benutzers in ein System, das „Sie mit jeder Nutzung besser versteht“: Dreischichtiges Gedächtnis (Fact/Pattern/Lesson) + Sitzungszusammenfassung + Lesson-Routing (Selbst-Evolution).
🚀 Sitzungsstart (bei jeder neuen Sitzung)
- Falls
~/.agents/memory/MEMORY.mdexistiert, zuerst lesen, um schnell Hintergrund, Präferenzen und aktuelle Sitzungen des Benutzers zu verstehen. - Bei Detailbedarf
memory.py get <id>odermemory.py search <Suchbegriff>verwenden, um tiefer zu graben. - Dem Benutzer kurze zusammengefasste, bereits erinnerte Schlüsselinformationen anzeigen, um Kontinuität zu demonstrieren.
📌 Aktives Speichern (ALWAYS ACTIVE – speichern, sobald es auftritt, nicht auf Sitzungsende warten)
Bei folgenden Situationen sofort memory.py add <Typ> <Inhalt> aufrufen:
| Typ | Speicherzeitpunkt | Beispiel |
|---|---|---|
fact | Benutzer teilt Präferenzen/Gewohnheiten/Identitätsinfo; wichtige Projektentscheidung, Technologieauswahl, Konvention; Benutzer sagt explizit „merke dir“ | „Benutzer bevorzugt Antworten auf Chinesisch“ „Projekt verwendet pnpm + TypeScript“ |
pattern | Gleiches Verhalten/Problem 2 Mal oder öfter (inkl. dieses Mal) aufgetreten | „Jedes Mal, wenn ein Skill installiert wird, verlangt der Benutzer eine Abhängigkeitsbewertung vorher“ |
lesson | Erkenntnisse aus Fehlern, Troubleshooting-Ergebnisse, gefundene Fallstricke | „Der Standard-Backend von DuckDuckGos 'ddgs' geht via Yandex und führt zu Timeouts – stattdessen 'backend='html' verwenden“ |
- Das Speichern kann mit
--tag a,bfür einfachere Suche ergänzt werden. - Das Werkzeug führt automatisch eine approximative Deduplizierung durch; bei Duplikaten wird eine Meldung anstelle einer erneuten Speicherung ausgegeben.
🗂️ Sitzungsende (oder wenn der Benutzer „Sitzung zusammenfassen / abschließen“ sagt)
Führen Sie in dieser Reihenfolge aus:
- Überprüfen Sie die aktuelle Sitzung und extrahieren Sie 2–5 wichtigste Informationen.
- Nach Kategorie speichern:
fact(neue Präferenzen/Entscheidungen) →pattern(neue Regeln) →lesson(neue Erfahrungen). - Lesson-Routing (Selbst-Evolution): Für jede Lesson entscheiden:
- Gehört sie zu wiederverwendbarer Methodik (z. B. Standardprozess für eine bestimmte Aufgabe) → neuen Skill unter
~/.agents/skills/erstellen oder aktualisieren (mit write/edit-Werkzeugen), sodass er bei der nächsten Nutzung automatisch greift; - Handelt es sich um eine einmalige Tatsache → als
factspeichern; - Handelt es sich um umgebungs-/kontospezifisches Wissen (z. B. Konfiguration eines Tools) → einfach als
lessonspeichern.
- Gehört sie zu wiederverwendbarer Methodik (z. B. Standardprozess für eine bestimmte Aufgabe) → neuen Skill unter
- Mit
memory.py session-save "<Ein-Satz-Zusammenfassung dieser Sitzung>" --key Schlüsselwort1,Schlüsselwort2die Sitzung speichern. memory.py syncausführen, um die MEMORY.md-Übersicht zu aktualisieren.
🔍 Gedächtnis abfragen
Wenn der Benutzer fragt „Habe ich schon einmal gesagt… / Unser letztes Mal… / Meine Präferenzen…“ → memory.py search <Suchbegriff>; alle auflisten → memory.py list.
⚙️ Werkzeugübersicht
P=~/.agents/skills/pi-memory-evo/memory.py
$P init # Erstinitialisierung
$P add fact "Inhalt" --tag Präferenz # Fact/Pattern/Lesson speichern
$P session-save "Zusammenfassung" --key a # Sitzungszusammenfassung speichern
$P search Suchbegriff # Suchen
$P list # Alle auflisten
$P get <id> / update <id> <neuer Inhalt> / delete <id> # Verwalten
$P stats # Statistiken
$P sync # Übersicht MEMORY.md aktualisieren
📂 Speicherorte
- Daten:
~/.agents/memory/memory.json(vier Schichten, JSON) - Übersicht:
~/.agents/memory/MEMORY.md(wird beim Sitzungsstart gelesen) - Skill-Ordner:
~/.agents/skills/pi-memory-evo/(Werkzeug + diese Dokumentation)
⚠️ Grenzen
- Keine sensiblen Anmeldedaten speichern: Tokens, Passwörter, Schlüssel werden nie gespeichert.
- Wunsch des Benutzers respektieren: Wenn der Benutzer sagt „das nicht merken“, dann nicht speichern; bei „vergiss X“ den entsprechenden Eintrag mit
deletelöschen. - Gedächtnis ist unterstützend, ersetzt nicht die Bestätigung: Bei wichtigen Aktionen gilt der aktuelle Benutzerwille als maßgeblich.