CommunityBildgithub.com

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.

Was ist Total Recall – Autonomes Agenten-Gedächtnis?

Total Recall ist eine leistungsstarke Gedächtnis-Fähigkeit für KI-Agenten wie Claude Code, Cursor oder Codex, die eine vollständig autonome Gedächtnisverwaltung ohne Datenbanken, Vektorsuche oder manuelle Eingriffe ermöglicht. Es verwendet fünf Redundanzschichten: einen Beobachter (Cron-Job alle 15-30 Minuten), einen Reflektor (bei Überschreiten einer Wortgrenze), eine Sitzungswiederherstellung (bei jedem `/new` oder `/reset`), einen reaktiven Wächter (Linux mit inotify) und einen Pre-Kompaktierungs-Hook. Die Fähigkeit komprimiert Sitzungstranskripte (JSONL) in priorisierte Notizen in `observations.md`, festigt diese bei Bedarf und stellt sicher, dass keine Informationen verloren gehen. Sie unterstützt alle OpenAI-kompatiblen Chat-Completion-APIs (OpenRouter, Ollama, Groq) und ist mit Standard-Free-Modellen auf OpenRouter für typische Nutzung ($0.00/Monat) kostengünstig. Total Recall verwaltet sich selbst, erfordert keine Wartung und behält den Kontext über Sitzungen hinweg bei, indem Notizen automatisch geladen werden.

Funktioniert mit✓Claude Code✓Codex CLI~Cursor
npx skills add gavdalf/total-recall

Installed? Explore more Bild skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

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.md an.
  • 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

PlattformBeobachter + Reflektor + WiederherstellungReaktiver Wächter
Linux (Debian/Ubuntu usw.)Volle UnterstützungMit inotify-tools
macOSVolle UnterstützungNicht 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:

VariableStandardBeschreibung
OPENROUTER_API_KEY(erforderlich)OpenRouter-API-Schlüssel für LLM-Aufrufe
MEMORY_DIR$OPENCLAW_WORKSPACE/memoryOrt der observations.md
SESSIONS_DIR~/.openclaw/agents/main/sessionsOpenClaw-Sitzungstranskripte
OBSERVER_MODELstepfun/step-3.5-flash:freePrimäres Modell für Komprimierung (kostenlos)
OBSERVER_FALLBACK_MODELnvidia/nemotron-3-nano-30b-a3b:freeFallback, wenn primäres Modell ausfällt (kostenlos)
OBSERVER_LOOKBACK_MIN15Minuten in die Vergangenheit (tagsüber)
OBSERVER_MORNING_LOOKBACK_MIN480Minuten in die Vergangenheit (vor 8 Uhr)
OBSERVER_LINE_THRESHOLD40Zeilen vor reaktivem Auslöser (Linux)
OBSERVER_COOLDOWN_SECS300Abklingzeit zwischen reaktiven Auslösern (Linux)
REFLECTOR_WORD_THRESHOLD8000Wörter, bevor der Reflektor läuft
REFLECTOR_MODELnvidia/nemotron-3-super-120b-a12b:freeModell zum Konsolidieren von Beobachtungen (kostenlos)
REFLECTOR_FALLBACK_MODELopenrouter/hunter-alphaFallback, wenn Reflektor-Modell ausfällt (kostenlos)
OPENCLAW_WORKSPACE~/your-workspaceArbeitsbereichs-Root

LLM-Provider-Konfiguration

Total Recall verwendet jede OpenAI-kompatible Chat-Completion-API. Wechsle den Anbieter, indem du Umgebungsvariablen setzt:

VariableStandardBeschreibung
LLM_BASE_URLhttps://openrouter.ai/api/v1API-Endpunkt
LLM_API_KEYfällt zurück auf OPENROUTER_API_KEYAPI-Schlüssel
LLM_MODELdeepseek/deepseek-v3.2Zu 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:

