Gedächtnisverwaltung (DSH-Version)
Sitzungsübergreifendes Langzeitgedächtnis: L1-Index-Injektion (bei jeder Runde sichtbar) + L2-Umgebungsfakten + L3-Aufgabenerfahrung.
Auslösezeitpunkte
Lesen (Wann wird das Gedächtnis abgefragt?)
- Zu Beginn einer neuen Aufgabe: Wenn die Aufgabe die lokale Umgebung, Tool-Konfigurationen, einen bestimmten Technologie-Stack oder ähnliche frühere Aufgaben betrifft → zuerst
memory_listum zu sehen, was vorhanden ist, dannmemory_readum relevante Einträge abzurufen. - Bei Schwierigkeiten/Problemen:
memory_readum nach relevanten SOPs zu suchen (Stichwortabgleich mit Dateinamen insops/oder Abschnitten infacts). - Gedächtnisindex im Modell-Prompt (memory:index): Der bei jeder Runde sichtbare L1-Existenzindex – wenn verwandte Stichwörter gesehen werden, sollte aktiv
memory_read/memory_listaufgerufen werden, um Details abzurufen.
Schreiben (Wann wird das Gedächtnis gefestigt?)
Wenn eine Aufgabe abgeschlossen (oder ein Teilabschnitt abgeschlossen) ist und durch Aktionen verifizierte, erfolgreiche Informationen vorliegen, wird memory_write aufgerufen:
Schreibbar (muss mit einem evidence-Beleg versehen sein):
- Umgebungsspezifische Fakten: Pfade, Konfigurationen, getestete Parameter, Tool-Verhalten (→
entry_type: fact) - Erfahrungen mit komplexen Aufgaben: Stolpersteine, die nur nach mehreren Wiederholungen erfolgreich waren, versteckte Vorbedingungen, stabile Schritte (→
entry_type: sop) - Allgemeine rote Linien/Muster (→ können auch per
memory_write sopoder durch direkte Pflege in [RULES] festgehalten werden)
Nicht schreibbar (Schreiben wäre eine Verunreinigung):
- ❌ Informationen ohne Bestätigungsbeleg (keine Aktion, keine Erinnerung)
- ❌ Im Modell inhärentes Wissen, logische Schlussfolgerungen, unbestätigte Hypothesen
- ❌ Veränderliche Zustände: Zeitstempel, PIDs, temporäre Pfade, einmalige IDs
- ❌ Allgemeinwissen, Protokolle, Details des Schlussfolgerungsprozesses
Index-Synchronisation
memory_writesynchronisiert den L1-Index automatisch; manuelle Eingriffe sind normalerweise nicht nötig.- Nach manuellen Änderungen an
facts.md/ densops/-Dateien →memory_indexaufrufen, um den Index neu aufzubauen. - Wenn der Index 30 Zeilen überschreitet: [RULES] straffen (Wortänderungen vornehmen, kein Überschreiben des gesamten Textes).
Speicherstruktur
<home>/.dsh/memory/
├── memory_management_sop.md L0-Metaregeln (wie das Gedächtnis verwaltet wird)
├── index.txt L1-Index (≤30 Zeilen: L2/L3-Existenzliste + RULES)
├── facts.md L2-Umgebungsfakten (## SECTION)
├── sops/*.md L3-Aufgabenerfahrungen
└── file_access_stats.json Lesezugriffsstatistik
Werkzeuge
| Werkzeug | Zweck |
|---|---|
memory_list | Alle Erinnerungen auflisten (Fakten + SOPs + Indexzeilenanzahl) |
memory_read | Bestimmte Erinnerung lesen (Index / Fact-Thema / SOP-Dateiname) |
memory_write | Erinnerung schreiben (Fact/SOP, evidence ist Pflicht) |
memory_index | L1-Index-Autosegment neu aufbauen |
Prinzipien
- Aktionsvalidierung: Keine Ausführung, keine Erinnerung. Es werden nur erfolgreich verifizierte Informationen geschrieben.
- Minimal ausreichend: Der Inhalt sollte so kurz wie möglich sein; es werden nur Informationen gespeichert, deren Vergessen zu kostspieligen Wiederholungen führen würde.
- Keine Änderung oder Löschung verifizierter Fakten: Sie können komprimiert oder verschoben werden, aber nicht verworfen.
- Aktives Schreiben: Das Schreiben von Erinnerungen wird immer vom Modell/Benutzer initiiert; es erfolgt keine automatische Änderung der Konfiguration oder Installation von Plugins.