Agentengedächtnis
Das Agentengedächtnis in Notarium ist keine versteckte Magie und keine separate Datenbank: Es sind ganz normale Notizen der Klasse agent-memory, die der Agent aus seinen Beobachtungen schreibt und die du lesen, korrigieren und löschen kannst. Fakten legt der Agent über remember_about_user und remember_about_project ab, Kontext holt er über recall. Die zentrale Disziplin lautet: vor dem Schreiben suchen, damit keine Duplikate entstehen.
Zwei Achsen: über den Nutzer und über das Projekt
Das Gedächtnis lebt auf zwei orthogonalen Achsen:
- Über den Nutzer —
remember_about_userschreibt langlebige Fakten über dich (Vorlieben, Kontext, aktuelle Arbeit) in das private Gedächtnis deiner persönlichen Domäne. Es ist ein und dasselbe Gedächtnis, egal in welchem Space du arbeitest — es wird nicht in jeden Space eingemischt. - Über das Projekt —
remember_about_projectschreibt das Gedächtnis über ein bestimmtes Projekt in dessen Unterverzeichnis. Symmetrisch zum Schreiben über den Nutzer, aber an das Projekt gebunden.
Beide Achsen nutzen die Klasse agent-memory. Der Agent wählt weder Klasse noch Ordner noch Space aus: Das erzwingt das Tool selbst. Geteiltes Wissen, das als user-doc im Projektbaum leben soll, schreibt ein eigenes Tool, create_note, und nicht „remember“.
Eine Datei pro Kategorie, nicht eine Datei pro Beobachtung
remember_about_user(observation, category) hängt die Beobachtung an die Datei der Kategorie an, statt für jeden Fakt eine Mikrodatei zu erzeugen. category ist ein Label („preferences“), kein Pfad. Eine neue Kategorie bedeutet eine neue Datei. Das optionale summary ist eine einzeilige Zusammenfassung der Kategorie, die den abgeleiteten Index des Profils speist.
Einen einzelnen festgehaltenen Fakt zu korrigieren oder zu löschen ist schlicht das Bearbeiten einer gewöhnlichen Notiz: edit_note über die id der Gedächtnisnotiz (die remember_* zurückgibt) im Modus findReplace (ein leerer content entfernt das Snippet) oder im Modus replace für die ganze Kategorie. Es gibt keine separate „Adressierung nach Beobachtung“ — das Gedächtnis wird mit denselben wortbasierten Modi bearbeitet wie jede andere Notiz.
recall ≠ search
Beide Tools lesen, lösen aber unterschiedliche Aufgaben:
search | recall | |
|---|---|---|
| Was es zurückgibt | gerankte Snippets mit score und path | ein kohärentes Kontextbündel im Rahmen eines Token-Budgets |
| Reichweite | relevante Notizen | relevante Notizen plus ihre Graph-Nachbarn (depth Sprünge durch den Graphen) |
| Gedächtnis | sieht das Gedächtnis (für die Deduplizierung) | schöpft aus dem Wissen und aus dem persönlichen Gedächtnis |
| Wann aufrufen | etwas Konkretes finden, vor dem Schreiben prüfen | Kontext rund um ein Thema für die Arbeit zusammenstellen |
recall ist reichhaltiger: Es durchläuft den Graphen rund um das Gefundene und packt das Ergebnis im Rahmen von budgetTokens, während maxPerSource verhindert, dass eine einzige große Notiz das ganze Bündel auffrisst. search ist punktgenau: Es ist genau der Mechanismus hinter „vor dem Schreiben suchen“.
Vor dem Schreiben suchen
Das Gedächtnis ist die einzige Klasse ohne Duplikatschutz per Titel, deshalb deckt search bewusst auch das Gedächtnis des Agenten ab. Such stets vor dem Schreiben: Das dedupliziert sowohl Wissen als auch Gedächtnis.
Ruf vor remember_* ein search zum Thema des Fakts auf. Existiert die Kategorie bereits, häng über dasselbe remember_* an sie an (es hängt an) oder korrigiere sie mit edit_note, statt ein Synonym anzulegen.
Was der Eigentümer sieht
Das Gedächtnis ist aus der normalen Navigation ausgeblendet (Baum, Feed, gewöhnliche Suche), vor dir aber nicht verborgen: Es ist über eine eigene Memory-Linse im Explorer-Baum sichtbar (Notizen öffnen sich wie alle anderen, unter /m/<id>), und eine Kategorie kannst du unter Agents → Context stummschalten. Der Eintrag im Revisionsprotokoll zeigt genau, was der Agent festgehalten hat — so erwischst du alles, was eine Injektion untergeschoben haben könnte. Das Gedächtnis kannst du nicht umorganisieren: Dieser Bereich gehört dem Agenten (ein flacher Satz plus ein abgeleiteter Index), doch ihn zu verschieben ist technisch unbedenklich — die Identität hängt an der id der Notiz.
Weiter
- Kontext-Sets und Pins — wie man eine Gedächtniskategorie stummschaltet und was beim Start geladen wird.
- Retrieval-Audit — wonach der Agent über
search/recallgesucht hat und ob er es gefunden hat. - Intent-Tools — der vollständige Satz an Tools.