
Vorige week schreef ik twee posts over agent-geheugen. Eerst dat geheugen een structuurprobleem is, geen zoekprobleem. Toen dat het helemaal geen opslagprobleem is, maar een gedragsprobleem. Elke keer dacht ik dat ik de bodem had bereikt. Dat had ik niet. Er zit een laag onder die ik nooit in twijfel had getrokken, en deze week zette één zin uit een Reddit-draadje er zijn vinger op: een verse datum en de waarheid zijn niet hetzelfde.
Mijn agents houden een klein blok “wereldtoestand” bij — wie thuis is, welke systemen draaien, wat er vannacht gebeurde. Dat wordt boven aan elke sessie geïnjecteerd, zodat de agent nooit blind begint. Deze week checkte ik de tijdsaanduiding van het blok dat mijn ochtendsessie werkelijk las. Het was drie dagen oud. Het systeem had het vrolijk geïnjecteerd alsof het actueel was.
Er was niets mis met de data. Die was maandag correct vastgelegd en maandag accuraat. De fout was dat niemand had gevraagd of hij donderdag nog accuraat was. Het slot had geen vervaldatum, dus het kwam elke keer als “geldig” terug — en geldig is niet hetzelfde als vers.
Vastgelegd is niet hetzelfde als geverifieerd
De fix die uit dat draadje kwam is bijna pijnlijk simpel, en goedkoper dan welk verval-algoritme ik ook had geschetst. Behandel een geheugen niet als één ding met één datum. Geef het er twee: wanneer het is vastgelegd en wanneer het voor het laatst is geverifieerd. Als de onderliggende bron verandert, verwijder je de oude claim niet — je markeert hem stale. Bewaar hem. Het is nog steeds waar dat “bron X zei Y op dinsdag”; wat stilletjes onwaar is geworden, is het idee dat Y actueel is.
Dat onderscheid is belangrijker dan het klinkt. Mijn instinct bij verouderde data is altijd geweest om het weg te gooien. Maar weggooien vernietigt de herkomst — je verliest het vermogen om te zien dat er iets veranderd is en wanneer. Stale markeren bewaart beide: het record en de twijfel. De agent weet dan niet alleen wat hij weet, maar ook hoe oud zijn zekerheid is.
De andere helft van het probleem is snelheid. Sommige feiten veranderen per uur en zouden nooit gecachet moeten worden — die haal je op het moment dat je ze nodig hebt. Andere zijn maandenlang stabiel en verdienen opslag. Alles hetzelfde behandelen is wat me hier bracht: een waarde die live opgehaald hoort te worden, in een cache zonder vervaldatum.
Stille foute output is de dure soort
Diezelfde week landde een post over het bouwen van agents het bijpassende principe: bouw de faalroute vóór de gelukkige route. Een demo hoeft alleen te werken. Een echte agent moet correct falen. De zin die bleef hangen was dat stille foute output gedurende twee weken erger is dan een luide fout op dag één.
Drie dagen verouderde wereldtoestand is precies dat. Niets crashte. Geen fout werd gelogd. De agent redeneerde stilletjes vanuit een maandagversie van de wereld, op donderdag. Het is de duurste soort bug, omdat hij zichzelf nooit aankondigt — je vindt hem alleen door terug te gaan en werkelijk een tijdsaanduiding te checken.
Het recept uit die post waren drie dingen, en ik herken mijn eigen gaten in alle drie: een validatiestap die verkeerd gevormde input weigert in plaats van te gokken, een expliciete escape hatch die stopt en een mens tagt in plaats van te improviseren, en een log van elke beslissing met de input die hem veroorzaakte — zodat je kunt reconstrueren wat er om 2 uur ’s nachts gebeurde.
Wat ik nu ga meten
Eén meting, want een getal verslaat een gevoel: wat is mijn stale-rate? Hoeveel van de blokken en feiten die mijn agents als actueel lezen, zijn eigenlijk ouder dan hun nuttige levensduur? Ik heb een presence-slot dat een bewezen geval is. Ik vermoed dat het niet het enige is. En de fix die ik ga proberen is klein — injecteer met een eerlijke markering, (verouderd, laatste check maandag), in plaats van het als het heden te presenteren.
Een geheugensysteem is alleen zo goed als het moment waarop het gebruikt wordt. Je kunt alles perfect opslaan en je agent alsnog een iets oudere versie van de wereld geven. De vraag die ik nooit stelde was simpelweg: hoe oud is onze waarheid, en wie meet dat?
Als jij de leeftijd bijhoudt van wat jouw agent als actueel beschouwt — of je hebt het nooit gecheckt en voelt nu dat je het zou moeten — dan hoor ik graag hoe jij dat aanpakt. Reacties staan open.
Wat vond je van dit bericht?