Was macht Total Recall – Autonomes Agenten-Gedächtnis?
Die einzige Gedächtnis-Fähigkeit, die von selbst aufpasst.
Keine Datenbank. Keine Vektoren. Kein manuelles Speichern. Nur ein LLM-Beobachter, der deine Gespräche in priorisierte Notizen komprimiert, diese bei Bedarf festigt und alles Verpasste wiederherstellt. Fünf Redundanzschichten, null Wartung. ~0,00 €/Monat (mit Free-Tier-Modellen).
Während andere Gedächtnis-Fähigkeiten dich bitten, dich zu erinnern, erinnert dich diese – sie passt einfach auf.
Architektur
Schicht 1: Beobachter (Cron, alle 15-30 Min.)
↓ komprimiert aktuelle Nachrichten → observations.md
Schicht 2: Reflektor (automatisch ausgelöst, wenn observations > 8000 Wörter)
↓ festigt, entfernt überholte Informationen → 40-60 % Reduktion
Schicht 3: Sitzungswiederherstellung (läuft bei jedem /new oder /reset)
↓ fängt alle Sitzungen auf, die der Beobachter verpasst hat
Schicht 4: Reaktiver Wächter (inotify-Daemon, nur Linux)
↑ löst Beobachter nach 40+ neuen JSONL-Schreibvorgängen aus, 5-minütige Abklingzeit
Schicht 5: Pre-Kompaktierungs-Hook (memoryFlush)
↓ Notfall-Erfassung, bevor OpenClaw den Kontext kompaktiert
Was es tut
- Beobachter liest aktuelle Sitzungstranskripte (JSONL), sendet sie an ein LLM und hängt komprimierte Beobachtungen mit Prioritätsstufen (hoch, mittel, niedrig) an
observations.mdan. - Reflektor wird aktiv, wenn die Beobachtungen zu groß werden, konsolidiert zusammenhängende Einträge und entfernt veraltete, niedrig priorisierte Einträge.
- Sitzungswiederherstellung wird beim Start einer Sitzung ausgeführt, prüft, ob die vorherige Sitzung erfasst wurde, und führt eine Notfallbeobachtung durch, falls nicht.
- Reaktiver Wächter überwacht das Sitzungsverzeichnis mit inotify, sodass Aktivitätsphasen schneller als das Cron-Intervall erfasst werden.
- Pre-Kompaktierungs-Hook wird ausgelöst, wenn OpenClaw den Kontext kompaktieren will – dies stellt sicher, dass nichts verloren geht.
Schnellstart
1. Skill installieren
clawdhub install total-recall
2. API-Schlüssel setzen
Füge Folgendes zu deiner .env oder OpenClaw-Konfiguration hinzu:
OPENROUTER_API_KEY=sk-or-v1-xxxxx
3. Einrichtungsskript ausführen
bash skills/total-recall/scripts/setup.sh
Dies führt Folgendes aus:
- Erstellt die Gedächtnis-Verzeichnisstruktur (
memory/,logs/, Backups) - Unter Linux mit inotify + systemd: Installiert den reaktiven Wächterdienst
- Zeigt Anweisungen für Cron-Jobs und Agentenkonfiguration an, die du manuell hinzufügen musst
4. Konfiguriere deinen Agenten zum Laden von Beobachtungen
Füge zum Arbeitsbereichskontext deines Agenten hinzu (z.B. MEMORY.md oder System-Prompt):
Starte die Sitzung und lese `memory/observations.md` für den sitzungsübergreifenden Kontext.
Oder verwende den OpenClaw memoryFlush.systemPrompt, um eine Startanweisung einzufügen.
Plattformunterstützung
| Plattform | Beobachter + Reflektor + Wiederherstellung | Reaktiver Wächter |
|---|---|---|
| Linux (Debian/Ubuntu usw.) | Volle Unterstützung | Mit inotify-tools |
| macOS | Volle Unterstützung | Nicht verfügbar (nur Cron) |
Alle Kernskripte verwenden portables Bash. Die Befehle stat, date und md5 werden plattformübergreifend über _compat.sh verarbeitet.
Konfiguration
Alle Skripte lesen aus Umgebungsvariablen mit sinnvollen Standardwerten:
| Variable | Standard | Beschreibung |
|---|---|---|
OPENROUTER_API_KEY | (erforderlich) | OpenRouter-API-Schlüssel für LLM-Aufrufe |
MEMORY_DIR | $OPENCLAW_WORKSPACE/memory | Ort der observations.md |
SESSIONS_DIR | ~/.openclaw/agents/main/sessions | OpenClaw-Sitzungstranskripte |
OBSERVER_MODEL | stepfun/step-3.5-flash:free | Primäres Modell für Komprimierung (kostenlos) |
OBSERVER_FALLBACK_MODEL | nvidia/nemotron-3-nano-30b-a3b:free | Fallback, wenn primäres Modell ausfällt (kostenlos) |
OBSERVER_LOOKBACK_MIN | 15 | Minuten in die Vergangenheit (tagsüber) |
OBSERVER_MORNING_LOOKBACK_MIN | 480 | Minuten in die Vergangenheit (vor 8 Uhr) |
OBSERVER_LINE_THRESHOLD | 40 | Zeilen vor reaktivem Auslöser (Linux) |
OBSERVER_COOLDOWN_SECS | 300 | Abklingzeit zwischen reaktiven Auslösern (Linux) |
REFLECTOR_WORD_THRESHOLD | 8000 | Wörter, bevor der Reflektor läuft |
REFLECTOR_MODEL | nvidia/nemotron-3-super-120b-a12b:free | Modell zum Konsolidieren von Beobachtungen (kostenlos) |
REFLECTOR_FALLBACK_MODEL | openrouter/hunter-alpha | Fallback, wenn Reflektor-Modell ausfällt (kostenlos) |
OPENCLAW_WORKSPACE | ~/your-workspace | Arbeitsbereichs-Root |
LLM-Provider-Konfiguration
Total Recall verwendet jede OpenAI-kompatible Chat-Completion-API. Wechsle den Anbieter, indem du Umgebungsvariablen setzt:
| Variable | Standard | Beschreibung |
|---|---|---|
LLM_BASE_URL | https://openrouter.ai/api/v1 | API-Endpunkt |
LLM_API_KEY | fällt zurück auf OPENROUTER_API_KEY | API-Schlüssel |
LLM_MODEL | deepseek/deepseek-v3.2 | Zu verwendendes Modell |
Beispiele für Anbieter
# OpenRouter (Standard)
export OPENROUTER_API_KEY="your-key"
# Ollama (lokal)
export LLM_BASE_URL="http://localhost:11434/v1"
export LLM_API_KEY="ollama"
export LLM_MODEL="llama3.1:8b"
# Groq
export LLM_BASE_URL="https://api.groq.com/openai/v1"
export LLM_API_KEY="your-groq-key"
export LLM_MODEL="llama-3.3-70b-versatile"
Erstellte Dateien
memory/
observations.md # Das Hauptbeobachtungsprotokoll (wird beim Start geladen)
observation-backups/ # Reflektor-Backups (letzte 10 werden behalten)
.observer-last-run # Zeitstempel des letzten Beobachterlaufs
.observer-last-hash # Deduplizierungs-Hash der zuletzt verarbeiteten Nachrichten
logs/
observer.log
reflector.log
session-recovery.log
observer-watcher.log
Cron-Jobs
Das Einrichtungsskript erstellt diese OpenClaw-Cron-Jobs:
| Job | Zeitplan | Beschreibung |
|---|---|---|
memory-observer | Alle 15 Min. | Komprimiere das aktuelle Gespräch |
memory-reflector | Stündlich | Konsolidieren, falls Beobachtungen groß sind |
Reaktiver Wächter (nur Linux)
Der reaktive Wächter verwendet inotifywait, um Sitzungsaktivitäten zu erkennen und den Beobachter schneller als der Cron-Job allein auszulösen. Erfordert Linux mit installierten inotify-tools.
# inotify-tools installieren (Debian/Ubuntu)
sudo apt install inotify-tools
# Wächter-Status prüfen
systemctl --user status total-recall-watcher
# Logs anzeigen
journalctl --user -u total-recall-watcher -f
Kosten
Mit den standardmäßigen kostenlosen Modellen über OpenRouter:
- ~0,00 €/Monat (mit Free-Tier-Modellen) bei typischer Nutzung (Beobachter + Reflektor)
- ~15-30 Cron-Läufe/Tag, die jeweils ein paar hundert Token verarbeiten
- Alle Standardmodelle sind Free-Tier-Modelle
Modellanmerkungen
Die Skripte enthalten defensive Handhabung für .content- und .reasoning-Felder in API-Antworten. Während die meisten Modelle Inhalte im Standardfeld .content zurückgeben, stellt der Rückgriff auf .reasoning die Kompatibilität mit Modellen sicher, die andere Antwortformate verwenden könnten.
Wie es funktioniert (Technisch)
Beobachter
- Findet kürzlich geänderte Sitzungs-JSONL-Dateien
- Filtert Subagenten-/Cron-Sitzungen heraus
- Extrahiert Benutzer- + Assistenten-Nachrichten aus dem Rückschaufenster
- Dedupliziert mittels MD5-Hash-Vergleich
- Sendet an LLM mit dem Beobachter-Prompt (prioritätsbasierte Komprimierung)
- Hängt Ergebnis an
observations.mdan - Wenn Beobachtungen die Wortgrenze überschreiten, wird der Reflektor ausgelöst
Reflektor
- Erstellt ein Backup der aktuellen Beobachtungen
- Sendet das gesamte Protokoll an das LLM mit Konsolidierungsanweisungen
- Validiert, dass die Ausgabe kürzer als die Eingabe ist (Plausibilitätsprüfung)
- Ersetzt Beobachtungen durch die konsolidierte Version
- Bereinigt alte Backups (behält die letzten 10)
Sitzungswiederherstellung
- Läuft bei jedem
/newoder/reset - Hasht die letzten Zeilen der letzten Sitzungsdatei
- Vergleicht mit gespeichertem Hash aus dem letzten Beobachterlauf
- Bei Abweichung: Führt Beobachter im Wiederherstellungsmodus aus (4-Stunden-Rückschau)
- Fallback: Rohe Nachrichtenextraktion, falls Beobachter fehlschlägt
Reaktiver Wächter
- Verwendet
inotifywait, um das Sitzungsverzeichnis zu überwachen - Zählt nur JSONL-Schreibvorgänge in Hauptsitzungsdateien
- Nach 40+ Zeilen: Löst Beobachter aus (mit 5-minütiger Abklingzeit)
- Setzt Zähler zurück, wenn Cron-/externe Beobachterläufe erkannt werden
Anpassen der Prompts
Die System-Prompts für Beobachter und Reflektor befinden sich in prompts/:
prompts/observer-system.txt– steuert, wie Gespräche komprimiert werdenprompts/reflector-system.txt– steuert, wie Beobachtungen konsolidiert werden
Bearbeite diese, um sie an die Persönlichkeit und Prioritäten deines Agenten anzupassen.
Traumzyklus
Der Traumzyklus ist ein optionaler nächtlicher Agent, der außerhalb der Geschäftszeiten läuft, um observations.md zu konsolidieren. Er archiviert veraltete Einträge und fügt semantische Haken hinzu, sodass nichts Nützliches wirklich verloren geht. Der Kontext bleibt schlank; alles bleibt auffindbar.
Was er tut
- Klassifiziert jede Beobachtung nach Auswirkung (kritisch / hoch / mittel / niedrig / minimal) und Alter
- Archivert Einträge, deren Relevanzschwelle überschritten wurde
- Fügt für jeden archivierten Eintrag einen semantischen Haken hinzu (spezifische Schlüsselwörter + Archivreferenz)
- Validiert das Ergebnis und macht bei Fehlern automatisch rückgängig
Funktionen
Multi-Hook-Abruf – 4-5 alternative Suchformulierungen pro archiviertem Eintrag. Suchen mit anderen Wörtern als dem Original finden die Erinnerung trotzdem.
Konfidenz-Scoring – jede Beobachtung erhält einen Konfidenzwert (0.0-1.0) und einen Quellentyp (explizit, implizit, Schlussfolgerung, schwach, unsicher). Einträge mit hoher Konfidenz bleiben länger erhalten; Einträge mit niedriger Konfidenz werden früher archiviert.
Erinnerungstypsystem – 7 Typen mit typspezifischen TTLs: Ereignis (14d), Fakt (90d), Präferenz (180d), Ziel (365d), Gewohnheit (365d), Regel (nie), Kontext (30d). Eingebettet als unsichtbare HTML-Metadaten-Kommentare in observations.md.
Beobachtungs-Chunking – Cluster von 3 oder mehr verwandten Beobachtungen werden zu einem einzigen Zusammenfassungseintrag komprimiert. Quellbeobachtungen werden archiviert; ein Chunk-Haken ersetzt sie. Erreicht eine Token-Reduktion von bis zu 75 %.
Bedeutungsverfall – typenspezifischer täglicher Verfall, der vor jeder Archivierungsentscheidung auf die Bedeutungsbewertungen angewendet wird. Einträge, die unter die Archivierungsschwelle fallen, werden zur Entfernung vorgemerkt. Raten: Ereignis (-0,5/Tag), Fakt (-0,1/Tag), Präferenz (-0,02/Tag), Regel/Gewohnheit/Ziel (kein Verfall).
Musterförderung – Scannt aktuelle Traumprotokolle auf wiederkehrende Themen (3+ Vorkommen an 3+ verschiedenen Tagen). Schreibt Förderungsvorschläge in memory/dream-staging/ zur menschlichen Überprüfung. Verwende staging-review.sh, um Vorschläge aufzulisten, anzuzeigen, zu genehmigen oder abzulehnen. Der context-Typ wird niemals automatisch gefördert.
Einrichtung
-
Führe
bash skills/total-recall/scripts/setup.shaus – erstellt automatisch die Traumzyklus-Verzeichnisse. -
Füge den nächtlichen Cron-Job als vollständige Agentenrunde hinzu:
# Traumzyklus – nächtlich (3 Uhr morgens empfohlen; an deine Zeitzone anpassen) # Der Traumzyklus läuft als vollständige Agentenrunde – NICHT als direkter Bash-Aufruf. # dream-cycle.sh ist ein Dateioperations-Helper, der VOM Agenten aufgerufen wird, nicht der Einstiegspunkt. # # 0 3 * * * bash -c 'source ~/.openclaw/shared/secrets/openclaw-secrets.env \ # && openclaw agent --agent main \ # --message "Führe den Total-Recall-Traumzyklus aus. Befolge die Anweisungen in \ # $WORKSPACE/skills/total-recall/prompts/dream-cycle-prompt.md genau. \ # Verwende READ_ONLY_MODE=false und DREAM_PHASE=1." \ # --json >> $WORKSPACE/logs/dream-cycle.log 2>&1' -
Konfiguriere deinen Cron-Agenten mit
prompts/dream-cycle-prompt.mdals System-Prompt. Empfohlene Modelle: Claude Sonnet für den Träumer (Analyse + Entscheidungen), DeepSeek v3.2 für den Beobachter (günstig, schnell). -
Beginne mit
READ_ONLY_MODE=truefür die ersten paar Nächte. Überprüfememory/dream-logs/nach jedem Lauf, um zu sehen, was archiviert worden wäre. -
Wechsle zu
READ_ONLY_MODE=false, sobald du zufrieden bist.
Konfiguration
| Variable | Standard | Beschreibung |
|---|---|---|
DREAM_TOKEN_TARGET | 8000 | Token-Ziel für observations.md nach der Konsolidierung |
READ_ONLY_MODE | false | Setze auf true für eine Trockenübung ohne Schreibvorgänge |
Dateien
| Datei | Beschreibung |
|---|---|
scripts/dream-cycle.sh | Shell-Helper, der vom Agenten aufgerufen wird (kein eigenständiger Ausführer): Vorbereitung, Archivierung, Aktualisieren der Beobachtungen, Protokoll schreiben, Metriken schreiben, Validierung, Rückgängigmachen |
prompts/dream-cycle-prompt.md | Agenten-Prompt für den nächtlichen Traumzyklus-Lauf |
dream-cycle/README.md | Kurzreferenz für den Traumzyklus |
schemas/observation-format.md | Erweitertes Beobachtungs-Metadatenformat |
Erstellte Verzeichnisse
memory/
archive/
observations/ # Archivierte Einträge (eine .md-Datei pro Nacht)
chunks/ # Gechunkte Beobachtungsgruppen
dream-logs/ # Nächtliche Laufberichte
dream-staging/ # Musterförderungsvorschläge, die auf menschliche Überprüfung warten
.dream-backups/ # Pre-Run-Sicherheitsbackups
research/
dream-cycle-metrics/
daily/ # JSON-Metriken pro Nacht
Fehlerbehebung
Beobachter läuft nicht?
- Überprüfe
logs/observer.logauf Fehler - Stelle sicher, dass
OPENROUTER_API_KEYgesetzt und gültig ist - Bestätige, dass Cron aktiv ist:
crontab -l
Beobachtungen werden beim Start der Sitzung nicht geladen?
- Stelle sicher, dass die Startanweisungen deines Agenten das Lesen von
memory/observations.mdbeinhalten - Überprüfe, ob
MEMORY_DIRauf den richtigen Speicherort zeigt
Reaktiver Wächter löst nicht aus (Linux)?
- Führe
systemctl --user status total-recall-watcheraus - Überprüfe, ob
inotify-toolsinstalliert ist:which inotifywait - Zeige Wächter-Logs an:
journalctl --user -u total-recall-watcher -f
Traumzyklus archiviert zu aggressiv?
- Aktiviere
READ_ONLY_MODE=trueund überprüfe die Traumprotokolle, bevor du live gehst - Erhöhe
DREAM_TOKEN_TARGET, um pro Lauf weniger zu archivieren
Traumzyklus archiviert nicht genug?
- Senke
DREAM_TOKEN_TARGET, um eine aggressivere Konsolidierung auszulösen
Inspiriert von
Dieses System ist inspiriert davon, wie das menschliche Gedächtnis während des Schlafs arbeitet – der Hippocampus (Beobachter) nimmt Erfahrungen auf, und während der Schlafkonsolidierung (Reflektor) werden wichtige Erinnerungen gestärkt, während Rauschen verworfen wird.
Weiterlesen: Your AI Has an Attention Problem
„Schaff deinen Arsch zum Mars.“ – Nun, bring das Gedächtnis deines Agenten zum Laufen.