# Agent Memory (Agentengedächtnis)

*Notizen, die Sie lesen und bearbeiten können, sind die Wahrheit. Indizes sind ein Cache, den Sie wegwerfen können.*

> **Agent Memory** = **Notizen, die Sie lesen und bearbeiten können** + **Indizes, die Sie jederzeit wegwerfen können**. Jede Notiz nennt ihre Quellen; Indizes (Volltext, Vektor, Graph, Gliederung) sind nur Ableitungen der Notizen; und Wartungsjobs im Hintergrund **schlagen** Änderungen nur **vor** und schreiben das rohe Journal nie um.

**AN-07** · Konformitätsstufe: L2 Memory · Gruppe: Wissen

## Das Problem

Gedächtnis-Frameworks legen Gedächtnis in undurchsichtige Datenbanken: Man kann es nicht einsehen, vergleichen, migrieren oder korrigieren, zuverlässiges Löschen ist schwer, und Index und Embedding-Modell sind festgelegt. Und Gedächtnis ist selbst eine Angriffsfläche: In einer [Studie von 2026](https://arxiv.org/abs/2606.04329) erreichte die Vergiftung des persistenten Gedächtnisses über zwei Agenten hinweg eine durchschnittliche Angriffserfolgsrate von 50,46 %, und eine [weitere Studie](https://arxiv.org/abs/2607.05189) hatte mit einer einzigen sorgfältig gestalteten E-Mail Erfolg gegen Gedächtnis-Backends auf Dateisystem- wie auf Vektorbasis.

Zugleich ist „welche Gedächtnisarchitektur ist die beste“ längst nicht entschieden: Benchmarks widersprechen sich. Ein Entwurf, der auf keinen bestimmten Retrieval-Algorithmus setzt, kann drei Jahre Wandel überstehen.

## So funktioniert es

- **Notizen sind die Wahrheit.** Markdown mit YAML-Frontmatter: `kind` (episodisch, semantisch, prozedural, Präferenz), `subject`, `sources`, `confidence`, `valid_from`, `valid_to`, `supersedes`, `origin`, `reviewed`.
- **Aktualisieren, nicht überschreiben.** Ein neuer Fakt `supersedes` den alten; Gültigkeitszeit und Aufzeichnungszeit werden getrennt gehalten, weil sich Fakten ändern und gängige Benchmarks das kaum testen.
- **Indizes sind ein Cache.** BM25 (zum Beispiel SQLite FTS5), Vektoren (mehrere können nebeneinander bestehen) und ein optionaler Graph; jede Ableitung trägt ihr **Rezept** und ihre **Eingaben**. Das Embedding-Modell zu wechseln heißt, im Hintergrund neu zu berechnen, und der alte Index bleibt, bis der neue die Golden-Recall-Tests besteht.
- **Zwei Arten der Ableitung.** Deterministische (Chunking, BM25, Embeddings aus einem festen Modell) sind reproduzierbar; generative (LLM-Zusammenfassungen, extrahierte Fakten) lassen sich nur „neu erzeugen und vergleichen“, daher werden sie mit `generated: true` markiert und dienen nie als einzige Kopie.
- **Schreibpfad.** `nas_remember` schreibt eine Notiz (mit Quellen) auf den aktuellen Branch, und die Kontamination wird vererbt. Eine Notiz aus einer Sitzung mit der Kontamination `external` kommt in **Quarantäne**, als ungeprüft markiert: Sie lässt sich abrufen, wird aber **nicht automatisch geladen** und gelangt nicht in `MEMORY.md`.
- **Lesepfad.** `nas_recall` = Suche, Kandidaten, eine budgetierte Ansicht plus Belegzeiger, und es zeigt Quelle und Prüfstatus jeder Notiz.
- **Wartungsjobs** (über Nacht oder im Leerlauf): deduplizieren, Episoden zu semantischen Fakten verdichten, Widersprüche markieren, veraltete Fakten ausmustern, Indizes neu aufbauen. Jobs erzeugen Vorschläge auf einem Branch, die ein Mensch oder ein Agent prüft; sie **löschen nie das rohe Journal**; die „Reuerate“ (der Anteil der Vorschläge, die zurückgerollt werden) wird gemessen.
- **Golden-Recall-Tests.** Pro Home eine Menge von Paaren „Frage, erwartete Notiz“, die automatisch laufen, wenn sich das Modell oder der Indexer ändert.

## Klein anfangen

- `memory/notes/*.md` mit Frontmatter und SQLite FTS5 für die Suche.
- Lassen Sie zehn Golden-Fragen in der CI laufen.
- Vektorindizes und Wartungsjobs können später folgen; bringen Sie zuerst „Provenienz“ und „nur geprüfte Notizen werden automatisch geladen“ in Ordnung.

## Schnittstellenskizze

Nur zur Veranschaulichung. Feldnamen können sich vor der Spezifikation v0.3 ändern.

*memory/notes/customer-acme.md*

```markdown
---
id: mem_4kq2
kind: semantic
subject: customer/acme
valid_from: 2026-10-02
valid_to: null
confidence: 0.8
origin: agent
reviewed: true
sources:
  - nas://home-box/agents/cleo/journal/2026-10-02.md@9f2c1de#L12-L18
supersedes: [mem_1xa9]
---
Acme renewed for 24 months; the champion moved from Dana to Luis.
```

## Was die Spezifikation verlangt

- Notizen MÜSSEN ohne die Memory-Schicht lesbar sein (sie sind gewöhnliche Dateien im Store).
- Jede Ableitung MUSS ihr Rezept und ihre Eingaben tragen; ein Index MUSS verwerfbar und wiederaufbaubar sein.
- Notizen aus einer kontaminierten Sitzung DÜRFEN NICHT automatisch geladen werden, bevor sie geprüft wurden.
- Ein neuer Fakt MUSS einen alten mit `supersedes` ersetzen, statt ihn zu überschreiben.
- Wartungsjobs MÜSSEN auf einem Branch arbeiten und nur vorschlagen; sie DÜRFEN NICHT das rohe Journal löschen.
- Jedes Home SOLLTE Golden-Recall-Tests enthalten und sie ausführen, sobald sich das Modell oder der Indexer ändert.

## Was übernommen ist und was neu ist

Alles Folgende ist etabliertes Denken, und die Gedächtnisarchitektur von OpenClaw macht Provenienz-Labels, Quarantäne pro Stufe und die Weitergabe von Kontamination bei der Konsolidierung bereits. **Neu ist:** OpenClaw macht das **innerhalb einer Laufzeitumgebung**; wir schlagen vor, es **im gemeinsamen Speicher** zu tun, sodass jede Laufzeitumgebung profitiert, und den Index zu einem verwerfbaren Cache zu degradieren, damit sich der Retrieval-Algorithmus ändern kann, ohne Gedächtnis zu verlieren.

- [Letta Context Repositories](https://www.letta.com/blog/context-repositories/)
- [Letta: is a filesystem all you need?](https://www.letta.com/blog/benchmarking-ai-agent-memory/)
- [OpenClaw memory architecture](https://docs.openclaw.ai/concepts/memory-architecture)
- [Long-term memory security survey](https://arxiv.org/abs/2604.16548)
- [Graphiti](https://github.com/getzep/graphiti)
- [MemGPT](https://arxiv.org/abs/2310.08560)

## Ehrliche Grenzen

- Generative Ableitungen lassen sich nie Bit für Bit reproduzieren.
- Ein Wartungsjob kann einen Fehler zu einem Fakt „verhärten“; deshalb schlägt er nur vor und bearbeitet nie direkt.
- Welche Gedächtnisarchitektur die beste ist, bleibt offen.

## Offene Fragen

- Wann sollte ein Agent selbst Gedächtnis schreiben, und wann ein Wartungsjob?
- Was ist der Regressionsmaßstab über Modellversionen hinweg?

## Fragen

### Warum Dateien statt einer Vektordatenbank?

Dateien sind die Wahrheit, die Sie lesen, bearbeiten, vergleichen und mitnehmen können; ein Vektorindex ist ein abgeleiteter Cache, der in mehreren Versionen nebeneinander bestehen und jederzeit neu aufgebaut werden kann. Der Benchmark von Letta zeigte, dass ein Agent mit nur `grep` und Dateiwerkzeugen konkurrenzfähig ist, aber Benchmarks widersprechen sich, daher setzt der Entwurf nicht auf einen Retrieval-Algorithmus.

### Wie wird Gedächtnisvergiftung verhindert?

Man kann nicht garantieren, dass nie etwas Schlechtes geschrieben wird, aber die Folgen lassen sich begrenzen: Inhalte von außen tragen das Label `external`; Notizen aus einer kontaminierten Sitzung kommen in Quarantäne und werden nicht automatisch geladen; Merges werden geprüft; und wenn etwas schiefgeht, können Sie der Provenienzkette zu den betroffenen Notizen folgen und zurücksetzen.

### Muss ich das Gedächtnis migrieren, wenn ich das Embedding-Modell wechsle?

Nein. Die Notizen ändern sich nicht; nur die Indizes werden im Hintergrund mit dem neuen Rezept neu berechnet, und der alte Index bleibt, bis der neue die Golden-Recall-Tests besteht.

## Verwandte Konzepte

- [Budgeted Reads (budgetiertes Lesen)](https://agentnas.com/de/concepts/budgeted-reads/): Eine Datei als Gliederung, Abschnitt, Zeilenbereich oder vollständig lesen, abgestuft, damit sie ins Budget passt.
- [Cascade Forget (kaskadierendes Vergessen)](https://agentnas.com/de/concepts/cascade-forget/): Ableitungen entlang der Lineage löschen, den Verlauf nach Aufbewahrungsklasse behandeln und melden, was nicht möglich war.
- [Trust Labels (Vertrauenslabels)](https://agentnas.com/de/concepts/trust-labels/): Zwei kleine Labels plus Sitzungskontamination setzen die Zweierregel durch.

---

Kanonische URL: https://agentnas.com/de/concepts/agent-memory/
Aktualisiert am: 2026-11-11 · Spezifikationsentwurf v0.2 · CC BY 4.0
