Agent Geheugen

Persistent, gestructureerd en doorzoekbaar geheugen voor AI-agents: per brein of voor een losse agent, met herkomst, versiehistorie en één gedeelde interface.

Een agent die bij elk gesprek opnieuw begint, is geen agent maar een invulformulier. Phrona geeft hem een geheugen dat blijft staan, dat je op betekenis kunt doorzoeken, en dat meerdere toepassingen kunnen delen — zonder dat elk van hen een eigen kennisvoorraad hoeft op te bouwen.

Wat een agent “geheugen” noemt, is meestal een buffer

Bij de meeste AI-toepassingen bestaat geheugen uit het gesprek dat eraan voorafging. Dat is precies genoeg om een gesprek te laten lopen, en precies te weinig om iets te onthouden. Het verdwijnt bij een nieuwe sessie, het is niet op te vragen, en een tweede agent kan er niet bij.

Drie dingen ontbreken daarin, en die drie zijn de reden dat dit een eigen laag is en geen instelling:

  • Structuur. Een regel gesprekstekst zegt niet wát voor uitspraak het is. Is dit een feit, een voorkeur, een procedure, een eerdere conclusie? Zonder dat onderscheid weegt een terloopse opmerking even zwaar als een vastgelegde afspraak.
  • Terugvindbaarheid. Een buffer wordt doorlopen, niet doorzocht. Vind je iets terug op betekenis, of alleen als je nog weet welke woorden er vielen?
  • Herbruikbaarheid. Een buffer hoort bij één agent in één proces. Zodra een tweede toepassing dezelfde context nodig heeft, begint die opnieuw — met een eigen kopie die langzaam uit de pas gaat lopen.

Gestructureerd én doorzoekbaar, niet het één of het ander

Deze twee worden vaak tegenover elkaar gezet, en dat is onnodig. Een vectorindex is sterk in het vinden van iets wat je met andere woorden beschrijft; een gestructureerd record is sterk in het vertellen wat je gevonden hebt en of je het mag vertrouwen. Phrona doet beide op hetzelfde record.

Bij het wegschrijven van een herinnering wordt een embedding gemaakt en apart opgeslagen — met het model en de dimensie erbij, zodat een latere modelwissel geen bestaande vectoren stil ongeldig maakt. Bij het zoeken lopen beide routes naast elkaar: lexicale treffers op de woorden die je typt, en vectorgelijkenis op de betekenis. Wat beide routes vinden, weegt zwaarder dan wat alleen de een of alleen de ander vindt.

Dat verschil merk je bij de vraag die je anders stelt. “Wat hebben we afgesproken over levertijden” vindt het record met het woord erin. “Hoe lang duurt het voordat een aanvraag rond is” vindt hetzelfde record via de betekenis — en dat is de vraag die iemand écht typt.

Vier niveaus, en wie ze kan zien

Niet elk feit hoort op dezelfde plek. Een vaste procedure is iets anders dan jouw voorkeur voor korte antwoorden, en dat is weer iets anders dan wat er binnen één gesprek ter tafel lag. Daarom is de zichtbaarheid van een herinnering een eigenschap van het record en niet een instelling van de toepassing.

Brein-geheugen

Wat een Brein heeft vastgehouden over zijn eigen onderwerp. Dit is het niveau waarop kennis tussen gesprekken en tussen gebruikers doorloopt.

Zichtbaar voor
Iedereen met toegang tot dat Brein
Levensduur
Blijft staan

Persoonlijk geheugen

Wat tussen jou en het platform is vastgelegd: voorkeuren, eerdere keuzes, hoe je wilt dat er wordt gewerkt.

Zichtbaar voor
Alleen jij
Levensduur
Blijft staan

Sessiegeheugen

Tijdelijk en geïsoleerd per gesprek. Bedoeld voor wat binnen één taak relevant is en daarna niet meer mag doorwerken.

Zichtbaar voor
Alleen binnen die sessie
Levensduur
Vervalt

Gedeeld record

Een losse herinnering die je met één andere gebruiker of één ander Brein deelt. Intrekken laat een spoor achter in plaats van het record te wissen.

Zichtbaar voor
Alleen wie expliciet is uitgenodigd
Levensduur
Intrekbaar

Die laatste verdient een aparte opmerking, want “gedeeld” klinkt als een openbare laag en dat is het niet. Een record wordt gedeeld met één andere gebruiker of één ander Brein, via een expliciete verlening per record. Zonder die verlening is het voor niemand anders bereikbaar. En intrekken gebeurt zacht — de verlening wordt gemarkeerd in plaats van weggegooid, zodat je later kunt uitleggen wie wanneer toegang had.

