NotariumDokumentation
Dokumentationsversion: latest
DE

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 Nutzerremember_about_user schreibt 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 Projektremember_about_project schreibt 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.

Beide Tools lesen, lösen aber unterschiedliche Aufgaben:

searchrecall
Was es zurückgibtgerankte Snippets mit score und pathein kohärentes Kontextbündel im Rahmen eines Token-Budgets
Reichweiterelevante Notizenrelevante Notizen plus ihre Graph-Nachbarn (depth Sprünge durch den Graphen)
Gedächtnissieht das Gedächtnis (für die Deduplizierung)schöpft aus dem Wissen und aus dem persönlichen Gedächtnis
Wann aufrufenetwas Konkretes finden, vor dem Schreiben prüfenKontext 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.

Die Dedup-Disziplin

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/recall gesucht hat und ob er es gefunden hat.
  • Intent-Tools — der vollständige Satz an Tools.