JobZeitplanBeschreibung
memory-observerAlle 15 Min.Komprimiere das aktuelle Gespräch
memory-reflectorStündlichKonsolidieren, 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

  1. Findet kürzlich geänderte Sitzungs-JSONL-Dateien
  2. Filtert Subagenten-/Cron-Sitzungen heraus
  3. Extrahiert Benutzer- + Assistenten-Nachrichten aus dem Rückschaufenster
  4. Dedupliziert mittels MD5-Hash-Vergleich
  5. Sendet an LLM mit dem Beobachter-Prompt (prioritätsbasierte Komprimierung)
  6. Hängt Ergebnis an observations.md an
  7. Wenn Beobachtungen die Wortgrenze überschreiten, wird der Reflektor ausgelöst

Reflektor

  1. Erstellt ein Backup der aktuellen Beobachtungen
  2. Sendet das gesamte Protokoll an das LLM mit Konsolidierungsanweisungen
  3. Validiert, dass die Ausgabe kürzer als die Eingabe ist (Plausibilitätsprüfung)
  4. Ersetzt Beobachtungen durch die konsolidierte Version
  5. Bereinigt alte Backups (behält die letzten 10)

Sitzungswiederherstellung

  1. Läuft bei jedem /new oder /reset
  2. Hasht die letzten Zeilen der letzten Sitzungsdatei
  3. Vergleicht mit gespeichertem Hash aus dem letzten Beobachterlauf
  4. Bei Abweichung: Führt Beobachter im Wiederherstellungsmodus aus (4-Stunden-Rückschau)
  5. Fallback: Rohe Nachrichtenextraktion, falls Beobachter fehlschlägt

Reaktiver Wächter

  1. Verwendet inotifywait, um das Sitzungsverzeichnis zu überwachen
  2. Zählt nur JSONL-Schreibvorgänge in Hauptsitzungsdateien
  3. Nach 40+ Zeilen: Löst Beobachter aus (mit 5-minütiger Abklingzeit)
  4. 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 werden
  • prompts/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

  1. Führe bash skills/total-recall/scripts/setup.sh aus – erstellt automatisch die Traumzyklus-Verzeichnisse.

  2. 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'
    
  3. Konfiguriere deinen Cron-Agenten mit prompts/dream-cycle-prompt.md als System-Prompt. Empfohlene Modelle: Claude Sonnet für den Träumer (Analyse + Entscheidungen), DeepSeek v3.2 für den Beobachter (günstig, schnell).

  4. Beginne mit READ_ONLY_MODE=true für die ersten paar Nächte. Überprüfe memory/dream-logs/ nach jedem Lauf, um zu sehen, was archiviert worden wäre.

  5. Wechsle zu READ_ONLY_MODE=false, sobald du zufrieden bist.

Konfiguration

VariableStandardBeschreibung
DREAM_TOKEN_TARGET8000Token-Ziel für observations.md nach der Konsolidierung
READ_ONLY_MODEfalseSetze auf true für eine Trockenübung ohne Schreibvorgänge

Dateien

DateiBeschreibung
scripts/dream-cycle.shShell-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.mdAgenten-Prompt für den nächtlichen Traumzyklus-Lauf
dream-cycle/README.mdKurzreferenz für den Traumzyklus
schemas/observation-format.mdErweitertes 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.log auf Fehler
  • Stelle sicher, dass OPENROUTER_API_KEY gesetzt 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.md beinhalten
  • Überprüfe, ob MEMORY_DIR auf den richtigen Speicherort zeigt

Reaktiver Wächter löst nicht aus (Linux)?

  • Führe systemctl --user status total-recall-watcher aus
  • Überprüfe, ob inotify-tools installiert ist: which inotifywait
  • Zeige Wächter-Logs an: journalctl --user -u total-recall-watcher -f

Traumzyklus archiviert zu aggressiv?

  • Aktiviere READ_ONLY_MODE=true und ü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.

Verwandte Skills