Mijn AI agent werkt 's nachts voor me door. Hij mag alleen niks beslissen.

Crowds of fun-seekers exploring a city on foot, "

Arjan Franzen

15 september 2026

Leeg bureau in ochtendlicht met een koffiekop en een uitgeprint rapport met vinkjes en één kruisje; een kleine robot kijkt toe met de handen op de rug

Een maand geleden schreef ik over AI-vampiers: programmeurs die om twee uur 's nachts nog agents bijsturen omdat er altijd wel eentje op antwoord wacht. Ik was er zelf een. De conclusie van dat stuk was dat de winst niet zit in langer doorgaan.

Maar er bleef een vraag over. Er ís werk dat prima 's nachts kan. Wat doe je daarmee?

Het antwoord is een agent die draait terwijl ik slaap. Het interessante is niet dát hij draait. Het interessante is wat hij niet mag.

Wat er elke ochtend gebeurt

Om half acht, op werkdagen, start op mijn Mac een script. Het haalt alle open merge requests op uit GitLab, per stuk, mét de status van de pipeline. Dat schrijft het weg als een overzicht: wie wacht op wie, wat is groen, wat staat al te lang open.

Daarna leest een model dat overzicht en geeft per merge request een oordeel. Klaar om te mergen. Wacht op review van die-en-die. Staat al twaalf dagen open, iemand moet hier iets van vinden.

Ik lees het bij de koffie. Twee keuzes in dat ontwerp doen het meeste werk:

  • De feiten komen van code, niet van het model. Welke MR's open staan en of de pipeline groen is, kan een regel beslissen. Dus beslist een regel het. Het model krijgt alleen de vraag waar een oordeel voor nodig is.
  • De AI-laag is optioneel. Kan het model niet inloggen, dan staat het overzicht er nog steeds. Het omgekeerde ontwerp, waarin het model zelf alles ophaalt, had één verlopen sessie nodig om níets op te leveren.

De fout die niemand zag

Nu het eerlijke deel. Wekenlang stond er een merge request met een gefaalde pipeline onder het kopje "klaar om te mergen".

De oorzaak was klein: de GitLab-endpoint die de lijst met merge requests geeft, levert de pipeline-status niet mee. Alleen de losse endpoint per MR doet dat. Het script vroeg de lijst op, vond geen pipeline, en concludeerde: geen probleem.

Het script was niet stuk. Het was zelfverzekerd fout, elke ochtend opnieuw, in dezelfde nette opmaak als de dagen dat het klopte.

Een foute prompt zie je in seconden. Een foute loop zie je pas als je stopt met kijken. En dat is precies wat een loop uitlokt: hoe vaker hij klopt, hoe minder je kijkt.

Waarom het niet erger werd: de agent mocht niet mergen. De fout kostte een verkeerde regel in een rapport. Niet een verkeerde merge in productie.

Wie het maakt, keurt het niet goed

Dat is de regel waar dit hele ontwerp op rust, en hij is ouder dan AI. Bij een bank mag degene die een overboeking invoert niet degene zijn die hem fiatteert. Niet omdat die persoon onbetrouwbaar is, maar omdat je je eigen werk niet kúnt beoordelen: je leest je redenering terug in plaats van het resultaat. Iedereen die ooit een eigen tekst heeft nagelezen kent dat.

Een agent heeft daar precies dezelfde last van, alleen zonder de twijfel. Vraag hem zijn eigen werk te beoordelen en hij vindt het goed, met overtuiging, ook als jij ziet dat het middelmatig is.

Dus bij ons beslist óf iets zonder mening (een test, een build, een exit code) óf een mens. Nooit de agent die het maakte. Een X-artikel dat deze zomer rondging noemt dit "loop engineering"; de kern ervan is dat de poort belangrijker is dan de agent. Daar ben ik het mee eens, en het sluit aan bij wat we al eerder schreven over AI-ondersteunde code reviews en over het reviewen van AI-gegenereerde infrastructuurcode.

De publicatiestraat

De MR-samenvatting is niet de enige loop. Ook deze site deployt zichzelf: wat op main komt, staat een kwartier later online, Nederlands en Engels, zonder dat iemand op een knop drukt.

De enige rem is de draft-status in het CMS. Eén menselijke beslissing, op precies de plek waar het oordeel zit: is dit stuk klaar om gelezen te worden? Al het andere is automaat.

Loops zijn dus geen AI-ding. Zo werkten we al. Er zit nu alleen op één plek een model in.

Wat het kost

Het is niet gratis, en wel op drie manieren die geen alarm geven.

  • Je moet blijven lezen wat eruit komt. Zie de gefaalde pipeline hierboven. Het moment dat je het rapport alleen nog scant, is het moment dat het zijn waarde verliest.
  • Je kent je eigen code minder als een agent de diffs schrijft. Daarom lees ik ze wel, elke ochtend, uit de samenvatting. Dat is opzettelijk.
  • Het oordeel kost tokens terwijl je niet kijkt. Een agent die de hele nacht in een fout blijft hangen, levert een rekening op in plaats van een fix. Dus: een cap.

Daartegenover staat dat het verzamelwerk van elke ochtend weg is. Niet het oordelen. Dat is nog steeds van mij.

Voor wie dit leest als opdrachtgever

Ja, bij ons werken agents buiten kantooruren. Nee, ze leveren niet op. Alles wat in jouw software terechtkomt is langs een engineer geweest die het zelf had kunnen schrijven. Dat staat op onze AI-pagina en het is hier niet anders.

Wil je dit zelf inzetten, begin dan niet bij de tooling. Pak de taak die je elke ochtend uit gewoonte opent en stel één vraag: wat kan er nee zeggen tegen de uitkomst? Een test, een build, een collega? Is het antwoord niets, dan is het geen taak voor een loop. Dan is het een taak voor jou.

Kom je er niet uit, dan is dat precies waar onze AI-consultancy over gaat.

Vampier af

Het verschil tussen om twee uur 's nachts bijsturen en om half acht lezen is niet dat de agent meer mag. Hij mag minder. En wat er overblijft, het besluit, is van mij.

no image placeholder

De agent schrijft. Wie reviewt?

Hier helpen we mee

AI consultancy

AI inzetten waar het echt scheelt, met de verantwoordelijkheid bij mensen.

Bekijk AI consultancy