<!-- Canonical URL: https://ask.atlascloud.ai/nl/set-hard-spending-limit-coding-agent-task -->

# Hoe stel je een harde bestedingslimiet in voor een taak van een codeeragent?

> Een harde bestedingslimiet moet vóór elke modelaanroep of betaalde toolactie worden afgedwongen door een gateway die het taakbudget beheert. Reserveer de maximale kosten, verreken het werkelijke gebruik, weiger acties die niet binnen het budget passen en beëindig met een bruikbaar checkpoint.

<!-- Canonical URL: https://ask.atlascloud.ai/set-hard-spending-limit-coding-agent-task -->

# Hoe stel je een harde bestedingslimiet in voor een taak van een codeeragent?

Een hard taakbudget is een probleem van admission control. Voor elke betaalde model- of toolaanroep moet een vertrouwde gateway bewijzen dat de maximaal toegestane kosten binnen het resterende budget passen. Waarschuwingen en rapporten achteraf zijn nuttig, maar stoppen geen overschrijding die al is gebeurd.

Het ontwerp moet invoertokens, maximale uitvoer, retries, fallbacks, subagents, embeddings, zoekopdrachten, sandboxes en elke andere betaalde tool omvatten.

## Scheid harde limieten van zachte doelen

Gebruik drie waarden:

| Controle | Doel | Gedrag |
|---|---|---|
| Doelbedrag | Verwachte kosten | Waarschuw of kies een goedkoper plan |
| Zachte limiet | Escalatiedrempel | Vraag goedkeuring of verlaag kwaliteit |
| Harde limiet | Maximaal geautoriseerde uitgaven | Weiger de volgende aanroep vóór de start |

Een taak kan bijvoorbeeld $0.60 als doel hebben, bij $0.90 om goedkeuring vragen en bij $1.00 stoppen. De harde limiet hoort server-side te staan, niet alleen in de prompt.

## Plaats elke betaalde actie achter één gateway

Geef de agent kortlevende taakcredentials die alleen jouw gateway mogen aanroepen. De gateway voegt `task_id` toe, zoekt het budget op, schat de volgende actie en reserveert geld of weigert.

Stel geen providersleutel beschikbaar waarmee de agent de boekhouding kan omzeilen. Pas dezelfde regel toe op zoeken, hosted sandboxes, code-uitvoering en betaalde retrieval.

## Reserveer vóór de aanroep en verreken daarna

Schat voor een modelaanroep de bovengrens uit bekende invoertokens plus de ingestelde maximale uitvoer. Reserveer atomair, voer de aanvraag uit en vervang de reservering door het werkelijke gebruik.

```text
remaining = hard_limit - committed_cost - open_reservations
worst_case = input_cost + max_output_cost + tool_allowance

if worst_case > remaining:
    reject("task_budget_exceeded")
else:
    reserve(worst_case)
    call_provider()
    reconcile(actual_cost)
```

Atomaire reservering voorkomt dat twee parallelle subagents hetzelfde resterende budget uitgeven.

## Prijs met een geversioneerde tariefkaart

Bewaar bij elke gebeurtenis welke prijs voor de schatting is gebruikt. Modelprijzen en factureringsregels veranderen, dus herbereken oud gebruik niet met het huidige tarief.

Wanneer de provider gezaghebbende kosten geeft, bewaar dan schatting en eindbedrag. Als alleen tokens beschikbaar zijn, bereken met de tariefkaart die vóór de call was gekozen. Voeg een conservatieve opslag toe voor onbekende toolkosten of weiger onbegrensde calls.

## Maak streaming veilig

Reserveer de volledige toegestane responskosten voordat de stream opent. Tel ontvangen gebruik waar mogelijk, maar neem niet aan dat het sluiten van de client direct de facturering stopt. Annulering is een optimalisatie, niet de handhavingsgrens.

Stel een uitvoerlimiet per call en een wall-clock-time-out in. De harde taaklimiet omvat alle streams, retries en fallbacks samen.

