Skip to content
Herramienta Pro

Agent Trace Triage: laboratorio de lectura de spans OTel de Claude

Lee trazas OpenTelemetry de agentes Claude, decide si cada una es benigna o un ataque y nombra el atributo que lo delata.

Abrir la herramienta →

La herramienta interactiva se abre en inglés.

Una cola de trazas de agentes Claude llega a tu herramienta de observabilidad: una consulta del tiempo, el resumen de un ticket, una investigación web, un trabajo por lotes, una sesión que parece «olvidar» sus instrucciones. Cada una es un árbol de spans de OpenTelemetry renderizado: una petición anthropic.messages.create y sus hijos model_request y custom_tool_use, con algunos atributos visibles. Algunas son perfectamente benignas. Otras esconden una inyección de prompts, una herramienta que se sale de su tarea, datos que salen hacia un host externo, un bucle desbocado que quema tokens o simplemente un truncamiento que parece peor de lo que es. Para cada una, eliges la clase de veredicto entre seis (benigna, inyección de prompts, abuso de herramientas o alcance excesivo, exfiltración de datos, bucle desbocado o disparo de costes, y error de configuración o anomalía benigna) y nombras el atributo exacto que lo delata: gen_ai.input.messages, anthropic.tool_result.content, gen_ai.tool.call.arguments o los recuentos de spans y tokens. Lee los atributos, no la impresión. Usa nombres de spans OTel reales de Claude y trazas sintéticas con payloads neutralizados, con niveles de dificultad, bonificación por velocidad y una nota de S a D. Es defensivo; PlayCISO no está afiliado a Anthropic. Es un laboratorio Pro.

  1. Abre una traza y lee el árbol de spans: la petición anthropic.messages.create y sus hijos model_request y custom_tool_use.
  2. Revisa los atributos visibles: entradas, resultados de herramientas, argumentos de herramientas y recuentos de tokens.
  3. Elige la clase de veredicto y nombra el atributo exacto que lo demuestra.
  4. Compara con la explicación y sigue la cola; no marques como ataque lo que solo es actividad intensa pero correcta.

Preguntas frecuentes

¿Qué enseña el laboratorio Agent Trace Triage?

Entrena la decisión rápida que toma un analista de SOC o un ingeniero de plataforma cuando le llega la traza OpenTelemetry de un agente Claude: ¿es actividad benigna o un incidente, y de qué tipo (inyección de prompts, abuso de herramientas o alcance excesivo, exfiltración de datos, un bucle desbocado o un error de configuración benigno)? Trabajas una cola de árboles de spans renderizados (una petición de Messages y sus hijos model_request y tool_use, con algunos atributos visibles) y en cada uno eliges la clase de veredicto y la señal principal: el atributo exacto que lo demuestra. Es práctica de detección y triaje; no lee tus trazas reales.

¿Son spans OpenTelemetry reales de Claude?

Los nombres de spans y atributos son reales. Anthropic expone la telemetría de agentes mediante OpenTelemetry con nombres de spans como anthropic.messages.create (emitido en el lado CLIENT por el SDK y en el lado SERVER por la API), anthropic.model_request, anthropic.custom_tool_use <tool_name>, anthropic.session.turn y anthropic.compaction, con atributos que siguen las convenciones semánticas GenAI de OpenTelemetry: gen_ai.system_instructions, gen_ai.input.messages, gen_ai.output.messages, gen_ai.tool.call.arguments, anthropic.tool_result.content, gen_ai.conversation.id, anthropic.session.id, gen_ai.usage.input_tokens y anthropic.content.truncated. Esta telemetría es una función beta; el laboratorio la representa con precisión como ejercicio defensivo. Las trazas en sí son escenarios ilustrativos sintéticos, no datos capturados, y PlayCISO no está afiliado a Anthropic.

¿Ataca a un agente o genera exploits?

No. Es estrictamente un ejercicio de formación defensiva. Cada traza es un ejemplo ilustrativo sintético y cada payload está neutralizado: las instrucciones inyectadas se citan como texto, los hosts externos se escriben como evil-sink[.]io y no aparecen secretos, tokens ni endpoints funcionales reales. Nada de esto puede ejecutarse contra un agente en vivo; solo entrena el reconocimiento de patrones en la telemetría que ya recoges.

¿Qué mitigaciones reales señala?

Cada clase se asocia a un control concreto. Inyección de prompts (en gen_ai.input.messages o anthropic.tool_result.content): trata la salida de las herramientas como datos no fiables, mantén las restricciones duraderas en las instrucciones de sistema y compara el system prompt con lo que la entrada intenta forzar. Abuso de herramientas y exfiltración (gen_ai.tool.call.arguments): limita las herramientas a argumentos explícitos y a rutas y destinos de una lista permitida, y alerta ante hosts externos en los argumentos de herramientas. Bucles desbocados (spans model_request o session.turn repetidos y un gen_ai.usage.input_tokens que no para de subir): fija límites de iteraciones y reintentos y presupuestos de tokens. Anomalías benignas (anthropic.content.truncated=true, un modelo de respaldo, una compactación que descarta los primeros turnos): corrige el enrutado, trocea las entradas y fija las restricciones críticas; son problemas de fiabilidad, no incidentes, y escalarlos por error malgasta tiempo de respuesta.

¿Cómo se vincula la telemetría de Claude Code y Cowork con las transcripciones de sesión?

Claude Code y Cowork exportan su propia telemetría OpenTelemetry a un colector que configuras tú. Los eventos de Cowork llevan prompt.id, que agrupa la actividad del agente iniciada por un prompt; los eventos de Claude Code llevan tool_use_id y request_id, que son el punto de partida para emparejar un evento de telemetría con el mismo paso de una transcripción de sesión. Las rondas de correlación te dan un id de una transcripción y varios eventos parecidos, y tienes que encontrar el que coincide antes de decidir el veredicto. Fuente: Invictus Incident Response, Frontier Forensics: Anthropic (oct. 2026).

¿Es gratis?

No, es un laboratorio Pro. Con una cuenta gratuita tienes 3 usos de prueba; después necesitas Pro.

🖤 Black Friday: new customers get 3 months of Pro for $5, then $5/month. Ends 30 Nov. Claim 3 months for $5 →