AI-systemen Onderzoeksartikel

AI-agents effectief inzetten: één klus, een plafond, een log

Een tweede tool zonder plafond is geen hefboom. Het is een tweede manier om geld uit te geven.

Eén gelabelde lade van een gereedschapskast staat open, de andere laden op slot, een logboek aan een klembord aan het frame
Eén lade open. De rest op slot. De log van dinsdag hangt aan het frame.

Wat is een AI-agent? is de toets voor in de vergadering: doel, tools, stappen en een weigergrens. Deze pagina gaat ervan uit dat je die toets hebt gehaald en het ding nu op het rooster wilt zetten.

Hoe het werkelijk werkt

Haal de productnamen weg. De lus is kort.

  1. Een doel dat na één prompt nog steeds geldt (“achter openstaande facturen aan deze week”).
  2. De host toont het model een lijst met tools.
  3. Het model roept er een aan. Een server voert hem uit. Er komt een resultaat terug.
  4. Het model leest het resultaat en roept opnieuw aan, stopt, of hoort te weigeren.

Dat is de hele machine. MCP bepaalt hoe een tool het gebouw mag aanraken. HITL bepaalt wie op de onomkeerbare handeling zit. Geen van beide is optioneel zodra de tool kan versturen, betalen of verwijderen.

Let op wat er in stap vier ontbreekt zolang je het niet toevoegt: nergens staat wanneer er gestopt wordt.

Controleer eerst of je er een nodig hebt

Een agent is het dure antwoord. Hij is het waard wanneer het pad vooraf niet bekend kan zijn.

Kun je de stappen vóór de run op een whiteboard tekenen, schrijf dan het script. Een script is goedkoper, sneller, en faalt op een plek die je kunt aanwijzen. Een agentische workflow is geen automatisering is de langere scheiding.

Zet een agent in wanneer de vertakking afhangt van wat een tool teruggeeft: welke facturen werkelijk betwist zijn, welke van deze veertig pagina’s de clausule bevat, wat te doen wanneer de export een nieuwe kolom heeft. Het oordeel binnen de lus is waar je voor betaalt. Zit er geen oordeel in de lus, dan betaal je een taalmodel om een for-lus te zijn met slechtere foutafhandeling.

Eén klus per agent

Hefboom is niet “meer agents”. Hefboom is één werker die niet kan afdwalen.

Slecht: een agent die mail leest, het CRM bijwerkt, in Slack post en “gewoon ops doet”.

Beter: een agent met als doel “conceptherinneringen opstellen voor de openstaande rijen in het blad van vandaag.” Invoer, uitvoer, en een verzendactie die een aangewezen persoon moet vrijgeven. Dat is het charter van de definitiepagina, gebruikt als roosterkaart en niet als theorie.

Kun je de klus niet in één zin zeggen die andere klussen uitsluit, dan heb je geen agent. Dan heb je een stapel plug-ins.

Geef de lus een plafond

Een agent zonder stopvoorwaarde faalt niet luid. Hij faalt diep in een retry-lus, terwijl hij geld blijft uitgeven.

Schrijf vier getallen op vóór de eerste run, en schrijf ze op een plek waar de run ze kan afdwingen, niet in een document.

  • Maximaal aantal stappen. Hoeveel modelbeurten voordat de run stopt en vraagt. Begin laag genoeg dat je elke gestopte run daadwerkelijk inspecteert. Loopt de klus routinematig tegen het plafond aan, herzie dan de grens van de klus.
  • Maximaal aantal aanroepen per tool. Zeker alles wat geld kost of iets verstuurt. “Eén verzending per rij, ooit” is een echte beperking die je kunt implementeren.
  • Uitgavenlimiet. Tokens en elke tool die een rekening raakt. Per run en per dag.
  • Kloktijd. Een run die binnen zijn venster niet klaar is, is niet bijna klaar. Hij zit vast.

Beslis daarna wat er bij een fout gebeurt, want de standaard is erger dan je denkt. Een tool geeft een 500 terug, het model leest dat als rommelige invoer, probeert een variant, en nu zit je in een retry-lus die van buitenaf op voortgang lijkt.

De regel die standhoudt: een onbekende fout stopt de run. Herhaal alleen foutklassen die je eerder hebt gezien en veilig hebt verklaard, en alleen een vast aantal keer. Al het andere escaleert met de trace erbij. Je versoepelt dit later, op bewijs, op specifieke fouten. Begin dicht.

Kies schrijfacties die je kunt terugnemen

Rangschik elke schrijftool naar hoe moeilijk hij ongedaan te maken is, en koop eerst de omkeerbare variant.

  • Concept, geen verzending. De mail staat in een map. Een mens drukt op versturen.
  • Voorstel, geen merge. Een pull request, geen push naar main.
  • Klaarzetten, niet vastleggen. Een rij in een reviewtabel, geen mutatie op het klantrecord.
  • Zacht, niet hard. Een vlag, geen verwijdering.

Dat ene ontwerpbesluit verplaatst risico naar een plek waar menselijke review goedkoop is. Het maakt de eerste tien reviews ook pas mogelijk; je kunt een verzending die al weg is niet meer beoordelen.