## Neem retries en subagents mee

Elke poging belast hetzelfde bovenliggende taakgrootboek. Een retrybeleid dat stil een nieuw budget opent, maakt de limiet waardeloos.

Gebruik hiërarchische budgetten bij delegatie:

| Grootboek | Limiet | Regel |
|---|---:|---|
| Bovenliggende taak | $1.00 | Absolute bovengrens |
| Implementatiesubagent | $0.55 | Kan resterend ouderbudget niet overschrijden |
| Testanalysesubagent | $0.25 | Geeft ongebruikte reservering terug |
| Eindcontrole | $0.20 | Draait alleen als geld resteert |

Childlimieten zijn toewijzingen, geen extra geld.

## Stop met een bruikbaar checkpoint

Als de volgende actie niet past, retourneer dan een getypeerde fout die de orchestrator begrijpt. De agent mag de geweigerde call niet blijven proberen.

Laat de agent zonder nieuwe kosten een checkpoint maken met:

* voltooide wijzigingen en testresultaten;
* resterend werk en de geblokkeerde actie;
* huidige repositorystatus;
* geschat aanvullend budget;
* een hervattoken of taak-ID.

Zo wordt een budgetstop een gecontroleerde overdracht in plaats van een beschadigde gedeeltelijke run.

## Gebruik providercontroles als backstop

Accountlimieten kunnen de impact beperken, maar zijn zelden precieze controles per taak. Ze aggregeren mogelijk meerdere repositories, werken vertraagd bij of missen toolkosten.

Houd bij een multi-model gateway zoals Atlas Cloud het gezaghebbende taakgrootboek in je orchestratielaag en registreer gateway-ID's voor afstemming. Zo blijft de harde grens behouden bij modelwissels.

## Test de limiet als financiële controle

Test parallelle calls, lange streams, provider-time-outs, ontbrekende gebruiksvelden, retries, modelfallbacks en ledgerstoringen. Weiger standaard als de budgetservice niet beschikbaar is. Controleer dat geboekte kosten plus open reserveringen nooit boven de harde limiet komen.

## Conclusie

Een echte harde bestedingslimiet wordt vóór de uitgave afgedwongen met atomaire reserveringen en één grootboek voor elke betaalde actie. Een systeem dat alleen achteraf waarschuwt, biedt monitoring, geen harde cap.

## FAQ

### Is max_tokens een harde limiet in dollars?

Nee. Het beperkt de lengte van één antwoord, niet de totale taakkosten, invoertokens, retries, modelwissels of betaalde tools. Een limiet in dollars vereist een budgetgrootboek voor elke betaalde actie.

### Waar moet het budget van een codeeragent worden afgedwongen?

Dwing het af in een server-side gateway of orchestratielaag waar alle model- en betaalde toolaanroepen doorheen moeten. Client-side tellers kunnen worden omzeild of onder gelijktijdigheid racecondities krijgen.

### Hoe budgetteer ik streamingantwoorden?

Reserveer de maximaal toegestane uitvoerkosten voordat de stream opent en verreken daarna het gerapporteerde gebruik. Annuleer bij de provider waar mogelijk, maar vertrouw niet alleen op annulering.

### Moeten retries hetzelfde taakbudget gebruiken?

Ja. Retries, fallbacks, subagents en evaluatieaanroepen moeten hetzelfde taakgrootboek belasten, tenzij de gebruiker uitdrukkelijk een apart budget goedkeurt.

### Wat gebeurt er als het resterende budget te klein is?

Weiger de volgende betaalde actie en laat de agent met de bestaande context een checkpoint maken met voltooid werk, openstaande punten en het benodigde aanvullende budget.

### Kunnen accountlimieten van de provider een limiet per taak vervangen?

Meestal niet. Accountlimieten gelden voor het hele account en kunnen vertraagd worden bijgewerkt. Een gateway per taak biedt directe isolatie; accountlimieten blijven een nuttige backstop.
