Capítulo 5.2 — Observabilidade para ML, LLMs e agentes¶
🎯 Objetivo¶
Mapear as camadas de observabilidade em IA: modelo, LLM, agente e negócio - e propor um stack open-source defensável.
🧠 Camadas¶
| Camada | Foco | Métricas principais |
|---|---|---|
| ML | Modelo isolado | Latência p95, accuracy/F1, calibração, drift |
| LLM | Chamada ao modelo | Tokens, custo, latência (TTFT/TPOT), qualidade |
| Agente | Execução fim a fim | Task success, tool accuracy, fallback rate, steps |
| Produto | Jornada do usuário | Tempo até resolução, satisfação, deflexão |
| Negócio | Resultado | KPI agregado, custo por sucesso, retenção |
Cada camada importa por motivos distintos. Otimizar apenas a camada "modelo" é o equivalente moderno a otimizar gettimeofday() em um sistema cuja lentidão vem do banco.
🧠 Diferença operacional entre observar modelo, produto e sistema¶
- Observar o modelo: ele está respondendo? Em que latência? Com que distribuição de tokens? Com que taxa de erro?
- Observar o produto: o usuário está conseguindo o que quer? A jornada cumpre o SLA prometido?
- Observar o sistema: o tenant X está consumindo orçamento desproporcional? O índice RAG está atrasado? A policy está rejeitando mais do que o normal?
As três respostas estão em camadas diferentes. Misturar resulta em dashboards que ninguém abre depois do primeiro incidente.
🧰 Stack open-source defensável¶
- OpenTelemetry - tracing, métricas, logs unificados; adote GenAI semantic conventions desde o início.
- Jaeger ou Grafana Tempo - backend de tracing.
- Prometheus + Grafana - métricas e dashboards.
- Loki - logs estruturados.
- OpenSearch / Elasticsearch - quando há necessidade de busca textual nos traces.
Para IA-específico, complementos comuns: Langfuse, Arize Phoenix, TruLens. Eles costumam emitir/consumir OTel ou exportar para os backends acima.
📚 Referências¶
- OpenTelemetry - GenAI semantic conventions: https://opentelemetry.io/docs/specs/semconv/gen-ai/
- OpenTelemetry - GenAI agent spans: https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-agent-spans/
- Grafana Tempo: https://grafana.com/docs/tempo/latest/
- Jaeger: https://www.jaegertracing.io/docs/