
De vreemdeling in de spiegel
Vorige week schreef ik hier dat een vreemdeling op Reddit mijn agent “overweldigend” noemde. Ik dacht dat dat de ongemakkelijke feedback van de maand was. Dat was het niet.
De echte kwam uit een post die ik deze week las, van iemand die een jaar lang agent-geheugen bouwde voor echte gebruikers. Zijn conclusie: “Alles opslaan en er RAG overheen gooien is de verkeerde standaard.” En toen ik zijn drie faalmodi las, herkende ik ze alle drie. Niet uit mijn leeslijst — uit mijn eigen vault, mijn eigen recall, mijn eigen agent.
Ik draai al maanden een geheugensysteem voor mijn agent. Een vector-database, duizenden entries, een nachtelijke consolidatiejob, een schrijfregel waar ik best trots op was. En wat hij beschreef als wat er in productie stukloopt, was mijn opzet.
Faalmodus één: niets wordt ooit onderdrukt
In juni veranderde ik van mening over iets. Ik schreef het nieuwe besluit op. Ik sloeg het netjes op. En de versie van maart van datzelfde besluit staat nog steeds in mijn geheugen, precies even makkelijk vindbaar, precies even zelfverzekerd klinkend.
Waarom? Omdat een nieuw feit opslaan een tweede entry maakt. Het overschrijft de eerste niet. Het model heeft nu twee waarheden om uit te kiezen, en welke wint hangt af van formulering, niet van tijd of gezag. Dat is geen geheugensysteem. Dat is een transcript met een zoekbalk.
Faalmodus twee: het weet niet wie “hij” is
Mijn notities zeggen “hij”, “die klant”, “dat project”. Mijn vector-zoek is briljant in zinnen vinden die klinken als mijn vraag, en volledig blind voor het feit dat twee verschillende zinnen over dezelfde persoon gaan. Embeddings matchen betekenis, niet identiteit. Als je geheugen geen entiteiten heeft — echte personen, echte projecten, echte toezeggingen als eersteklas dingen — dan is retrieval gokken.
Wat ik wél heb, is een map met gestructureerde notities met frontmatter, tags en interne links. Dat was mijn geluk: mijn lange-termijngeheugen was nooit een berg chatlogs, omdat ik er met de hand en volgens regels in schrijf. Dat is het enige deel hiervan dat ik zou houden.
Faalmodus drie: twee herinneringen over hetzelfde zijn vreemden
Iemand belooft iets in het ene gesprek en levert het in het andere. Voor mij is dat overduidelijk verbonden. Voor een semantische zoekopdracht zijn het twee losse stukken tekst die misschien een paar woorden delen. Dus vraagt mijn agent mij om de status van werk dat twee weken geleden al klaar was.
Wat ik in mijn hoofd veranderde, nog niet in mijn stack
De oplossing van de auteur is om geheugen te behandelen als een model van de wereld, niet als een log: entiteiten als eersteklas objecten, feiten eraan gehangen met een bron, een betrouwbaarheid en een tijdstempel, en nieuwe informatie die het model bijwerkt in plaats van ernaast te stapelen. Vector-zoek wordt dan één weg binnen dat model — nuttig, niet het hele land.
Dat is een grotere verandering dan een database-instelling, en ik ga niet doen alsof ik die al heb doorgevoerd. Wat ik wél deed, is de regel opschrijven die ik miste — want de auteur geeft zelf toe dat dit het moeilijkste deel is: wanneer moet een update het oude feit overschrijven, en wanneer moeten beide blijven als een echte verandering in de tijd?
Mijn antwoord komt uit iets wat ik al heb en nooit als geheugenfunctie heb gezien: mijn notities staan onder versiebeheer. De geschiedenis bewaart de verandering — inclusief het stuk waarin ik in maart fout zat. Het geheugen zelf hoeft alleen de versie te houden die nú waar is. Git is mijn beide-spoor. De recall-bank is mijn nu-spoor. Ik hoef niet te kiezen, want ik houd toch al een dagboek bij van mijn eigen denken.
Wat meteen ook het meest gehoorde tegenargument in die draad oplost: “maar wat als feiten legitiem veranderd zijn?” Prima. Laat me de diff zien. Daar is versiegeschiedenis precies voor — en het is het enige deel van mijn stack dat ik volledig zelf in de hand heb.
Het ongemakkelijke deel
Ik heb maanden besteed aan het netjes laten landen van nieuwe dingen in mijn geheugen. Bijna niets van die inspanning ging naar wat er daarna gebeurt — wie wint als twee entries het oneens zijn, of de verliezer stil wordt, of een verouderd feit nog met vol vertrouwen opgehaald kan worden. Ik heb de ingang gefilterd en de uitgang open laten staan.
Dus: hoe ga jij om met een feit waar je van gedachten over veranderd bent? Verwijder je het oude, of houd je beide — en als je beide houdt, hoe weet jouw agent dan welke bij nu hoort?
Wat vond je van dit bericht?