De keuze voor een niveau is geen etiquette maar een technische grens. Een sessierecord wordt bij het schrijven al aan één sessie gebonden; een Brein-record draagt het Brein waarin het is vastgelegd. Wat daar niet bij hoort, komt ook niet in de zoekresultaten terecht.

Eén laag, meerdere aanroepers

Dit is het onderdeel dat het verschil maakt met geheugen dat bij een product ingebakken zit. De geheugenlaag is geen onderdeel van de chat in het platform; het is een dienst met een interface. Wat er aanklopt, maakt voor de laag niet uit.

OpenClaw-agent draait bij jou
Phrona-Brein binnen het platform
Eigen applicatie via REST of MCP
Geheugeninterface /v1/memory /v1/memory/search /v1/memory/context MCP-tools Elke aanroep draagt een token met scopes; een token dat aan een Brein gebonden is, komt niet bij een ander Brein.
Gestructureerde records Type, inhoud, herkomst, betrouwbaarheid, geldigheid en versienummer per herinnering.
Vectorindex Een embedding per record, zodat een vraag die andere woorden gebruikt hetzelfde record vindt.
Dezelfde laag voor elke aanroeper. Geen aparte geheugenkopie per agent, geen synchronisatie tussen kopieën.

Een token dat aan een Brein gebonden is, komt niet bij een ander Brein. Dat is geen instelling die je kunt vergeten: de binding wordt bij elke aanroep afgedwongen, ook in de zoekresultaten. En per token bepaal je welke handelingen zijn toegestaan — lezen, schrijven, verwijderen, zoeken, context ophalen. Een agent die alleen mag lezen, krijgt geen schrijfscope, ook niet als hij erom vraagt.

Wat er gebeurt als een agent iets onthoudt

Zes stappen, en ze zijn alle zes na te lopen in het systeem. De volgorde is niet willekeurig: de keuzes over zichtbaarheid en geldigheid worden bij het schrijven gemaakt, niet bij het lezen. Achteraf bepalen wie iets mag zien, is een recept voor een lek.

  1. Vastleggen Een agent of gebruiker schrijft een herinnering weg, met een type en een herkomst.
  2. Structureren Scope, zichtbaarheid per handeling en geldigheid worden vastgelegd — niet later, maar bij het schrijven.
  3. Vectoriseren Er wordt een embedding gemaakt en apart opgeslagen, met het model en de dimensie erbij.
  4. Terugvinden Zoeken combineert lexicale treffers met vectorgelijkenis; een parafrase vindt het record ook.
  5. Context leveren De agent krijgt de relevante records terug als context, met hun bron en betrouwbaarheid erbij.
  6. Actualiseren Een wijziging maakt een nieuwe versie; de oude blijft in de historie staan.

De laatste stap is de belangrijkste voor de betrouwbaarheid. Een wijziging overschrijft niets: er komt een nieuwe versie bij, en de oude blijft staan met een wijzigingsnotitie. Daarmee is een herinnering geen momentopname die je moet geloven, maar een spoor dat je kunt terugvolgen — inclusief het antwoord dat een agent gaf op grond van een versie die later niet meer klopte.

Hoe een record er werkelijk uitziet

Zodra iemand zegt dat geheugen “gestructureerd” is, is de vraag welke velden er dan zijn. Dit zijn ze. De waarden zijn een voorbeeld; de velden zijn precies wat er in het schema staat.

feit record 4821 · versie 3

“De doorlooptijd van een aanvraag is 14 werkdagen, gerekend vanaf het moment dat alle stukken binnen zijn.”

Herkomst
Proceshandboek, hoofdstuk 3 (bijgewerkt 2026)
Betrouwbaarheid
Hoog — één bron, geen tegenspraak
Geldig
Van 1 januari 2026 tot nader order
Zichtbaarheid
Brein-geheugen — leesbaar voor iedereen met toegang

Versie 2 zei 10 werkdagen. Die versie staat er nog, met de wijzigingsnotitie erbij: een agent die een oud antwoord gaf, is later te controleren.

Voorbeeldrecord. Elk veld hier bestaat ook echt in het schema.

Twee dingen zijn hier bewust onderdeel van het record en geen metadata die je later toevoegt. Herkomst — waar komt deze uitspraak vandaan, en is dat een document, een gesprek of een eerdere conclusie. En geldigheid — vanaf wanneer geldt dit, en tot wanneer. Een geheugen dat een verouderde afspraak met hetzelfde gewicht teruggeeft als de huidige, is erger dan geen geheugen.

Herkomst: waarom dit geen bijzaak is

