Kosten en tokens
In deze les ga je
- Benoemen waar de tokens in een agentverzoek naartoe gaan
- Kosten per taak meten en de zwaarste stap vinden
- Kostenhefbomen trekken in een volgorde die kwaliteit beschermt
- Kosten per taak onderdeel maken van de releasepoort
Kosten per taak is een releasemaat
Teams ontmoeten agentkosten meestal als verrassing op een factuur. Wij behandelen ze als een getal waarvoor je ontwerpt, dat je per taak meet en vóór elke release controleert. Het getal dat voor de business telt, zijn de kosten per taak: wat het kost om één werkeenheid af te ronden, zoals één afgehandeld verzoek of één verwerkt document.
In deze les zoeken we waar de tokens naartoe gaan, meten we ze en trekken we de hefbomen in een volgorde die de kwaliteit beschermt. Tarieflijsten van aanbieders bespreken we niet. Ze veranderen en jouw overeenkomst kan afwijken. Gebruik de cijfers uit je eigen contract.
Waar de tokens naartoe gaan
Eén agentverzoek draagt veel meer dan de vraag. Elk onderdeel heeft een eigen drijfveer.
| Onderdeel van het verzoek | Wat het bepaalt |
|---|---|
| Systeemprompt en instructies | Lengte van de regels, bij elke aanroep herhaald |
| Opgehaalde context | Aantal en lengte van de passages |
| Gespreksgeschiedenis | Aantal herhaalde beurten en of ze samengevat zijn |
| Tooldefinities | Aantal tools en lengte van elke beschrijving |
| Tooluitvoer | Hoeveel een tool teruggeeft boven wat de volgende stap nodig heeft |
| Redeneertokens | De inspanningsinstelling van het model en de moeilijkheid van de stap |
| Het antwoord | Het gevraagde formaat en de vereiste inhoud |
| Herpogingen en lussen | Mislukte aanroepen en stappen die terugkeren |
Een agent roept het model per taak vaak aan en elke aanroep speelt de geschiedenis en de tooldefinities opnieuw af. Daarom kan een "goedkoop" model met een opgeblazen lus meer kosten dan een "duur" model met een strakke lus. De lus en de context bepalen de rekening minstens zo sterk als het model.
Ons artikel over wat kosten en latency van inference op Azure Databricks bepaalt legt de serveropties dieper uit: batch, pay-per-token, provisioned throughput en zelf gehost.
Stap 1: meet per taak, per stap
Je kunt niet verlagen wat je niet gemeten hebt. Leg voor elke taak vast:
- Tokens in en uit per modelaanroep, en per stap in de lus.
- Latency per stap en per taak.
- Het aantal rondes in de lus en het aantal herpogingen.
- Een kwaliteitsscore uit de evaluatieset, naast de kosten.
MLflow Tracing legt elke stap van een agentrun vast met invoer, uitvoer, latency en tokengebruik, dus de data bestaat zodra tracing aanstaat. Unity Gateway kan verzoeken en antwoorden naar Delta-tabellen loggen en gebruik bijhouden, inclusief tokengebruik en latency, in systeemtabellen, met kostenanalyse per service, model, principal en tag.
# Kosten per taak uit tokentellingen. Tarieven komen uit JOUW overeenkomst, per miljoen tokens.
RATE_IN_PER_M = 1.0 # plaatshouder: vervang door jouw contracttarief voor invoertokens
RATE_OUT_PER_M = 4.0 # plaatshouder: vervang door jouw contracttarief voor uitvoertokens
def call_cost(tokens_in: int, tokens_out: int) -> float:
return tokens_in / 1_000_000 * RATE_IN_PER_M + tokens_out / 1_000_000 * RATE_OUT_PER_M
def task_cost(calls: list[dict]) -> float:
"""calls: één dict per modelaanroep in de taak, met tokens_in en tokens_out."""
return sum(call_cost(c["tokens_in"], c["tokens_out"]) for c in calls)
def heaviest_step(calls: list[dict]) -> dict:
return max(calls, key=lambda c: call_cost(c["tokens_in"], c["tokens_out"]))De tarieven zijn bewust plaatshouders. Houd geldbedragen in configuratie en houd de tokentellingen als primaire maat, want tokens veranderen niet als een aanbieder zijn tarieven wijzigt.
Stap 2: trek de hefbomen, in deze volgorde
Kies hefbomen op basis van wat de metingen laten zien. Test elke hefboom op je evaluatieset voor hij live gaat.
| Hefboom | Wat hij doet | Bewijs dat kwaliteit standhoudt |
|---|---|---|
| Limieten op lussen en herpogingen | Begrenst stappen en herhaalde aanroepen per taak | Tracing laat zien dat de grens zelden geraakt wordt |
| Compacte tooluitvoer | Tools geven alleen de velden terug die de agent gebruikt | Slagingspercentage blijft gelijk |
| Context inkorten en geschiedenis samenvatten | Houd alleen wat de volgende stap nodig heeft | Kwaliteit voor en na gemeten |
| Prompt caching | Zet het stabiele begin vooraan: instructies, tools, context | Antwoorden blijven identiek, alleen de kosten veranderen |
| Retrieval afstellen | Minder, betere passages | Antwoordkwaliteit en bronnauwkeurigheid |
| Gestructureerde uitvoer en vroeg stoppen | Korte vaste formaten, stoppen als het klaar is | Formaatgeldigheid en slagingspercentage |
| Redeneerinspanning regelen | Minder nadenken bij makkelijke stappen | Kwaliteit per instelling vergeleken |
| Modelrouting | Makkelijke stappen naar een klein model, moeilijke naar een groter | De regel komt uit evaluatie |
| Modelkeuze en wisselen | Het model dat bij elke taak past | Dezelfde evaluatieset per kandidaat |
| Finetunen of zelf hosten | Een klein model voor één smalle taak, of eigen infrastructuur | Moet de evaluatieset halen voor het verkeer krijgt |
De eerste rijen zijn het goedkoopst te trekken en dragen het minste kwaliteitsrisico. Bij routing hoort een waarschuwing: het is een kwaliteitsbeheersingsprobleem en geen kostenschakelaar. Een router die moeilijke cases naar een zwak model stuurt, bespaart tokens en verliest antwoorden. Ons artikel over modelrouting als kwaliteitsbeheersing gaat dieper.
Stap 3: guardrails op uitgaven
Zet limieten waar een agent zich er niet langs kan praten.
- Limieten per taak in de harness: stappen, tijd en tokens, zoals in les 1.
- Limieten per team en per gebruiker bij de gateway. Unity Gateway ondersteunt rate limits op model- en MCP-services en budgetten met drempels per gebruiker en harde plafonds.
- Alerts op uitgaven per use case, zodat een agent die gaat lussen dezelfde dag opvalt.
Stap 4: maak kosten per taak een releasepoort
Voeg een regel toe aan de pipeline uit les 4: een nieuwe versie mag alleen live als de kwaliteit op de evaluatieset standhoudt en de kosten per taak binnen het afgesproken budget blijven. Een promptwijziging die de kwaliteit een punt verbetert en de tokens verdubbelt, moet een bewuste keuze zijn en geen ongeluk dat aan het eind van de maand opvalt.
Leg het resultaat per release vast, naast de kwaliteitsscore. Na een paar releases zie je welke wijzigingen liepen.
Veelgemaakte fouten
- Eerst het model optimaliseren. Repareer eerst de lus en de context.
- Alleen gemiddelden. Kijk naar de dure staart: de taken die lussen.
- Kwaliteit inruilen voor kosten zonder te meten. Elke hefboom heeft de evaluatieset nodig.
- Tarieven hard coderen. Houd ze in configuratie.
Samenvatting
Meet tokens per stap en kosten per taak. Trek eerst de goedkope hefbomen met weinig kwaliteitsrisico. Dwing limieten af bij de harness en de gateway. Bewaak releases op kwaliteit en kosten samen.
Volgende les: hoe je je eigen model meebrengt en modellen wisselt zonder herbouw.
Het idee in één schema
Kosten per taak als releasepoort
- Tokens tracenPer stap
- Kosten per taak
- Een hefboom trekkenEerst goedkoop en laag risico
- Evaluatieset draaien
- Poort: kwaliteit en kosten
Kenniscontrole
Beantwoord elke vraag. Je ziet meteen de reden achter elk antwoord.
0 van 3 beantwoord
Praktisch lab
Doel. Bereken kosten per taak uit tokenlogs, vind de zwaarste stap en test twee hefbomen.
Waar je het draait
Lokale Python Draai dit lab op je eigen computer met Python 3.10 of nieuwer in een virtuele omgeving.
Stappen
- Maak tasks.json met 10 taken. Elke taak heeft 3 tot 8 modelaanroepen met tokens_in en tokens_out. Laat twee taken lussen met 12 aanroepen.
- Plak task_cost en heaviest_step uit de les. Zet de twee tarieven in een configuratiedictionary.
- Print kosten per taak, het gemiddelde en het 90e percentiel. Noteer welke taken de dure staart vormen.
- Pas hefboom 1 toe: begrens aanroepen op 8 per taak. Pas hefboom 2 toe: halveer de tooluitvoertokens. Bereken opnieuw en vergelijk.
- Schrijf een poort die faalt als de kosten per taak meer dan 10 procent stijgen ten opzichte van de baseline.
Verwacht resultaat
Een voor-en-nadatabel, de dure staart geïdentificeerd en een poort die de geoptimaliseerde versie laat slagen en een versie met herstelde lus laat falen.
Verdiepen
Officiële documentatie en aanbevolen cursussen van de aanbieders.
- DeepLearning.AI
- Kosten niet vermeld
- Gemiddeld
- 18 u 56 min
Context Engineering
Een langere cursus over het ontwerpen van wat een agent ziet, passend bij het Databricks Context Engineer-examen.
Open cursus : Context Engineering. Opent de site van de aanbieder in een nieuw tabblad
- docs.databricks.com
Unity Gateway: budgetten en limieten
Open de documentatie : Unity Gateway: budgetten en limieten. Opent bij de aanbieder
- docs.databricks.com
MLflow Tracing
Open de documentatie : MLflow Tracing. Opent bij de aanbieder
Lees bij NexOps
Artikelen uit onze eigen projecten over hetzelfde onderwerp.
Bronnen
Laatst gecontroleerd 2026-11-11
We controleren elke bron aan de hand van de officiële documentatie. Producten veranderen, dus bevestig details daar voordat je bouwt.