0Pricing
AI Agents · Aula

Latência e custo por etapa

Meça o uso de tokens e o tempo decorrido por nó para encontrar as etapas lentas e caras.

Latência e custo por etapa é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.

Por que usar métricas por etapa?

A latência e o custo totais informam que o sistema está lento ou caro — mas não informam qual etapa está lenta ou cara. A medição por etapa é necessária para corrigi-la.

Registrando a latência

Adicione isso a cada span:

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

Categorias de latência

Etapas geralmente lentas em agentes:

  • Chamada de LLM — 500 ms a 10 s
  • Pesquisa na Web — 200 ms a 2 s
  • Incorporação — 50 ms a 200 ms
  • Consulta ao banco de dados — 5 ms a 500 ms

Registrando o custo

Para etapas de LLM, multiplique os tokens pelo preço:

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

Agregação por trace

Some os spans até o nível do trace:

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

Não observe as médias — as latências de agentes têm caudas longas. Informe os percentis:

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

Custo por usuário

Some o custo por user_id diariamente:

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

Custo por nome da etapa

Quais etapas dominam o custo? Agrupe por 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 DESC

Cascatas de latência

Para um trace, faça um gráfico em cascata dos spans no estilo de um diagrama de Gantt. A barra mais longa é o seu gargalo.

A maioria das interfaces de rastreamento faz isso automaticamente.

Alerta para valores atípicos

  • Gere um alerta se a latência p95 dobrar de uma semana para a outra
  • Gere um alerta se o custo diário ultrapassar 2 vezes o normal
  • Gere um alerta se algum usuário individual custar mais de $X por dia

Compare dois modelos

As métricas por etapa permitem comparar modelos por meio de um teste 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")

Acompanhe a distribuição de tokens

Um histograma dos tokens de entrada e de saída revela problemas: por exemplo, atingir max_tokens de forma consistente = truncamento da saída = erro.

Por que usar percentis?

Por que informar a latência p95 em vez da média?

Recapitulação

Latência e custo por etapa, agregados por trace e por usuário; percentis, não médias; alertas para valores atípicos. Esse é o seu painel.

Perguntas Frequentes

A aula “Latência e custo por etapa” é grátis?

Sim — o texto completo de “Latência e custo por etapa” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.

O que vou aprender em “Latência e custo por etapa”?

Meça o uso de tokens e o tempo decorrido por nó para encontrar as etapas lentas e caras. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar AI Agents?

Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Latência e custo por etapa”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de AI Agents?

Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Por que o rastreamento é necessário para agentes
  2. Registrando chamadas de ferramentas e entradas/saídas
  3. Latência e custo por etapa
  4. Visualizando execuções de agentes (Langfuse, LangSmith)
← Voltar para AI Agents