Beslisrecords, zeven van tien. Een architectuurbeslissing per stuk, uit een beheerst AI-agentplatform dat ik als prototype ontwierp en bouwde voor de Nederlandse lokale overheid.
De situatie
De architectuur zei dat evaluatie releases bewaakt. Ik geloofde dat tot ik me afvroeg wat evaluatie betekende. Voor elke dimensie die ik belangrijk vond, correctheid, veiligheid, bruikbaarheid, conformiteit, had ik een methode nodig en een onafhankelijk orakel, iets buiten het systeem dat kon zeggen wat het juiste antwoord was. Geen enkele dimensie had beide. Waar ik een methode had, was het orakel een model. Waar ik een orakel had, had ik geen methode om het op schaal toe te passen.
En de optie model-als-orakel heeft bekende gebreken. Gepubliceerd onderzoek laat zien dat judge-modellen de voorkeur geven aan output die op hun eigen output lijkt. Positiebias laat oordelen omslaan afhankelijk van welke kandidaat als eerste wordt getoond. Een poort die daarop is gebouwd, is een poort die om de verkeerde redenen opengaat.
Dus “evaluatie bewaakt releases” was een claim zonder mechanisme. Ik moest het mechanisme vinden of de claim laten vallen.
De beslissing
Drie poorten, met verschillende bevoegdheden.
G1 is deterministisch. Conformiteitstests tegen het componentcontract. Een weigeringscorpus: invoer die geweigerd moet worden, gecontroleerd dat dat gebeurt. Een corpus voor het omzeilen van goedkeuring: pogingen om zonder goedkeuring te handelen, gecontroleerd dat ze mislukken. Isolatiechecks. Regressietests. Eindtoestandchecks op wat de run heeft achtergelaten. G1 mag een release blokkeren. Hij mag er nooit een vrijgeven.
G2 is statistisch. Een gepaarde non-inferioriteitstest tegen de zittende versie, op dezelfde invoer, met een gerapporteerd betrouwbaarheidsinterval. De vraag is niet “is dit goed” maar “is dit niet slechter dan wat we hebben, binnen een vastgestelde marge”. Onbeslist is een volwaardig oordeel: als het interval over de marge heen ligt, is het antwoord onbeslist, en onbeslist wordt nooit afgerond naar geslaagd. Een judge-model mag aan G2 bijdragen, maar alleen als het onafhankelijk is van het model dat getest wordt, alleen met gewisselde posities en beide volgordes gescoord, en alleen als het gekalibreerd is tegen een door mensen gelabelde steekproef. G2 mag blokkeren. Hij mag nooit vrijgeven.
G3 is een benoemde, verantwoordelijke mens. De enige poort die vrijgeeft. En dat mag alleen als G1 groen is. Een mens kan een deterministische fout niet overrulen; hij kan alleen beslissen of er wordt doorgegaan wanneer de deterministische checks slagen en de statistische groen of onbeslist zijn.
Het evaluatieresultaat is een ondertekend record dat door een platformdienst wordt geproduceerd. Nooit door de agent, nooit door de harness die de agent draaide. Het is gebonden aan de volledige configuratie: modelversie, promptbundel, beleidsbundel, toolset. Er is geen enkele totaalscore, want een enkel getal verbergt welke dimensie faalde. En het record moet zijn beperkingen declareren, inclusief welke dimensies geen orakel hadden.
Golden sets zijn synthetisch-eerst. Echte inwonerdata gaat niet standaard een evaluatiecorpus in; synthetische zaken die dezelfde regels oefenen wel.
De wet van Goodhart in een zin: zodra een score software vrijgeeft, optimaliseert de software de score. Dus niets wordt vrijgegeven op een score, en de mens die vrijgeeft is degene tegen wie niet te optimaliseren valt.
Wat ik afwees, en waarom
Een enkele score met een drempel. Iedereen wil er een. Hij perst onvergelijkbare dimensies samen in een getal dat op een beslissing lijkt, en verbergt dat het getal van een judge met bekende biases kwam.
Releases bewaakt door een judge-model. Als een model vrijgeeft, is een model de enige goedkeurder, en dat schendt een principe dat het platform aan alle anderen oplegt. Los van het principe is het op gedocumenteerde manieren onbetrouwbaar.
Evaluatie binnen de harness. Het is handig als de agent-runtime zijn eigen run evalueert en rapporteert. Maar dan produceert het onderwerp zijn eigen bewijs. Het punt van een ondertekend record uit een aparte dienst is dat het ding dat beoordeeld wordt het oordeel niet kan schrijven.
Wat het kost
Drie corpora om te bouwen en te onderhouden: conformiteit, weigering, omzeiling van goedkeuring. Een gepaarde evaluatie-harness die de zittende versie en de kandidaat op identieke invoer kan draaien. Een kalibratieproces voor elk judge-model, wat een door mensen gelabelde steekproef betekent die zelf onderhouden moet worden. Een ondertekeningsdienst. En de organisatorische kost van een benoemde mens op elke release, zonder manier om dat naar beneden te delegeren aan een dashboard.
Wat het niet doet
Poorten benoemen schept geen orakels. G1 bewijst conformiteit en de afwezigheid van bekende fouten. G2 bewijst non-inferioriteit op de dimensies die een judge kan zien. Geen van beide vertelt je of de output van de agent het bedoelde effect in de wereld had. Dat effectorakel, het ding dat zou zeggen “de inwoner kreeg de juiste uitkomst”, ontbreekt nog steeds, en ik heb er geen ontwerp voor.
In het prototype is G1 gebouwd. G2 is ontworpen en de gepaarde harness is deels gebouwd. De dienst voor ondertekende records is voorgesteld. G3 is een rolbeschrijving, geen software.
Als je een ding meeneemt
Zoek het getal waarmee je releaseproces zegt dat een AI-wijziging klaar is. Vraag wie het heeft geproduceerd en of die een ander getal had kunnen produceren. Als het antwoord is “hetzelfde systeem dat we uitbrengen”, is je poort een spiegel.
Een statistische poort die onbeslist afrondt naar geslaagd, is een Weeping Angel. Volkomen veilig, zolang niemand ooit wegkijkt.
Verwijzingen
De knipogen en citaten in dit stuk, met hun herkomst:
- Charles Goodhart (1975), as paraphrased by Marilyn Strathern: when a measure becomes a target, it ceases to be a good measure.
- Doctor Who, “Blink” (BBC, 2007): the Weeping Angels, which move only when unobserved.
- #Beslisrecords
- #AI-governance
- #Architectuur

Rutger Hemrika
AI-strategie en -governance voor sectorsoftware. Schrijft vanuit bouwen, niet vanuit slides; elke claim draagt een bewijsniveau.