Process automation
AI-agent of Temporal workflow: een methode in drie assen
Een ops-lead heeft dit kwartaal twaalf processen te automatiseren en twee bazen die het tegenovergestelde adviseren. Een scoringsmodel met drie assen wijst per proces de juiste bouwvorm aan.

Een ops-lead bij een Nederlandse groothandel zit op vrijdag met haar spreadsheet. Twaalf processen staan dit kwartaal in de wachtrij voor automatisering. Haar CTO zegt: "gebruik AI voor alles." De CFO zegt: "AI hallucineert, gebruik workflows." Allebei kloppen ze in abstracte zin. Geen van beiden helpt haar te beslissen wat ze maandag oplevert.
Het debat agent versus workflow is op dit moment een geloofsoorlog. Beide kanten kunnen wijzen op een echt productieverhaal uit dezelfde week. Eentje waarin een agent een team veertig uur bespaarde, en eentje waarin een agent een terugbetaling deed die niet had gemoeten. De boodschap voor onze ops-lead: haar vraag klopt al niet voordat ze hem stelt.
De verkeerde vraag
"Moet dit proces een agent of een workflow worden" is de verkeerde insteek. Een agent en een deterministische workflow-engine zoals Temporal zijn geen concurrenten. Ze hebben heel andere faalmodi en verdienen hun geld op heel ander soort werk.
De juiste vraag stel je per proces: hoe hard straft deze specifieke klus je af als je hem verkeerd doet, en hoe voorspelbaar is de definitie van "goed" op een willekeurige dag?
We hebben intern een scoringsmodel met drie assen dat we gebruiken voordat we ook maar één regel code aanraken. Het kost ongeveer vijftien minuten per proces. Het levert geen enkel antwoord op. Het levert een houding op, en een houding is genoeg om te beginnen.
Drie dimensies die het scoren waard zijn
Faalkosten
Wat kost één foute run je, in geld, reputatie of herstelwerk? Een verkeerd gerouteerd supportticket kost drie minuten voor de volgende mens in de wachtrij. Een foute btw-regel op een uitgaande factuur kost een week heen en weer mailen met de boekhouder en een iets koelere relatie met de klant. Een misslag bij een terugbetaling kost de terugbetaling.
Scoor 1 (triviaal) tot 5 (catastrofaal, in toezichthoudersvorm of met zes nullen).
Behoefte aan audit trail
Hoe vaak moet iemand exact reconstrueren wat er is gebeurd, stap voor stap, met tijdstempels? Een interne Slack-samenvatting: nooit. Bankafstemming, contractgoedkeuring, KYC, alles wat de accountant of een toezichthouder raakt: altijd.
Scoor 1 (niemand zal er ooit naar vragen) tot 5 (een accountant gaat het zeker vragen, en "het model besloot zo" is geen aanvaardbaar antwoord).
Duidelijkheid van edge cases
Zet de ops-lead in een kamer met een whiteboard. Zet een timer van tien minuten. Stel één vraag: "noem elke vreemde case die je je herinnert uit het laatste halfjaar." Kijk wat er gebeurt.
Noemt ze er zeven en stopt ze dan, dan kun je regels schrijven voor zeven cases. Stokt ze bij vijf en zegt ze "er zijn er meer, ik herinner me ze nu niet, ze staan in de inbox," dan heb je een onbekende verdeling en blijven je regels die eindeloos achternalopen.
Scoor 1 (onbegrensd, ops kan ze niet opsommen) tot 5 (volledige lijst, alle cases op het whiteboard).
Het scoringsmodel
Tel de drie scores op. Het totaal loopt van 3 tot 15. Hoge totalen duwen je richting deterministische workflow-code. Lage totalen duwen je richting een agent. De middenbalk vraagt om een hybride, waarbij een workflow de ruggengraat heeft en de agent voor specifieke stappen wordt aangeroepen.
def posture(failure_cost: int, audit_need: int, edge_clarity: int) -> str:
"""Return the build posture for an automation candidate.
Each input is a 1-5 score. Higher edge_clarity means ops can
enumerate every weird case; lower means they cannot.
"""
total = failure_cost + audit_need + edge_clarity
if total >= 12:
return "workflow" # Temporal, n8n, plain cron + Postgres
if total >= 8:
return "hybrid" # workflow spine, agent calls at named steps
return "agent" # agent owns the loop, deterministic guardrails
De drempels zijn geen magie. Het is waar onze laatste veertig projecten op uitkwamen. Pas ze met één of twee aan voor je eigen risicotolerantie. Het gaat om het gesprek dat het scoren afdwingt, niet om het getal dat eruit rolt.
Kan de ops-lead de edge cases niet in tien minuten opsommen, dan zullen regels ze nooit dekken. Lukt het haar wel, dan is een agent een dure manier om een stroomschema te coderen.
Drie processen, gescoord
Facturen najagen voor een SaaS-abonnementenbedrijf
Faalkosten 4: juridische tanden en boze klanten als je een betaald account een aanmaning stuurt. Auditbehoefte 5: de CFO en uiteindelijk de accountant willen een verdedigbaar spoor. Edge cases 2: verlengingen, deelteruggaven, valutawisselingen en "de bank heeft de SEPA een week vastgehouden" zijn op te sommen, maar de ops-lead blijft er meer noemen.
Totaal: 11. Hybride. De workflow beheert het schema, de state machine en de side effects, inclusief idempotency keys voor elke uitgaande betalingspoging. De agent schrijft de tekst van de volgende e-mail wanneer de state machine zegt "stuur reminder #3 in toon X."
Triage van de marketing-inbox
Faalkosten 2: iets traagter antwoord op een hete lead, terug te draaien. Auditbehoefte 1: niemand gaat dit ooit auditen. Edge cases 1: elke mail heeft een nieuwe vorm en de ops-lead lacht als je haar vraagt om ze op te sommen.
Totaal: 4. Agent. Hij leest, classificeert, schrijft een conceptantwoord en plaatst het in een wachtrij. Een deterministische check weert alles wat lijkt op een bijgevoegde factuur of een ondertekend contract voordat de agent het ziet.
Salarisverwerking
Faalkosten 5: verkeerd salaris, verpeste vrijdag, eventueel een kantonrechter. Auditbehoefte 5: dit is het audit-oppervlak uit het leerboek. Edge cases 5: salarisverwerking heeft een eindige, gedocumenteerde set gevallen en HR levert je de spreadsheet aan.
Totaal: 15. Workflow. Geen agent. We zetten geen creatief werk in de buurt van salarisverwerking. De kosten van een verkeerde agent-call schalen mee met de bevoegdheid die het systeem aan die agent geeft, en salarisverwerking geeft het maximum.
Bouwen vanaf de score
Een workflow-houding betekent dat je code schrijft. State machines, idempotency keys, retries met backoff, durable timers. Temporal is één optie. Een kleine Postgres-worker met expliciete stap-tabellen is een andere. De bepalende eigenschap: elke stap is herhaalbaar en elke beslissing is een functie van de input, niet van de stemming van het model.
Een hybride houding betekent dat de ruggengraat deterministisch is en het model een gereedschap waar die ruggengraat bij benoemde stappen naar grijpt. De agent heeft nooit de loop in handen. Hij schrijft tekst, classificeert een document, stelt een routekeuze voor. De workflow legt het voorstel vast, legt de eventuele correctie van een mens vast en gaat door. Het model kan veilig falen, omdat niets van wat het produceert wordt vastgelegd zonder deterministische poort.
Een agent-houding betekent dat het model de loop in handen heeft, maar je omhult nog steeds de side effects. De agent mag lezen, samenvatten, schrijven en beslissen. Hij mag geen geld versturen, geen contract versturen en niets in een productie-database wijzigen zonder een check die het model niet raadpleegt.
Scoor je een proces onder de 8 en raakt het geld, salarisverwerking of iets met regelgeving, dan kloppen je scores niet. Herzie faalkosten en auditbehoefte voordat je begint.
Toen wij de AI-agent voor factuur-najagen bouwden voor een Nederlands SaaS-bedrijf, scoorden we het proces in eerste instantie op 7 en stonden we klaar om puur op een agent uit te rollen. Twee weken later vroeg de financieel verantwoordelijke ons om te reconstrueren welke klant welke aanmaning kreeg en waarom. Daar hadden we niet voor gebouwd. We bouwden de ruggengraat opnieuw in Temporal en lieten de agent alleen nog de tekst schrijven. Zulke twee weken zijn precies de kosten die het scoringsmodel met drie assen wil afvangen voordat er code is geschreven.
Print de drie dimensies op een A4. Pak drie processen van je eigen backlog. Scoor ze voor maandag. Degene die het hardst in de agent-kolom landt, die bouw je eerst, want dat is degene die regels nooit zullen afmaken.
Kern
Kan ops de vreemde gevallen niet in tien minuten opsommen, dan dekken regels ze nooit. Lukt het wel, dan is een agent een dure manier om een stroomschema te coderen.
FAQ
Wanneer wint een agent overduidelijk van een workflow?
Als de inputverdeling onbegrensd is en een foute run terug te draaien valt. Inbox-triage, tekst schrijven en het classificeren van rommelige bijlagen vallen hieronder.
Mag een workflow een agent aanroepen?
Ja. Dat is de hybride houding. De workflow beheert state en side effects. De agent wordt voor specifieke stappen aangeroepen en zijn output passeert een deterministische poort voordat er iets wordt vastgelegd.
Waarom faalkosten en auditbehoefte apart scoren?
Omdat het niet dezelfde as is. Een proces met lage kosten kan nog steeds geauditeerd worden voor interne KPI's. Een dure eenmalige creatieve taak kan nul auditbehoefte hebben. Behandel je ze als één getal, dan verberg je de echte vorm van het werk.
Wat als de ops-lead binnen tien minuten niet onder de tien edge cases komt?
Dat is op zichzelf een nuttig antwoord. Scoor de duidelijkheid van edge cases op 1 of 2 en accepteer dat regels het werk niet gaan dekken. Plan een agent met een strakke begrenzing rond side effects in plaats van een stroomschema dat eindeloos blijft groeien.