OpenTelemetry GenAI: cómo observar agentes de IA sin filtrar prompts ni tool calls
La observabilidad de agentes no va de guardar todos los prompts: va de trazar decisiones, herramientas, coste y errores sin convertir tus logs en una fuga de datos.
La observabilidad de agentes no va de guardar todos los prompts: va de trazar decisiones, herramientas, coste y errores sin convertir tus logs en una fuga de datos.
OpenTelemetry GenAI es el intento más serio de estandarizar cómo trazamos llamadas a modelos, agentes, tools, MCP, costes, errores y eventos de entrada/salida sin casarnos con un proveedor de observabilidad.
Checklist
Qué problema resuelve OpenTelemetry GenAI
Los agentes de IA rompen la observabilidad clásica porque una petición ya no es una sola llamada HTTP. Puede incluir planning, varias llamadas a modelo, tools locales, MCP remoto, retrieval, memoria, aprobaciones humanas, retries, streaming y costes por token. Si solo tienes logs de aplicación, verás el resultado final, pero no el camino.
OpenTelemetry GenAI propone un vocabulario común bajo atributos como `gen_ai.operation.name`, `gen_ai.provider.name`, `gen_ai.request.model`, `gen_ai.usage.input_tokens`, `gen_ai.tool.name` o `mcp.method.name`. La ventaja no es estética: si varios SDKs emiten el mismo esquema, puedes comparar proveedores, frameworks y backends sin reescribir dashboards cada trimestre.
La parte incómoda es que el estándar sigue en desarrollo. Eso no lo invalida; significa que debes adoptarlo como contrato operativo propio, con versionado y tests, no como magia que arregla toda la observabilidad del stack.
¿Te está sirviendo? Hay una dosis cada semana
Te resumo herramientas de IA para devs, agentes, MCP, seguridad y workflows en un email de 5 minutos. En español y sin ruido.
Suscribirme gratisQué capturar siempre y qué dejar en opt-in
Captura siempre metadata de baja sensibilidad: proveedor, modelo solicitado, operacion, latencia, tokens, errores, nombre de tool, estado de aprobacion, tenant anonimizado, version del agente y commit de despliegue. Esto permite depurar coste y rendimiento sin almacenar contenido del usuario.
Puntos a revisar
Lo que conviene comprobar
Deja en opt-in el contenido: `gen_ai.input.messages`, `gen_ai.output.messages`, `gen_ai.system_instructions`, definiciones de tools, argumentos y resultados. Esos campos son valiosos para incidentes y evaluacion, pero tambien pueden contener secretos, PII, codigo privado, datos de cliente o instrucciones internas.
La regla operativa es simple: si activas captura de contenido, define antes mascarado, retencion, acceso, muestreo, entornos permitidos y razon de negocio. `Lo necesitamos para debug` no basta si acabas guardando prompts completos de produccion durante meses.
Checklist
MCP: la traza no debe morir en el transporte
MCP complica la observabilidad porque trabaja sobre JSON-RPC y puede usar stdio o Streamable HTTP. Un request de transporte no equivale necesariamente a una operacion MCP: puede haber streams, sesiones, retries y mensajes multiples. Por eso las convenciones MCP recomiendan spans propios y propagacion de contexto en `params._meta`.
Para tools MCP, `mcp.method.name=tools/call` y `gen_ai.operation.name=execute_tool` permiten que el backend trate la llamada como tool call GenAI y como operacion MCP a la vez. Esa doble lectura es util: el equipo de agentes ve la accion, y el equipo de plataforma ve transporte, sesion y servidor.
No metas URIs o argumentos de alta cardinalidad en nombres de span. Usa nombres estables y atributos filtrados. Si cada consulta genera un span name unico, tus dashboards se vuelven caros, lentos y poco agregables.
Checklist
Coste, latencia y calidad: tres tableros distintos
Un agente puede ser correcto y demasiado caro, barato y peligroso, rapido y ciego. Por eso no mezcles todo en un unico `score de agente`. Necesitas tablero de coste, tablero de fiabilidad y tablero de calidad.
El tablero de coste debe mostrar tokens por operacion, cache hits, modelo, proveedor, tool calls y coste estimado por tarea. El tablero de fiabilidad debe mostrar errores por tool, timeouts, retries, spans sin parent y MCP servers lentos. El tablero de calidad debe conectarse con evaluacion: groundedness, aprobaciones humanas, feedback y regresiones.
La observabilidad GenAI no reemplaza evaluaciones, pero las hace auditables. Cuando un gate RAG falla, una traza bien hecha te enseña query, retrieval, modelo, tool calls y respuesta. Sin esa evidencia, el equipo acaba discutiendo impresiones.
Mi configuracion por defecto seria conservadora: contenido off, metadata on, muestreo de errores, redaccion agresiva, retencion corta para entornos de debug y acceso limitado. Si el negocio necesita payloads completos para auditoria, eso debe pasar por una decision explicita, no por una variable de entorno olvidada.
Errores comunes
- Guardar prompts completos por defecto porque `ayuda a depurar`.
- Medir solo llamadas al modelo y olvidar tool calls, MCP, retrieval y aprobaciones.
- Usar nombres de span con ids, queries o rutas de usuario.
- No versionar agente, prompt, modelo ni commit en los atributos.
- Mezclar metricas de coste, calidad y fiabilidad en un unico numero.
- No probar que la propagacion de trace funciona entre cliente MCP y servidor MCP.
- Dar acceso a trazas GenAI a mas personas que a los datos de produccion equivalentes.
Conclusión
OpenTelemetry GenAI es una buena direccion porque pone nombres comunes a problemas que todos los equipos de agentes estan redescubriendo: modelo, tool, MCP, tokens, errores, contenido opt-in y propagacion de contexto. Eso reduce dependencia de dashboards propietarios y fuerza disciplina operativa.
Puntos a revisar
Lo que conviene comprobar
Pero la decision madura no es `capturalo todo`. Es capturar lo suficiente para depurar y mejorar sin convertir observabilidad en una base de datos paralela de prompts sensibles. Si empiezas por metadata, tools, coste y errores, ya tendras mas señal que la mayoria de demos. El contenido completo puede venir despues, con politica y responsabilidad.
Preguntas frecuentes
¿Qué es OpenTelemetry GenAI?
OpenTelemetry GenAI es un conjunto de convenciones semanticas para representar telemetria de sistemas de IA generativa: llamadas a modelos, agentes, tools, MCP, eventos, metricas y errores.
¿OpenTelemetry GenAI está estable?
No del todo. Las convenciones GenAI estan marcadas como Development en varias areas, asi que conviene versionar dashboards y no asumir compatibilidad perfecta entre SDKs.
¿Debo capturar prompts completos?
No por defecto. Captura metadata primero y activa contenido solo con opt-in, redaccion, muestreo, retencion corta y control de acceso.
¿Cómo se observa una tool MCP?
Usa atributos MCP como `mcp.method.name`, sesion y transporte, y añade `gen_ai.operation.name=execute_tool` cuando la operacion sea una llamada de herramienta.
¿OpenTelemetry GenAI reemplaza LangSmith, Phoenix o Datadog LLM Observability?
No necesariamente. Es un esquema comun de telemetria; los backends siguen aportando UI, analisis, alertas, evals y almacenamiento.
¿Qué metrica miro primero en agentes?
Empieza por latencia p95, errores por tool, tokens por tarea, coste por workflow y porcentaje de trazas con contexto completo. La calidad requiere evaluaciones separadas.
Cómo instrumentar un agente con OpenTelemetry GenAI sin filtrar datos sensibles
- Mapear el flujo. Dibuja modelo, agente, tools, MCP, retrieval, memoria, aprobaciones y jobs asincronos.
- Definir spans. Usa nombres estables para chat, invoke_agent, plan, execute_tool, retrieval y llamadas MCP.
- Capturar metadata segura. Registra proveedor, modelo, operacion, tokens, latencia, error, version de agente y commit.
- Separar contenido opt-in. Mantén prompts, mensajes, argumentos y resultados fuera por defecto.
- Aplicar redaccion. Enmascara secretos, PII, ids de cliente y rutas sensibles antes de exportar atributos.
- Propagar contexto MCP. Inyecta trace context en `params._meta` y verifica parent-child o links entre cliente y servidor.
- Crear dashboards. Separa coste, fiabilidad y calidad; no escondas todo en un score unico.
- Conectar evals. Guarda trace id en fallos de evaluacion y feedback humano para depurar con evidencia.
- Revisar retencion. Trata trazas GenAI con el mismo cuidado que datos de produccion sensibles.
Fuentes y referencias
- OpenTelemetry GenAI semantic conventions
- OpenTelemetry GenAI systems overview
- OpenTelemetry GenAI agent spans
- OpenTelemetry MCP semantic conventions
- OpenTelemetry: GenAI observability
- OpenTelemetry: AI Agent Observability
- OpenTelemetry GenAI reference implementations
- OpenTelemetry OpenAI Agents instrumentation
También te puede interesar
OpenAI Agents SDK: MCP, guardrails y tracingMétricas para agentes de códigoEvaluación RAG en producciónLiteLLM Proxy: gateway IA, costes y modelosMCP outputSchema y structuredContentRecibe una lectura semanal de herramientas IA para devs
Cada semana te resumo herramientas de IA para devs, agentes, MCP, seguridad y workflows en un email de 5 minutos. En español y sin ruido.
Suscribirme gratis