Exportación OpenTelemetry de Claude: evidencias para auditar agentes
Durante dos años, la respuesta honesta a «¿qué hizo de verdad tu agente de IA?» fue encogerse de hombros. Tenías la salida final, quizá una línea de log, y poco más entre medias. Eso cambia con el trazado. La documentación de Anthropic (marcada como beta) describe la exportación OpenTelemetry para la API y el SDK de Claude: ahora puedes trazar las peticiones a la Messages API, los usos de herramientas y las sesiones de Managed Agents como spans de OpenTelemetry y enviarlos a cualquier backend de observabilidad OTLP. Para un responsable de seguridad o de auditoría no es una nota al pie para la comodidad de los desarrolladores: es la capa de evidencias que le faltaba a la auditoría de la IA.
Qué es y qué vigilar, en palabras sencillas
Qué es (según la documentación de Anthropic, beta): el SDK y la API de Claude emiten spans de OpenTelemetry (por ejemplo anthropic.messages.create, anthropic.model_request, anthropic.session.turn, anthropic.custom_tool_use <tool>) con atributos para los mensajes, las llamadas a herramientas, los resultados de las herramientas y el uso de tokens, siguiendo las convenciones semánticas GenAI, y los exportan a cualquier backend OTLP (Datadog, Grafana, Honeycomb, Langfuse, Sentry, Splunk…). El trazado del SDK se configura en el código; el de la API, en la Console (administrador).
Qué vigilar: el modo por defecto metadata_only es seguro; el modo de contenido completo, que se activa a propósito, copia los prompts y las respuestas (gen_ai.input.messages, gen_ai.output.messages, anthropic.tool_result.content) en tu stack de observabilidad: un nuevo hogar para datos personales y secretos. Y la entrega es best-effort: magnífica para la detección y la auditoría, pero no es un registro de facturación (para eso, usa la Usage API).
Análisis independiente basado en la documentación, para responsables de seguridad y auditoría. PlayCISO no está afiliado a Anthropic; cada detalle de las funciones que sigue procede de la documentación de OpenTelemetry publicada por Anthropic (beta) y se transmite con atribución. Los nombres de spans y atributos se citan tal como aparecen en esa documentación.
Qué traza: las partes que importan para la auditoría
Los spans corresponden casi uno a uno a las preguntas que hace un auditor o un equipo de respuesta a incidentes. Una petición aparece como anthropic.messages.create (el span de cliente del SDK y el span de servidor de la API comparten el nombre; los distingues por el tipo de span), y cada ejecución del modelo como anthropic.model_request. Las llamadas a herramientas aparecen como anthropic.custom_tool_use <tool_name> (por ejemplo anthropic.custom_tool_use list_issues), con gen_ai.tool.call.arguments y el resultado en anthropic.tool_result.content. Managed Agents añade anthropic.session.turn y anthropic.session.outcome_evaluation, y una sesión completa se agrupa por anthropic.session.id. El uso de tokens viaja en gen_ai.usage.input_tokens, y la compactación se registra aparte.
En conjunto, es un relato reconstruible de lo que se le dijo al agente (gen_ai.system_instructions, gen_ai.input.messages), lo que decidió hacer (los spans de herramientas y sus argumentos), lo que recibió y lo que produjo: la materia prima de un registro de auditoría de la IA.
Por qué es la capa de evidencias que necesita tu auditoría de IA
Todo marco de «¿cómo auditamos la IA?» (ISO/IEC 42001, el NIST AI RMF, las obligaciones de registro y conservación de la Ley de IA de la UE) da por hecho que puedes aportar pruebas de cómo se comportó un sistema. En el software tradicional tienes logs; con los agentes, la mayoría de los equipos no tenía casi nada entre el prompt y la respuesta. El trazado cierra esa brecha. También alimenta la detección: como puedes ver las llamadas a herramientas y sus argumentos, puedes alertar cuando el agente lee algo que no debería, llama a una herramienta que la tarea nunca requirió, envía datos a un destino inesperado o entra en un bucle hasta que se dispara la factura de tokens. La observabilidad deja de ser una cuestión de rendimiento y se convierte en un control de seguridad.
La nueva superficie: tus trazas pueden convertirse en tu mayor fuga de datos
Esta es la parte que un CISO no puede pasar por alto. En el modo metadata_only (el predeterminado), los spans llevan identificadores, tiempos, estado, recuentos de tokens y nombres: poca sensibilidad y seguros para exportarlos ampliamente. Cambia al modo completo «content» y los spans pasan a contener los prompts y las respuestas reales: las instrucciones del sistema, los mensajes de los usuarios (con los datos personales, credenciales o textos confidenciales que hayan pegado), los argumentos y los resultados de las herramientas. Esos spans llegan a tu plataforma de observabilidad y viven allí bajo sus controles de acceso y su retención, que pueden ser mucho más laxos que los que rodean a la base de datos de tu aplicación. En la práctica has creado una segunda copia de tus datos de IA más sensibles en una herramienta de monitorización.
La documentación de Anthropic te da palancas: un límite de tamaño del contenido por span (unos 0,75 MB, que trunca primero los mensajes más antiguos y el final de los resultados de herramientas y marca anthropic.content.truncated) y la exportación forzada en modo solo metadatos para destinos sujetos a HIPAA, FERPA o K-12. Pero la gobernanza es tuya: elimina secretos y datos personales antes de que los spans salgan de tu proceso, restringe y limita en el tiempo quién puede leer el contenido de las trazas, trata el almacén de trazas como un encargado del tratamiento dentro del alcance de las solicitudes de acceso y de supresión, y activa el contenido completo solo donde todo eso se cumpla.
Tres límites honestos
- Es beta. Anthropic ofrece la exportación bajo los términos de los Beta Services; cuenta con cambios.
- La entrega es best-effort. Los spans pueden perderse y los reintentos pueden duplicarlos: deduplica por id de traza + id de span y nunca trates las trazas como un registro completo.
- No es tu fuente de facturación. Para el uso fiable por clave y la detección de claves filtradas, Anthropic remite a la Usage API; usa las trazas para depurar, detectar y dar contexto a la auditoría, no para la contabilidad.
Ponlo en práctica
Hemos creado tres herramientas en el navegador justo en torno a estas decisiones:
- AI Agent Observability Readiness Scorecard: ¿puedes auditar de verdad el comportamiento de un agente a partir de tus trazas? Puntúa la cobertura, la retención, la gobernanza del modo de contenido, la redacción de datos y las alertas.
- Agent Trace Triage Lab: lee spans de OTel de Claude realistas y decide: benigno, inyección de prompts, abuso de herramientas, exfiltración o un bucle descontrolado, y cuál es la señal.
- Telemetry Privacy & Span-Redaction Checklist: instrumenta el trazado sin convertir tu stack de observabilidad en una nueva superficie de fuga de datos.
Y para situarlo en el panorama general, consulta la herramienta AI Audit & Assurance Readiness y el EU AI Act Classifier: las trazas son las evidencias con las que trabajan esas auditorías.
La conclusión para los responsables
El trazado por fin hace auditable el comportamiento de los agentes. Adóptalo, porque «no podíamos ver lo que hizo el agente» ya no es una respuesta aceptable ante un consejo o un regulador. Empieza en modo solo metadatos, monta la detección sobre las llamadas a herramientas y las sesiones, y somete el trazado con contenido completo a la misma gobernanza de datos que exigirías a cualquier sistema que guarde prompts y datos personales. La visibilidad es la victoria; la disciplina consiste en asegurarte de que la visibilidad no se convierta en la brecha.
Fuente
Basado en la documentación publicada por Anthropic; PlayCISO no es el origen de ninguno de los detalles de las funciones y no está afiliado a Anthropic.
- Anthropic: OpenTelemetry for the Claude API (beta)
Preguntas frecuentes
¿Qué hace exactamente la exportación OpenTelemetry de Claude?
Según la documentación de Anthropic (marcada como beta), la API y el SDK de Claude pueden emitir spans de OpenTelemetry (OTel) para las peticiones a la Messages API, los usos de herramientas y las sesiones de Managed Agents, y enviarlos a cualquier plataforma de observabilidad que acepte OTLP, con las convenciones semánticas GenAI de OpenTelemetry. Una traza es el registro completo de una petición a través de tu sistema; un span es un paso dentro de ella, como una petición al modelo o un uso de una herramienta. Puedes configurar el trazado del SDK (en el código) y/o el de la API (en la Claude Console, que requiere administrador), y si usas ambos, los spans del SDK y de la API se enlazan en una sola traza. PlayCISO transmite la documentación publicada por Anthropic y no está afiliado a Anthropic.
¿Por qué le importa el trazado a un responsable de seguridad o de auditoría?
Porque una auditoría de IA necesita evidencias y, hasta ahora, el comportamiento de los agentes era en gran parte invisible a posteriori. Las trazas te dan un registro por petición y por herramienta: qué modelo se ejecutó, qué herramientas se llamaron (anthropic.custom_tool_use), con qué argumentos (gen_ai.tool.call.arguments), qué devolvieron (anthropic.tool_result.content), cuántos tokens, cuánto tiempo y, a lo largo de una sesión, todo agrupado por anthropic.session.id. Es justo el material que necesitas para investigar una sospecha de inyección de prompts, una herramienta que hizo más de lo que requería la tarea, una exfiltración de datos a través de una llamada a una herramienta o un bucle descontrolado. Es la contraparte de observabilidad de todo marco de control de «auditar la IA»: no puedes asegurar lo que no registras.
¿Cuál es la pega de seguridad?
El modo de contenido. El predeterminado es metadata_only (identificadores, tiempos, estado, recuentos de tokens y nombres, como los de las herramientas y los servidores MCP), que es seguro para exportarlo ampliamente. Pero el modo «content» añade los propios prompts y respuestas del modelo: gen_ai.system_instructions, gen_ai.input.messages, gen_ai.output.messages, gen_ai.tool.call.arguments y anthropic.tool_result.content. Actívalo y tu backend de observabilidad se convierte en un nuevo lugar donde viven tus datos más sensibles (prompts de usuarios, datos personales, secretos pegados en un chat, salidas de herramientas), bajo las reglas de acceso y retención de esa plataforma, no las tuyas. La documentación de Anthropic indica que las restricciones de HIPAA, FERPA y K-12 fuerzan el modo solo metadatos en los destinos de la API, que hay un límite de tamaño del contenido por span (unos 0,75 MB) con truncado y que el contenido es una decisión de tratamiento de datos. Trata la activación del contenido completo como una ampliación de tu mapa de datos, con la redacción, el control de acceso y la retención que correspondan.
¿Puedo usar estas trazas para la facturación o para detectar una clave filtrada?
No como sistema de referencia. La documentación de Anthropic indica que la entrega de los spans es best-effort (pueden perderse y los reintentos pueden duplicarlos; deduplica por id de traza + id de span) y que la exportación no es un registro de uso completo. Para el uso por clave y para detectar una clave filtrada, la documentación remite a la Usage API. Así que usa las trazas de OTel para depurar, detectar y dar contexto al registro de auditoría, y la Usage API para la contabilidad fiable de tokens y costes. Ten en cuenta también las reglas de recuento de tokens: en el lado de la API suma anthropic.messages.create o anthropic.model_request (no ambos), añade los spans anthropic.compaction y, cuando existan spans del SDK y de la API, cuenta solo los de la API.
¿Cómo empiezo y qué debería tener listo antes?
La configuración está en la documentación del SDK y de la Console de Anthropic (el SDK registra un tracer provider en el código; el trazado de la API añade un destino en la Console) y funciona con backends OTLP como Datadog, Grafana, Honeycomb, Langfuse, New Relic, Sentry y Splunk. Antes de activarlo, decide tres cosas: (1) la cobertura: si necesitas spans de herramientas de cliente (SDK), spans de herramientas de servidor y de Managed Agents (API), o ambos; (2) el modo de contenido: empieza con metadata_only y activa el contenido completo solo donde tengas un backend gobernado; (3) la detección: sobre qué vas a alertar (patrones de inyección, mal uso de herramientas, salida de datos, picos de coste o latencia). Nuestro Observability Readiness Scorecard, el Agent Trace Triage Lab y la Telemetry Privacy & Span-Redaction Checklist recorren cada uno de esos puntos.