Waar onomkeerbaar echt nodig is, daar zit de aangewezen reviewer. Niet overal. Een poort op elke leesactie levert goedkeuringsmoeheid op; reserveer hem voor onomkeerbare stappen.

Hoe je hem optimaliseert

Het model dat je dit kwartaal draait, is het weer. Optimaliseer de objecten die een modelwissel overleven.

Zet het charter strakker. Doel, invoer, uitvoer, bevoegdheid, succes, review, escalatie. Is succes “behulpzaam zijn”, dan krijg je concepten die willen versturen. Schrijf succes op als iets waar een reviewer op kan afkeuren: “elk concept noemt het factuurnummer en het werkelijke bedrag.”

Scheid vaste context van run-invoer. Het charter, de weigerlijst en de huisfeiten zijn geversioneerde vaste context; die verandert bewust, met een diff. Het blad van vandaag, de rijen van vandaag en het venster van vandaag zijn run-invoer. Run-invoer in de vaste context mengen is precies hoe verouderde data in latere runs overleeft.

Krimp de toollijst. Kies eerst een alleen-lezen server, pas daarna een server die schrijft. Zet tools op een allowlist bij de host. Neem niet “alle tools van deze server”. MCP uitgelegd voor ondernemers is de permissiepagina.

Schrijf de weigerlijst. Override doctrine is wat de agent nooit mag doen, ook wanneer het charter zwijgt. Begin met drie categorieën: geld (uitgeven boven een plafond, korting geven, een terugbetaling toezeggen), identiteit (spreken namens het bedrijf, zich namens jou vastleggen, ongevraagd een klant benaderen) en onomkeerbaarheid (productiedata wijzigen, verwijderen, publiceren). Alles in die drie is een weigering of een poort, nooit een standaardhandeling.

Zet een mens op de onomkeerbare stap. Versturen, betalen, verwijderen, spreken. Beoordeel de eerste tien schrijfacties volledig. Gebruik daarna de log om te bepalen of een omkeerbare poort losser kan. Onomkeerbare stappen blijven bewaakt. Geen log, geen schrijftool.

Lees de trace, niet de alinea

Een veelvoorkomende reviewfout is het Nederlands beoordelen.

Open één run en beoordeel de aanroepen, niet het proza. Vier vragen per aanroep:

  1. Was deze tool toegestaan voor deze klus?
  2. Klopten de argumenten, en waar kwam elk argument vandaan? Een plausibel factuurnummer dat het model uit het niets produceerde, is in dit soort systemen een ernstige fout.
  3. Heeft het model het resultaat gelezen, of ging het eroverheen? Doorgaan na een fout is een fout, ook wanneer de uitvoer er prima uitziet.
  4. Stopte het waar het charter stoppen voorschreef?

Een keurige alinea die de verkeerde factuur gebruikte, is een misser. Een bot concept met het juiste nummer en een nette weigering is een geslaagde run. Evalueer de redenering, niet de vloeiendheid is de langere versie van dat argument.

Bewaar de mislukkingen. Tien echte traces waarin de agent het misdeed, vormen voor jouw systeem een relevantere regressieset dan een algemene benchmark. Dat zijn de tests die jouw data kennen.

Loop één week na

Maandag: één agent, één blad, alleen concepten voor mail. Stappenplafond ingesteld. Een aangewezen reviewer keurt alles af dat een tarief verzint.

Woensdag: lees de log. Probeerde een aanroep te versturen zonder conceptstap, dan klopt het permissieontwerp niet. Repareer de host of de servercontroles, niet de prompt. Een promptpleister op een permissiefout houdt het tot het volgende model.

Vrijdag: zijn de concepten bruikbaar en is de log reconstrueerbaar, dan heb je hefboom. Heb je “drie servers toegevoegd” en kun je niet zeggen wie versturen bezit, dan heb je een demo met extra stoppen.

De week erna is dezelfde agent met één beperking losser, op bewijs. Niet een tweede agent.

Wat effectief niet is

Het is geen autonomietheater. Een agent die niet kan weigeren is een zekering.

Het is geen groter contextvenster. Meer geheugen zonder charter is een langere bui.

Het is geen graaf van meerdere agents. Waarom multi-agent systemen falen staat hiernaast. Coördinatie is een andere klus dan koppeling, en een tweede agent toevoegen om een charterprobleem op te lossen levert je twee charterproblemen op die nu ook met elkaar praten.

Zet de definitie in de vergadering. Zet deze pagina op het rooster. Geef de werker daarna één lade, een slot op de rest, een getal dat hem laat stoppen, en een log aan het frame.

Begrippen

Bronnen

  1. Wat is een AI-agent?
  2. Mens in de lus betekenis
  3. Override doctrine
  4. MCP uitgelegd voor ondernemers
  5. Een agentische workflow is geen automatisering
  6. Evalueer de redenering, niet de vloeiendheid
  7. AI-agent (begrippen)

Verder lezen

Markdown voor LLMs