Expletus Logo
EXPLETUS
Blog
AI-agents3 min read

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:

LimietDoel
Maximumaantal stappenOneindige lussen voorkomen
Tijd- en tokenbudgetLatency en kosten begrenzen
Retries per toolHerhaalde fouten stoppen
Detectie van dubbele actiesVastgelopen plannen herkennen
Budget voor neveneffectenSchrijfacties, verzendingen of deployments beperken
Drempel voor bewijsOnzekere 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.