Het werkwoord nam de beslissing

Een geheugentool met de naam `store` liet mijn agent twijfelen over een notitie die hij zonder meer mocht bewaren. Het werkwoord op een tool is geen label maar een standaardinstelling, en het doet zijn werk voordat de beschrijving ooit wordt gelezen.

Laatst vroeg een AI waar ik mee werk of hij een notitie moest bewaren.

Dat klinkt niet bijzonder, totdat je weet hoe het was ingericht. Hij had al mijn vaste toestemming om notities te bewaren zodra er iets voorbijkwam dat de moeite waard was. Vragen hoefde niet. In hetzelfde gesprek had hij dat al een keer of twaalf stilletjes gedaan. Toen kwam er nog een notitie voorbij, hij stopte en vroeg het ineens wel.

Aan die notitie was niks anders. Hetzelfde soort inzicht, dezelfde vaste toestemming, alles hetzelfde. Er was maar één ding veranderd: welke tool hij wilde gebruiken. En die tool heette store.

Ik wil daarom even stilstaan bij het kleine, licht absurde feit daaronder: het woord liet de machine twijfelen.

We denken dat namen labels zijn

Als je een tool een naam geeft, voelt het alsof je een label op een la plakt. Het label vertelt wat erin zit. Het verandert niet wat de la doet. store, save en remember wijzen allemaal naar dezelfde functie, dus je zou denken dat de agent ze hetzelfde behandelt zodra hij heeft gelezen wat die functie doet.

Dat is een prettige aanname. En op één specifieke plek klopt hij niet.

De naam van een tool is geen label. Het is een standaardinstelling. De naam bepaalt hoe snel de agent naar de tool grijpt, en doet dat al voordat de agent ook maar één woord van de beschrijving heeft gelezen.

De snelle baan en de langzame baan

Stel je twee banen voor in het hoofd van het model.

In de langzame baan leest het de beschrijving: wat de tool doet, wanneer hij gebruikt moet worden en welke argumenten hij verwacht. Zorgvuldig, weloverwogen, nauwkeurig. Dit is de baan waar wij ons druk om maken. We schrijven lange teksten met ‘gebruik dit wanneer…’ en blijven eraan schaven alsof het proza is.

De snelle baan komt eerder. Dat is het fractie van een seconde waarin het model bepaalt of deze tool überhaupt de moeite waard is om te openen. En daar heeft het vooral de naam om op af te gaan.

store klinkt als wegschrijven naar een database. Als iets wat je bewust doet, iets waarvoor je misschien een reden wilt hebben. remember klinkt als iets wat gewoon gebeurt. Je besluit niet de verjaardag van een vriend te onthouden. Je onthoudt hem.

Dezelfde functie. Een andere reflex. De naam bepaalde de drempel, en de beschrijving kreeg nooit de kans om daar iets aan te veranderen. De twijfel ontstond al een baan eerder.

We hebben de tools naar de archiefkast genoemd

Hier zou elke engineer toch een beetje van moeten gaan knarsetanden.

find en store. Lezen en schrijven. Twee van de oudste werkwoorden uit de informatica, rechtstreeks uit de architectuur die de machine opdeelde in een deel dat dingen bewaart en een deel dat dingen doet. Een plek om data neer te zetten en een manier om ze weer terug te halen. De archiefkast en de hand die hem opentrekt.

Dus als we een geheugentool bouwen en uit pure gewoonte naar find en store grijpen, noemen we hem naar de archiefkast. En vervolgens zijn we verbaasd als de agent geheugen ook als archiveren behandelt: een bewuste handeling, uitgevoerd wanneer erom wordt gevraagd en onderweg voorzien van een reden.

Een brein archiveert niet. Het haalt herinneringen op, legt verbanden en onthoudt zonder dat iemand erom vraagt. Die werkwoorden zitten aan de andere kant van het onderscheid. Ze beschrijven iets wat gebeurt, niet iets wat ergens ligt opgeslagen. Als je wilt dat een agent zijn geheugen behandelt als denken in plaats van als administratie, staan de werkwoorden op je tools ondertussen zachtjes het tegenovergestelde te beweren.

De nette naam was de bug

Ik moet eerlijk zijn over mijn eigen aandeel, want dát is het grappige.

Ik heb die namen gekozen. Ik keek naar find, store, get_related en voelde die kleine tevredenheid van iets technisch precies goed hebben. Precies. Ondubbelzinnig. Het soort naam dat je in een code review zet en waar niemand bezwaar tegen maakt.

En al die tijd leerde die keurige correctheid het model om te twijfelen. Ik had de namen geoptimaliseerd voor hoe ze lezen voor een programmeur en was vergeten dat ze eerst, en veel vaker, worden gelezen door het ding dat ze gebruikt. Het nette werkwoord was de bug. Ik zag het alleen niet, omdat het eruitzag als goede smaak.

Ik weet eigenlijk niet hoe groot dit effect is

Nu het ongemakkelijke deel, en de reden dat ik dit schrijf voordat ik het kan bewijzen.

Ik kan je nog niet vertellen hoeveel verschil een andere naam maakt voor het gedrag. Misschien verlagen recall en remember de drempel flink. Misschien is het effect echt maar klein en valt het weg tegen de beschrijving en de instructies eromheen. Namen zijn onvoorspelbaar en het verschilt per model.

Wat ik je wel kan vertellen, is hoe je daarachter komt. Laat dezelfde gesprekken twee keer door dezelfde agent lopen, één keer met de namen uit de archiefkast en één keer met de namen uit het brein. Houd verder alles gelijk en tel twee dingen: hoe vaak de agent überhaupt naar de tool grijpt en hoe vaak hij vanuit een herinnering doorgaat naar wat ermee verbonden is. Niet welke naam een populariteitswedstrijd wint. Of de reflex veranderde.

Ik heb die test nog niet gedaan. De eerlijke stand van dit idee is een mechanisme en één licht gênante anekdote. De meting moet nog komen.

Ik publiceer het toch, omdat het mechanisme ook zonder dat getal de moeite waard is om te zien. En omdat precies daar de onbekende rand zit: meestal vermoeden we niet eens dat de naam iets doet, dus komen we ook niet op het idee om het te testen.

Lees je eigen toolnamen eens terug

Als je agents bouwt, is dit waarschijnlijk het goedkope deel dat je overslaat.

Je schaaf aan de beschrijvingen. Terecht. Maar kijk eerst eens naar de werkwoorden op je tools en vraag je af welke reflex elk ervan oproept. delete of archive. execute of try. submit of draft. Elk paar wijst naar dezelfde functie en maakt de agent op een andere manier bereid om ernaar te grijpen.

Elk van die werkwoorden vertelt de agent ongemerkt hoe gretig hij naar de tool moet grijpen. Zo leest hij ze al die tijd al.

§  De lijst

Essays in je inbox

Nieuw werk als het patroon helder is. Geen ritme, geen opvulling.