AI-agents hebben state machines nodig, niet alleen betere prompts
Waarom betrouwbare agents expliciete status, begrensde loops, getypeerde tools, goedkeuringen en herstelgedrag rond het taalmodel nodig hebben.
Een agent wordt vaak getekend als een lus: denk, gebruik een tool, observeer en herhaal.
Dat beeld vat het basisidee samen, maar laat de engineering weg die nodig is om te voorkomen dat de lus afdwaalt, acties herhaalt, onbeperkt middelen verbruikt of het verkeerde systeem wijzigt.
Een betrouwbare agent is niet gewoon een model met tools. Het is een toepassing met status waarin het model specifieke beslissingen mag nemen.
Scheid redenering van controle
Het model kan de volgende actie voorstellen. De toepassing hoort te bepalen of die actie geldig is.
Een agent die aan code werkt, kan bijvoorbeeld door expliciete toestanden gaan:
ontvangen -> inspecteren -> plannen -> aanpassen -> testen -> klaar
\-> goedkeuring_nodig
\-> geblokkeerd
Elke toestand beperkt de beschikbare overgangen en tools. Een testfase mag tests uitvoeren, maar niet stilzwijgend een release publiceren. Een read-only inspectiefase hoort geen bestanden te wijzigen.
Zo hoeft het model minder beslissingen te improviseren.
Status hoort buiten het gesprek te leven
Wanneer voortgang alleen als tekst in een chat bestaat, is herstel moeilijk. De agent heeft machineleesbare status nodig:
- Doel en succesvoorwaarden.
- Huidige fase.
- Voltooide en open stappen.
- Aangemaakte of gewijzigde artefacten.
- Toolcalls en resultaten.
- Verbruikt budget.
- Toegekende goedkeuringen.
- Fouten en aantallen retries.
Met deze status kan een onderbroken uitvoering hervatten zonder dat het model de werkelijkheid uit een lang gesprek moet reconstrueren.
Tools zijn capabilities, geen menu-items
Een tooldefinitie is een beveiligingsgrens. Ze hoort de kleinste nuttige mogelijkheid met getypeerde input en output aan te bieden.
update_customer_address(customer_id, address) is veiliger en makkelijker te valideren dan run_sql(query). deploy_preview(commit) is beter te beheren dan onbeperkte shelltoegang.
Voor uitvoering kan de toepassing schema, rechten, omgeving, rate limits en vereiste menselijke goedkeuring controleren. Daarna kan ze een onveranderbaar resultaat registreren.
Elke lus heeft grenzen nodig
Open autonomie klinkt krachtig totdat een agent dertig keer dezelfde falende actie herhaalt.
Bruikbare limieten zijn:
| Limiet | Doel |
|---|---|
| Maximumaantal stappen | Oneindige lussen voorkomen |
| Tijd- en tokenbudget | Latency en kosten begrenzen |
| Retries per tool | Herhaalde fouten stoppen |
| Detectie van dubbele acties | Vastgelopen plannen herkennen |
| Budget voor neveneffecten | Schrijfacties, verzendingen of deployments beperken |
| Drempel voor bewijs | Onzekere beslissingen escaleren |
Stoppen is onderdeel van intelligentie. Een betrouwbare agent herkent wanneer rechten, bewijs of een geldige overgang ontbreken.
Idempotentie maakt herstel mogelijk
Een netwerk kan falen nadat een aanvraag slaagde maar voordat het antwoord aankomt. Bij een blinde retry kan de agent dezelfde e-mail tweemaal verzenden of dubbele records aanmaken.
Tools met neveneffecten horen idempotency keys te accepteren of eerdere uitvoering controleerbaar te maken. Workflows registreren intentie vóór de actie en resultaat erna. Er zijn compensatiepaden nodig wanneer een operatie niet eenvoudig kan worden teruggedraaid.
Dit zijn gewone problemen uit gedistribueerde systemen. Agents laten ze niet verdwijnen.
Menselijke goedkeuring moet precies zijn
“Vraag toestemming voor alles wat belangrijk is” zorgt voor voortdurende onderbreking. “Laat de agent het regelen” creëert ongecontroleerd risico.
Koppel goedkeuring aan concrete overgangen: een extern bericht verzenden, boven een bedrag uitgeven, data verwijderen, naar productie deployen of informatie buiten een vertrouwensgrens delen. Het goedkeuringsscherm toont de geplande actie, parameters, het bewijs en het verwachte effect.
Onze mening
De volgende vooruitgang in agents komt niet alleen van modellen die langer redeneren. Ze komt van runtimes die status, rechten, overgangen en fouten zichtbaar maken.
Het model levert flexibel oordeel. De omliggende state machine levert discipline. Ernstige agents hebben beide nodig.