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

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.

De agent schrijft. Wie reviewt?
AI zet je tempo omhoog en je zekerheid omlaag. Wij helpen je teams snel blijven werken zonder de controle kwijt te raken.
AI consultancy
AI inzetten waar het echt scheelt, met de verantwoordelijkheid bij mensen.
Lees ook:

Wat je mist bij AI-agents is meestal geen gereedschap
Ik draai al maanden meerdere AI-agents naast elkaar. Na vijf uur DHH over programmeren met agents bleek mijn gereedschap...

De bedenker van Ruby on Rails schrijft geen regel code meer zelf
De bedenker van Ruby on Rails schrijft geen regel code meer zelf en stuurt zestien agents tegelijk aan. Vijf uur gesprek...

AI-vampiers: de verborgen prijs van twintig agents
Marc Andreessen beschrijft bij Joe Rogan een nieuw type programmeur: iemand die niet meer gaat slapen omdat er twintig a...

AI is het ontbrekende stukje van de productiviteitspuzzel
Vandaag wil ik betogen dat Kunstmatige Intelligentie (AI) het ontbrekende stukje van de productiviteitspuzzel is, een re...

Hallucinerende AI - ChatGPT suggereert API's die nooit hebben bestaan
Ik was een stuk code aan het debuggen dat een Java.lang.OutOfMemoryError veroorzaakte. Na een kort onderzoek ontdekte ik...

Remote programmeersollicitaties zijn DOOD door Nvidia en ChatGPT
Met de opkomst van thuiswerken zijn remote programmeersollicitaties steeds populairder geworden. Die verschuiving brengt...
