AI Agents · Lekcja

Opóźnienie i koszt na każdym etapie

Mierz zużycie tokenów i czas rzeczywisty dla każdego węzła, aby znaleźć wolne i kosztowne etapy.

Lekcja 3 z 414 kroki

Opóźnienie i koszt na każdym etapie to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.

Dlaczego metryki dla poszczególnych kroków?

Całkowite opóźnienie i koszt informują, że system działa wolno lub jest drogi — ale nie wskazują, KTÓRY krok działa wolno lub generuje wysoki koszt. Aby to naprawić, trzeba mierzyć każdy krok osobno.

Rejestrowanie opóźnienia

Dodaj je do każdego spanu:

start = time.time()
# ... do work ...
span.duration_ms = (time.time() - start) * 1000

Kategorie opóźnień

Typowe wolne kroki w agentach:

  • Wywołanie LLM — 500ms do 10s
  • Wyszukiwanie w internecie — 200ms do 2s
  • Tworzenie embeddingu — 50ms do 200ms
  • Zapytanie do bazy danych — 5ms do 500ms

Rejestrowanie kosztu

W przypadku kroków LLM pomnóż liczbę tokenów przez cenę:

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}")

Agregacja na poziomie trace'a

Sumuj spany na poziomie trace'a:

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

Nie patrz na średnie — opóźnienia agentów mają długi ogon. Raportuj percentyle:

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))

Koszt na użytkownika

Codziennie sumuj koszt według 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 100

Koszt według nazwy kroku

Które kroki generują największy koszt? Grupuj według nazwy:

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 DESC

Wykresy kaskadowe opóźnień

Dla jednego trace'a narysuj kaskadę spanów w stylu wykresu Gantta. Najdłuższy pasek wskazuje wąskie gardło.

Większość interfejsów do tracingu renderuje taki wykres automatycznie.

Alerty dotyczące wartości odstających

  • Wysyłaj alert, jeśli opóźnienie p95 wzrośnie dwukrotnie w porównaniu z poprzednim tygodniem
  • Wysyłaj alert, jeśli dzienny koszt wzrośnie powyżej 2x normy
  • Wysyłaj alert, jeśli koszt dowolnego użytkownika przekroczy $X / dzień

Porównanie dwóch modeli

Metryki dla poszczególnych kroków umożliwiają porównywanie modeli metodą 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")

Śledzenie rozkładu tokenów

Histogram tokenów wejściowych i wyjściowych ujawnia problemy: na przykład stałe osiąganie max_tokens oznacza obcięcie danych wyjściowych, czyli błąd.

Dlaczego percentyle?

Dlaczego raportować opóźnienie p95 zamiast średniej?

Podsumowanie

Opóźnienie i koszt każdego kroku, agregowane na poziomie trace'a i użytkownika; percentyle zamiast średnich; alerty dotyczące wartości odstających. To jest Państwa pulpit nawigacyjny.

Bezpłatny start

Ucz się AI Agents dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
60
Lekcje
239

Często zadawane pytania

Czy lekcja „Opóźnienie i koszt na każdym etapie” jest bezpłatna?

Tak — pełny tekst „Opóźnienie i koszt na każdym etapie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.

Co nauczysz się w „Opóźnienie i koszt na każdym etapie”?

Mierz zużycie tokenów i czas rzeczywisty dla każdego węzła, aby znaleźć wolne i kosztowne etapy. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć AI Agents?

Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Opóźnienie i koszt na każdym etapie”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?

Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Dlaczego agenci potrzebują śledzenia
  2. Rejestrowanie wywołań narzędzi oraz danych wejściowych i wyjściowych
  3. Opóźnienie i koszt na każdym etapie
  4. Wizualizacja uruchomień agentów (Langfuse, LangSmith)
← Powrót do AI Agents