Forsinkelse og kostnad per steg
Mål tokenbruk og faktisk tidsbruk per node, slik at du kan finne stegene som er langsomme og kostbare.
Forsinkelse og kostnad per steg er en gratis leksjon i AI-agenter på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i AI-agenter, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i AI-agenter inneholder totalt 4 leksjoner.
Hvorfor måle per trinn?
Total latens og kostnad forteller Dem at systemet er tregt eller dyrt — men ikke HVILKET trinn som er tregt eller dyrt. Måling per trinn er nødvendig for å kunne rette det.
Registrere latens
Legg det til i hver span:
start = time.time()
# ... do work ...
span.duration_ms = (time.time() - start) * 1000Latenskategorier
Vanlige trege trinn i agenter:
- LLM-kall — 500 ms til 10 s
- Nettsøk — 200 ms til 2 s
- Embedding — 50 ms til 200 ms
- DB-spørring — 5 ms til 500 ms
Registrere kostnad
For LLM-trinn multipliserer De antall tokens med prisen:
PRICES = {
'gpt-4o-mini': {'in': 0.150 / 1e6, 'out': 0.600 / 1e6},
'gpt-4o': {'in': 2.50 / 1e6, 'out': 10.00 / 1e6},
'claude-sonnet-4-5': {'in': 3.00 / 1e6, 'out': 15.00 / 1e6}
}
def compute_cost(model, tokens_in, tokens_out):
p = PRICES[model]
return tokens_in * p['in'] + tokens_out * p['out']
cost = compute_cost('gpt-4o-mini', 1000, 500)
print(f"Cost for 1000 in / 500 out tokens on gpt-4o-mini: ${cost:.6f}")
Aggreger per trace
Summer spans opp til trace-nivået:
def trace_metrics(spans):
return {
'duration_ms': sum(s.duration_ms for s in spans),
'cost_usd': sum(s.cost_usd or 0 for s in spans),
'tokens': sum((s.tokens_in or 0) + (s.tokens_out or 0) for s in spans),
'step_count': len(spans)
}
from types import SimpleNamespace
spans = [
SimpleNamespace(duration_ms=120, cost_usd=0.002, tokens_in=100, tokens_out=50),
SimpleNamespace(duration_ms=340, cost_usd=0.005, tokens_in=200, tokens_out=80),
]
print(trace_metrics(spans))
p50 / p95 / p99
Ikke se på gjennomsnitt — agentlatens har en tung hale. Rapporter persentiler:
import numpy as np
durations = [t.duration_ms for t in last_1000_traces]
print('p50:', np.percentile(durations, 50))
print('p95:', np.percentile(durations, 95))
print('p99:', np.percentile(durations, 99))Kostnad per bruker
Summer kostnaden per user_id daglig:
SELECT user_id, SUM(cost_usd) AS daily_cost
FROM traces
WHERE created_at::date = current_date
GROUP BY user_id
ORDER BY daily_cost DESC
LIMIT 100Kostnad per trinnnavn
Hvilke trinn står for størstedelen av kostnaden? Gruppér etter navn:
SELECT name, SUM(cost_usd) AS total
FROM spans
WHERE trace_id IN (SELECT id FROM traces WHERE created_at::date = current_date)
GROUP BY name
ORDER BY total DESCLatensvannfall
For én trace kan De tegne et Gantt-lignende vannfall av spans. Den lengste linjen er flaskehalsen.
De fleste tracing-grensesnitt gjengir dette automatisk.
Varsle ved avvik
- Varsle hvis p95-latensen dobles fra uke til uke
- Varsle hvis den daglige kostnaden øker til mer enn det dobbelte av normalen
- Varsle hvis én enkelt bruker koster mer enn $X per dag
Sammenligne to modeller
Målinger per trinn gjør det mulig å sammenligne modeller med A/B-tester:
# Run 100 traces with gpt-4o-mini and 100 with haiku
# Compare p95 latency and average cost
# Pick the winner for the use case
print("Run 100 traces with gpt-4o-mini and 100 with haiku")
print("Compare p95 latency and average cost")
print("Pick the winner for the use case")
Følge tokenfordelingen
Et histogram over inndata- og utdata-tokens avdekker problemer: Hvis De for eksempel stadig treffer max_tokens, betyr det avkortet utdata — altså en feil.
Hvorfor persentiler?
Hvorfor rapportere p95-latens i stedet for gjennomsnittet?
Oppsummering
Latens og kostnad per trinn, aggregert per trace og per bruker, persentiler i stedet for gjennomsnitt og varsler ved avvik. Dette er dashbordet Deres.
Lær deg AI-agenter med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 60
- Leksjoner
- 239
Ofte stilte spørsmål
Er leksjonen «Forsinkelse og kostnad per steg» gratis?
Ja – hele teksten i «Forsinkelse og kostnad per steg» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av AI-agenter-kurset, kan du oppgradere til CoddyKit PRO. Kurset i AI-agenter inneholder totalt 4 leksjoner.
Hva lærer jeg i «Forsinkelse og kostnad per steg»?
Mål tokenbruk og faktisk tidsbruk per node, slik at du kan finne stegene som er langsomme og kostbare. Du øver på AI-agenter med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med AI-agenter?
Ingen tidligere erfaring er nødvendig. AI-agenter på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «Forsinkelse og kostnad per steg»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne AI-agenter-leksjonen?
Ja. Alle AI-agenter-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Hvorfor agenter trenger sporing
- Logge verktøykall og inndata/utdata
- Forsinkelse og kostnad per steg
- Visualisere agentkjøringer (Langfuse, LangSmith)