Latenza e costi per passaggio
Misuri l'uso dei token e il tempo reale per ogni nodo, così da individuare i passaggi più lenti e costosi.
Latenza e costi per passaggio è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Agents, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Agents include 4 lezioni in totale.
Perché usare metriche per passaggio?
La latenza e il costo complessivi indicano che il sistema è lento o costoso, ma non QUAL È il passaggio lento o costoso. Per correggere il problema è necessaria una misurazione per passaggio.
Registrare la latenza
La aggiunga a ogni span:
start = time.time()
# ... do work ...
span.duration_ms = (time.time() - start) * 1000Categorie di latenza
Passaggi comunemente lenti negli agenti:
- Chiamata LLM — da 500 ms a 10 s
- Ricerca web — da 200 ms a 2 s
- Embedding — da 50 ms a 200 ms
- Query DB — da 5 ms a 500 ms
Registrare il costo
Per i passaggi LLM, moltiplichi i token per il prezzo:
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}")
Aggregazione per traccia
Sommi gli span a livello di traccia:
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
Non consideri le medie: le latenze degli agenti hanno una coda lunga. Riporti i percentili:
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))Costo per utente
Sommi ogni giorno il costo in base a user_id:
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 100Costo per nome del passaggio
Quali passaggi incidono maggiormente sul costo? Raggruppi per nome:
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 DESCWaterfall della latenza
Per una traccia, rappresenti gli span in un waterfall in stile Gantt. La barra più lunga è il collo di bottiglia.
La maggior parte delle interfacce di tracing lo rappresenta automaticamente.
Avvisi sui valori anomali
- Invii un avviso se la latenza p95 raddoppia rispetto alla settimana precedente
- Invii un avviso se il costo giornaliero supera di 2 volte il livello normale
- Invii un avviso se un singolo utente costa più di $X al giorno
Confrontare due modelli
Le metriche per passaggio consentono di confrontare i modelli con un test A/B:
# 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")
Monitorare la distribuzione dei token
L'istogramma dei token di input rispetto a quelli di output rivela alcuni problemi: per esempio, raggiungere costantemente max_tokens significa troncamento dell'output, quindi un bug.
Perché i percentili?
Perché riportare la latenza p95 invece della media?
Riepilogo
Latenza e costo per passaggio, aggregati per traccia e per utente; percentili invece di medie; avvisi sui valori anomali. Questa è la vostra dashboard.
Domande Frequenti
La lezione «Latenza e costi per passaggio» è gratuita?
Sì — il testo completo di «Latenza e costi per passaggio» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Agents, passa a CoddyKit PRO. Il corso AI Agents include 4 lezioni in totale.
Cosa imparerò in «Latenza e costi per passaggio»?
Misuri l'uso dei token e il tempo reale per ogni nodo, così da individuare i passaggi più lenti e costosi. Eserciti AI Agents con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare AI Agents?
Non è richiesta alcuna esperienza precedente. AI Agents su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Latenza e costi per passaggio»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione AI Agents?
Sì. Ogni lezione AI Agents include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Perché il tracing è necessario per gli agenti
- Registrare chiamate agli strumenti e input/output
- Latenza e costi per passaggio
- Visualizzare le esecuzioni degli agenti (Langfuse, LangSmith)