Een geheugenrecord kan verwijzen naar de bron waarop het rust — een document, een passage, een kennisclaim uit een Brein. Daarmee wordt een herinnering geen losse bewering, maar een uitspraak met iets eronder.

Dat is om twee redenen nodig. Ten eerste om te kunnen controleren: als een agent iets beweert op grond van zijn geheugen, wil je kunnen zien waar dat geheugen op rust. Ten tweede om te kunnen corrigeren: als de bron verandert, weet je welke herinneringen hij raakte. Zonder die koppeling is een correctie een zoektocht door tekst.

Naast herkomst is er een tweede vorm van ordening: relaties tussen records. Een herinnering kan een andere tegenspreken, ondersteunen, vervangen of ervan afgeleid zijn. Daarmee is het geheugen geen platte lijst maar een netwerk waarin je kunt zien dat een oude conclusie door een nieuwe is ingehaald — in plaats van beide tegen te komen en zelf te moeten raden welke nog geldt.

Wat het geheugen zelf opruimt

Een geheugen dat alleen maar groeit, wordt vanzelf onbetrouwbaar. Daarom is er een consolidatieslag: records die inhoudelijk hetzelfde zijn worden herkend aan een deduplicatiesleutel, en de oudere wordt door de nieuwere gemarkeerd als vervangen. Er verdwijnt niets — de relatie blijft zichtbaar — maar de zoeklaag hoeft niet twee keer hetzelfde antwoord te geven.

Dat is bewust een expliciete handeling en geen achtergrondproces dat ongevraagd je geheugen herschrijft. Je start hem, je ziet wat hij heeft gevonden, en je kunt het resultaat teruglezen.

Wat je zelf in de hand hebt

  • Zien wat er onthouden is. Je doorzoekt het geheugen, opent een record en leest de velden — inclusief de herkomst en de vorige versies.
  • Corrigeren. Een record aanpassen maakt een nieuwe versie; de oude blijft in de historie staan.
  • Verwijderen. Verwijderen is zacht: het record verdwijnt uit alle zoekresultaten en de embeddings en relaties gaan mee, maar het spoor blijft bestaan.
  • Archiveren. Een record uit de actieve set halen zonder de geschiedenis te verliezen.
  • Delen, en stoppen met delen. Per record, met één andere gebruiker of één ander Brein, en intrekbaar.

Waar dit in de praktijk voor gebruikt wordt

Niet als lijstje mogelijkheden, maar als antwoord op de vraag wanneer dit het verschil maakt:

  • Een agent die een dossier bijhoudt. Wat er eerder is besloten, door wie, en op grond waarvan. Een nieuwe medewerker stelt dezelfde vraag als zijn voorganger en krijgt hetzelfde antwoord — met de bron erbij.
  • Een Brein dat tussen gesprekken doorleert. Wat in het ene gesprek is vastgesteld, weegt mee in het volgende, zonder dat de gebruiker het opnieuw hoeft te vertellen.
  • Meerdere toepassingen op dezelfde context. Een portal, een interne assistent en een geautomatiseerde workflow lezen hetzelfde geheugen in plaats van elk hun eigen kopie op te bouwen.
  • Een agent met een eigen werkgeheugen. Een sessie die iets uitzoekt, laat de tussenresultaten binnen die sessie en gooit ze daarna weg — zonder dat ze het duurzame geheugen vervuilen.

Wat dit niet is

Om te voorkomen dat je iets verwacht wat er niet is:

  • Geen automatisch lerende agent. Er wordt niets vanzelf aan het geheugen toegevoegd omdat een gesprek interessant was. Een agent of gebruiker schrijft een herinnering bewust weg, met een type en een herkomst.
  • Geen vervanging van de kennisset. Kennis uit bronnen hoort in een Brein, met claims en bronregister. Het geheugen is voor wat er in de samenwerking gebeurt: besluiten, voorkeuren, context, eerdere uitkomsten.
  • Geen openbare laag. Delen gebeurt per record en op uitnodiging. Er is geen niveau waarbij records zonder verlening voor anderen zichtbaar worden.
  • Geen belofte over snelheid of schaal. Wat er technisch staat, staat in het OpenAPI-document dat je met je eigen token kunt opvragen. Getallen over doorvoer of responstijd die niet gemeten zijn, staan hier niet.

Waar je begint

De snelste manier om te beoordelen of dit voor jouw situatie iets toevoegt, is kijken wat een agent nu kwijt is aan het einde van een gesprek. Noem drie dingen die hij zou moeten weten en nu niet weet — dat is de lijst die dit oplost.

Plan een gesprek Bekijk de interface