Wie stopt de lus? Limieten die werken tijdens de run
Een agent in een lus geeft geld uit tot iets hem stopt. Welke limieten werken terwijl de run loopt, en wat u bij elke tool controleert.

Een ontwikkelaar beschreef op een openbaar forum hoe een agent een weekend lang in een lus bleef hangen op een kapotte tool. De ontwikkelaar werd wakker en zag dat de agent een enorme hoeveelheid API-tokens had verbruikt. De agent had het hele weekend steeds weer dezelfde kapotte tool aangeroepen, en elke aanroep kostte geld.
Niemand had besloten dat geld uit te geven. Niets in de run besloot te stoppen.
Een agent is een model, instructies, tools en stappen (zie wat een AI-agent is). Een lus zit in de stappen. Dit artikel gaat over de limieten die op die stappen werken terwijl de run nog loopt.
Drie meldingen met dezelfde vorm
Een gebruiker van een workflowtool meldde op een openbaar forum dat een van de eigen AI-workflows bleef hangen in opnieuw proberen. Twee dagen lang verbruikte die workflow stilletjes credits, voordat de gebruiker het merkte. De rekening was één bedrag voor de hele maand, dus er was niet te zien welke workflow het had veroorzaakt.
Een andere gebruiker meldde een agentstap waarbij automatisch opnieuw proberen aan stond. Toen de agent zijn eigen stappenlimiet bereikte, faalde de stap niet. Hij begon de taak opnieuw vanaf het begin, zonder te weten welke tools hij al had aangeroepen, en de teller voor nieuwe pogingen begon ook weer opnieuw. In één run begon hij 11 keer opnieuw en deed hij 105 tool-aanroepen. Een tweede gebruiker kon het probleem nabootsen. Toen wij de melding lazen, had de leverancier het niet bevestigd.
Een derde ontwikkelaar schreef op een openbaar forum dat de meeste overschreden budgetten één oorzaak hadden: een lus die dezelfde kapotte tool-aanroep steeds opnieuw probeerde. De eigen oplossing: na drie mislukkingen van dezelfde tool-aanroep met dezelfde argumenten eindigt de run. Zo stopt de run lang voordat een uitgavenlimiet wordt bereikt.
In alle drie de gevallen ging het geld op aan één kleine stap, steeds herhaald, terwijl niets in de run telde.
Een uitgavenlimiet komt te laat voor een lus
Een uitgavenlimiet bij uw modelaanbieder is nuttig, maar hij telt meestal per dag of per maand, en een lus werkt per seconde. Als de limiet ingrijpt, is het geld al uitgegeven, en de limiet vertelt u niet welke run of welke stap het uitgaf.
De limieten die bij een lus helpen, zitten in de run zelf. Ze tellen wat de agent doet, stap voor stap, en ze stoppen hem waar hij is. Ze zitten in de harness, de laag rond het model die uw agents laat draaien, niet in het model. U kunt een model in zijn instructies vragen om na drie pogingen te stoppen. Alleen de harness kan de pogingen tellen. Wie de harness zelf controleert, leest u in wie controleert de agent-harness.
Wat een agent kost, en hoe u dat ziet, leest u in de kosten van AI-agents beheersen.
Wat u bij elke tool controleert, de onze inbegrepen
Stel deze vragen over de versie die u zou installeren. Vraag om elke limiet te zien op een echte agent, en vraag wie hem instelt. Ons eigen antwoord staat bij elke vraag.
Kan ik iteraties, tool-aanroepen en mislukkingen op rij beperken? EpicStaff: ja. Een bouwer stelt per agent het maximale aantal iteraties, tool-aanroepen en opeenvolgende mislukkingen in; de agent stopt zodra hij er een bereikt.
Is er een limiet voor de flow als geheel, zodat een lus tussen stappen eindigt? EpicStaff: deels. Een bouwer stelt geen aantal lussen in voor een flow, maar een vaste stappenlimiet stopt eindeloze lussen.
Kan ik beperken hoe lang één agent aan zijn taak werkt? EpicStaff: ja. Elke agent heeft een instelling "Maximum Execution Time", in het scherm en in de API.
Kan ik beperken hoe lang één tool-aanroep duurt? EpicStaff: ja, met de instelling "Tool Timeout", in het scherm en in de API. Als die ingrijpt, mislukt die tool-aanroep en krijgt de agent dat te horen; de agent zelf gaat door.
Kan ik beperken hoe lang een run leeft? EpicStaff: ja. Elke flow heeft een levensduur voor runs, die u alleen via de API instelt, niet in het scherm. EpicStaff stopt een run die over zijn tijdslimiet gaat en markeert hem als verlopen.
Kan ik een run een tokenbudget geven? EpicStaff: ja. Een run kan een tokenbudget meekrijgen, per run ingesteld via de API, of voor de hele installatie door de beheerder van de installatie. Zonder instelling staat het uit. De telling gebeurt na elke stap, dus de run stopt na de stap die het budget opmaakt. De run krijgt dan de status "stop", en de reden wordt opgeslagen.
Kan iemand één run nu stoppen? EpicStaff: ja. EpicStaff noemt een run een sessie. De stopknop in de sessielijst, op de pagina met alle sessies en in het scherm van de lopende flow stopt hem, en de API kan hetzelfde. De run krijgt de status "stop", en de eindtijd wordt vastgelegd.
Kan ik zien wat elke stap verbruikte? EpicStaff: ja. EpicStaff legt vast hoeveel tokens elke stap gebruikte, en het totaal voor de run.
Kan een agent werk doorgeven aan een andere agent, buiten de flow die ik tekende? EpicStaff: nee. Een EpicStaff-agent kan niet uit zichzelf werk doorgeven aan een andere agent; werk gaat alleen van de ene agent naar de volgende langs de stappen die de bouwer in de flow tekent.
Als een limiet ingrijpt, kijk in het verslag
Een limiet die een run stopt, doet de helft van het werk. De andere helft is weten dat hij stopte, en waarom.
Als een run zijn token- of tijdslimiet bereikt, stopt EpicStaff hem; de reden wordt opgeslagen, maar het scherm zegt niet altijd dat er een limiet is bereikt. Als een agent stopt bij een limiet, laat het runverslag zien welke limiet het was en waarom. Kijk dus in het opgeslagen runverslag, niet alleen naar de status op het scherm. Over runs die eindigen zonder te zeggen wat er misging, leest u in stille fouten in AI-agents.
Een testlus op een rustige dag
U hebt geen incident nodig om te leren hoe uw limieten zich gedragen. U kunt er bewust een maken.
Kies de agent die draait als niemand kijkt: 's nachts, in het weekend, volgens een schema. Schrijf elke limiet op die hij heeft, en wie elke limiet instelde. Kopieer dan de agent, geef de kopie een tool die altijd faalt, en laat hem draaien. Noteer welke limiet hem stopt, hoe lang dat duurt, hoeveel tokens hij gebruikte en waar de reden te zien is. Stopt niets hem binnen de tijd die u zou accepteren, dan weet u welk veld u als eerste invult.
Wijs daarna de persoon aan die op stop drukt, en spreek af hoe die persoon hoort dat een run dat nodig heeft.
Begin deze week, met de agent die 's nachts draait.
Vragen & Antwoorden
Hoe voorkom ik dat een AI-agent in een lus blijft hangen?
Geef de agent limieten die een programma telt, niet een verzoek in zijn instructies. Nuttige limieten zijn een maximum aantal tool-aanroepen, een maximum aantal mislukkingen op rij, en een tijds- of tokenlimiet voor de hele run. Laat de eerste limiet die ingrijpt een kleine zijn, zodat een lus eindigt na minuten, niet na dagen.
Waarom stopt een uitgavenlimiet een lus van een agent niet?
Een uitgavenlimiet bij een modelaanbieder geldt meestal voor een heel account, per dag of per maand. Een lus kan veel geld uitgeven ruim binnen die limiet, en de limiet ziet geen verschil tussen één vastgelopen run en een drukke dag met gewoon werk. Een limiet op de run zelf ziet dat verschil wel, omdat hij alleen telt wat die run doet.
Wat test ik voordat een agent zonder toezicht draait?
Test wat er gebeurt als het misgaat, niet alleen als het goed gaat. Geef een kopie van de agent een tool die altijd faalt, een tool die traag antwoordt, en een taak die hij niet kan afmaken. Kijk bij elke test welke limiet de run stopt, hoeveel hij verbruikte, en of het opgeslagen verslag zegt waarom. Kijk ook of de persoon die op stop moet drukken het te horen krijgt.
Wat stopt in EpicStaff een run die te lang doorgaat of te veel tokens gebruikt?
Elke flow heeft een levensduur voor runs, die u alleen via de API instelt. EpicStaff stopt een run die over zijn tijdslimiet gaat en markeert hem als verlopen. Een run kan ook een tokenbudget meekrijgen, per run ingesteld via de API, of voor de hele installatie door de beheerder van de installatie; zonder instelling staat het uit. De telling gebeurt na elke stap, dus de run stopt na de stap die het budget opmaakt, met de status "stop" en de reden opgeslagen. Iemand kan een run ook stoppen met de stopknop, en de API kan hetzelfde.
