Blank white background with no objects or features visible.

Te ofrecemos acceso gratuito al informe completo Gartner Hype Cycle for AI Governance 2026. Consigue tu copia →

Observabilidad de agentes de IA: ¿Por qué hizo eso?

Por Ashish Dubey

Actualizado: October 7, 2026

Published: September 22, 2026

⚡ TL;DR
  • Observability for a deterministic service answers “was it up, and how fast.” For an agent it has to answer why did it do that — a question about a decision path, not a response code.
  • The unit of observation is not a request. It is a trajectory: a session containing turns, each turn containing model calls and tool calls, any of which can loop.
  • Standard APM has no concept of a step that decides to call itself again, so the failures that matter — silent retry loops, tools that succeed while returning garbage, a run costing 40x the median — are invisible at request level, obvious at trajectory level.
  • Instrument each level for something different: sessions for cost and turn count, turns for where the time went, model calls for tokens and latency percentiles, tool calls for per-tool error rates.
  • TrueFoundry captures this at the gateway, without instrumenting the agent: session and turn views, span hierarchies carrying cost and token attributes, MCP tool metrics, trace feedback, and OTEL export.

El tiempo de actividad es la pregunta equivocada

Una API de pagos es fácil de observar porque es predecible. La misma entrada produce la misma ruta de código, por lo que tres métricas —tasa de peticiones, tasa de errores y duración— te dicen casi todo. Cuando algo falla, lees un seguimiento de pila (stack trace), y este es un hecho sobre el programa, no una suposición sobre la intención.

Un agente rompe todas las premisas de esa frase. El modelo elige la ruta en tiempo de ejecución, por lo que la misma entrada no produce la misma ruta de código. A menudo no hay error alguno: el agente termina, devuelve texto y todas las llamadas HTTP que realizó devolvieron un 200. Y lo que sale mal no suele ser un bloqueo, sino una decisión : eligió la herramienta incorrecta, volvió a leer un archivo que ya tenía, o siguió reintentando una búsqueda que nunca funcionaría.

Por lo tanto, la pregunta cambia: no es si estaba activo, sino por qué hizo eso. Y el "porqué" es una propiedad de toda la secuencia, no de una única petición; por eso un panel de control puede parecer saludable mientras tu agente falla. Una latencia P99 de 900 ms en cada llamada al modelo no te dice nada sobre una ejecución que realizó 140 de ellas.

La unidad de observación es la trayectoria

Los datos tienen cuatro niveles anidados, de los cuales solo los dos inferiores se parecen a una petición convencional.

Level What it is What can go wrong here Does standard APM see it?
Session One conversation, start to finish Runaway cost, a run that never terminates, context exhaustion No — a session is not a request
Turn One user message and everything done to answer it Nine steps spent on a one-step task No
Model call One inference: prompt in, completion or tool request out Tokens balloon, latency spikes, a bad tool gets picked Partly — as an outbound call
Tool call One MCP or sandbox tool invocation Returns 200 with useless content; slow; loops Partly — as an outbound call

Los dos niveles intermedios contienen el valor y son exactamente los dos que un trazador con alcance de petición no modela. Este ve una dispersión de llamadas salientes sin un padre significativo y no puede decirte que las llamadas de la 11 a la 27 fueron un mismo turno intentando lo mismo siete veces.

Una propiedad hace que esto sea genuinamente diferente del rastreo distribuido: cualquier nivel puede entrar en bucle. No hay equivalente en un gráfico de servicio normal: A llama a B, B llama a C, y si A se llama a sí mismo, tienes un error. En un agente, un paso que decide llamarse a sí mismo de nuevo es el caso normal, y la única forma de distinguir un bucle productivo de uno bloqueado es leer la secuencia.

Qué instrumentar en cada nivel

Cada nivel necesita sus propias señales. Recopilar todo en todas partes produce datos sin conocimiento, así que esto es lo mínimo que realmente aporta valor.

Level Capture The signal you actually use
Session Turn count, duration, cost, tokens, context size, tool-call and sub-agent counts, errors Cost per completed task, and the turn-count distribution — a long tail means the agent cannot tell when to stop
Turn Per-turn tokens, duration, cost; the ordered list of steps taken, with outcomes Where the wall-clock time went: model-bound or tool-bound
Model call Prompt and completion, tokens, cost, latency, time to first token, tool requested Token growth across turns, and how often a requested tool does not exist
Tool call Tool name, arguments, raw result, latency, status Per-tool error rate, and repeat calls with identical arguments inside one turn

La última celda es la señal de mayor rendimiento en la observabilidad de agentes, y casi nadie la registra: la misma herramienta llamada dos veces con los mismos argumentos dentro de un mismo turno es un bucle. Es trivial una vez que los argumentos están en el span. Imposible a partir de métricas agregadas.

Tres fallos que solo aparecen a nivel de trayectoria

Tres patrones cubren casi todos los incidentes en producción.

1. El bucle de reintento silencioso. Un agente busca en una base de conocimientos, no obtiene nada útil, reformula, vuelve a buscar... veinte veces. Cada búsqueda devuelve un 200 en 300 ms, por lo que los paneles de tasa de solicitudes y tasa de errores muestran un pequeño pico de tráfico y nada más. A nivel de sesión es inconfundible: un turno, veinte llamadas a herramientas, dos minutos de duración. El diagnóstico no está en ningún span individual; está en la repetición.

2. La herramienta que tiene éxito mientras devuelve basura. Una herramienta de recuperación de documentos se topa con un muro de permisos y devuelve un educado 200 cuyo cuerpo es una página de inicio de sesión HTML. El modelo lo lee e informa de que dicha política no existe. Cero errores en cualquier parte. La única forma de detectar esto es capturar el resultado bruto, razón por la cual la captura de resultados, y no solo los códigos de estado, es fundamental.

3. La ejecución 40x. El coste medio de una sesión es de 0,04 $; una sesión costó 1,60 $ y nada falló. Un solo paso volvió a leer un archivo grande en el contexto, ese archivo se arrastró en cada turno posterior y los tokens de entrada se acumularon durante el resto de la ejecución. Se encuentra ordenando las sesiones por coste y leyendo los recuentos de tokens por turno de los valores atípicos hasta ver el cambio de paso. Nunca en una media.

El patrón común en los tres: la anomalía es una relación entre pasos. Una herramienta que almacena los pasos de forma independiente ha descartado lo que necesitas.

Want to see a trajectory, not a log line?
Run one agent through a gateway and open the session.

Cómo funciona esto en TrueFoundry

Esto se puede capturar sin instrumentar el código de tu agente porque la aplicación y la observación ocurren en el mismo lugar. Cada llamada a modelos y herramientas pasa por una pasarela, por lo que la trayectoria se registra como un efecto secundario de su servicio: nada se reconstruye a partir de registros dispersos y no hay forma de evitarlo.

Sesiones: la parte superior de la jerarquía

Para los agentes en el harness de agentes de TrueFoundry, Sesiones enumera cada conversación en todos los agentes: mensaje inicial, agente, número de turnos, coste, duración. Suficiente para detectar ejecuciones costosas o demasiado largas sin abrir nada, que es exactamente lo que requiere el modo de fallo 3.

Agent Sessions list showing each conversation with its agent, turn count, cost and duration
Lista de sesiones de agente que muestra cada conversación con su agente, número de turnos, coste y duración

Detalle de la sesión: turnos, línea de tiempo, transcripción

Abrir una sesión proporciona los tres elementos que requiere la jerarquía. Las métricas agregadas cubren turnos, duración, coste, tokens, contexto, llamadas a herramientas, subagentes y errores. Una línea de tiempo basada en eventos desglosa la ejecución en segmentos de sistema, usuario, modelo y llamadas a herramientas por turno; un turno dominado por el color de llamada a herramienta está vinculado a herramientas, uno dominado por el color del modelo está vinculado al modelo, visible de un vistazo en lugar de calculado. Debajo se encuentra la transcripción, con tokens por turno, duración y coste, y un panel desplegable de pasos del agente que enumera las llamadas a herramientas en orden con sus resultados.

Agent session detail with summary metrics, event-type timeline and turn-by-turn transcript showing expanded agent steps
Detalle de la sesión del agente con métricas resumidas, línea de tiempo de eventos y transcripción turno a turno que muestra los pasos del agente expandidos

Esa lista ordenada de pasos es donde un turno cancelado, un servidor MCP fallido o un resultado de herramienta vacío se vuelven visibles. Una sesión puede reanudarse como un chat en vivo desde la misma vista: así es como confirmas una corrección.

Spans: dentro de una única llamada

Un nivel más abajo, un seguimiento es una jerarquía real de spans, no un registro plano. Una única finalización de chat con un guardrail de PII adjunto produce cinco spans: una raíz ChatCompletion sin padre, un span de Guardrail debajo, la llamada saliente del guardrail debajo de ese, un span de Modelo y la llamada saliente del modelo debajo de ese.

Chat completion trace showing a five-span hierarchy including guardrail processing
Seguimiento de finalización de chat que muestra una jerarquía de cinco spans, incluido el procesamiento del guardrail

Los atributos de los spans hacen que el coste y la latencia sean atribuibles en lugar de estimados. El span raíz contiene tfy.model.metric.cost_in_usd, input_tokens, output_tokens, latency_in_ms, time_to_first_token_in_ms e inter_token_latency_in_ms, junto con tfy.input, tfy.output y tfy.triggered_guardrail_fqns, y cada span registra el sujeto que lo creó. Los spans se pueden consultar: client.traces.query_spans(...) con un filtro de trace_ids y una ventana de tiempo devuelve toda la jerarquía, paginada; así es como pasas de "esta sesión fue costosa" a "este span fue costoso".

La ejecución del guardrail aparece como su propio span con resultado, latencia y hallazgos, y las solicitudes bloqueadas también se rastrean: una llamada denegada es evidencia, no un vacío.

Request Traces with a guardrail span selected, showing latency, result and findings
Seguimientos de solicitudes con un span de guardrail seleccionado, que muestra latencia, resultado y hallazgos

El nivel de llamada al modelo

Los agregados se encuentran en el Panel de métricas. Las métricas del modelo incluyen tokens de entrada y salida, recuento de solicitudes y coste total, además del rendimiento, la tasa de fallos y el desglose de fallos por tipo de error. La latencia se presenta en P50, P75, P90 y P99 a través de cuatro medidas: latencia de extremo a extremo, tiempo hasta el primer token, latencia entre tokens y tiempo por token de salida, lo cual es importante porque un primer token lento y un flujo de tokens lento tienen causas diferentes.

Model Metrics tab with requests per second, failure rates, latency percentiles and token cost charts
Pestaña de métricas del modelo con gráficos de solicitudes por segundo, tasas de fallos, percentiles de latencia y coste de tokens

Cada gráfico se puede pivotar mediante un Ver por selector: modelos, modelos virtuales, usuarios, cuentas virtuales, equipos o claves de metadatos personalizados enviados como cabeceras de solicitud. Planifique los metadatos con antelación: envíe un nombre de agente o un ID de ejecución y obtendrá vistas de coste y latencia por agente sin tener que desarrollar nada.

El nivel de llamada a herramientas

Las llamadas a herramientas reciben el mismo tratamiento a través de las métricas MCP, la parte que la mayoría de las configuraciones centradas en LLM omiten. La vista de servidores ofrece rendimiento por servidor, percentiles de latencia, tasa de fallos y desglose de errores, además de un desglose de llamadas a métodos en tools/list, tools/call, resources/list y el resto. Un agente que consume solicitudes en repetidas llamadas a tools/list tiene un problema de descubrimiento, no un problema de tareas.

MCP Metrics servers view with per-server request rates, latency and method call breakdown
Vista de servidores de métricas MCP con tasas de solicitud por servidor, latencia y desglose de llamadas a métodos

La vista de herramientas profundiza en herramientas individuales en todos los servidores: solicitudes por segundo, percentiles de latencia, tasa de fallos por tipo de error, un resumen de latencia comparativo y herramientas clasificadas por recuento de solicitudes. Esa clasificación es la forma más rápida de detectar una herramienta en la que el agente se apoya más de lo que esperaba.

MCP Metrics Tools view with per-tool request rates, latency and failure rates
Vista de herramientas de métricas MCP con tasas de solicitud por herramienta, latencia y tasas de fallos

Los filtros persisten entre pestañas, por lo que restringir a un usuario en la pestaña del modelo mantiene ese filtro al cambiar a MCP; así es como puede saber si sus sesiones lentas son un problema del modelo o de la herramienta sin tener que reconstruir la consulta.

Metrics dashboard filtered to a specific user and model
Panel de métricas filtrado por un usuario y modelo específicos

Vistas por agente y por salto

Los agentes registrados obtienen un panel que cubre el recuento de solicitudes, los percentiles de latencia, las tasas de error y el uso a lo largo del tiempo, idéntico tanto si el agente se ejecuta en Bedrock, LangGraph o un servicio personalizado.

Agent Metrics dashboard with request volume, latency and failure rates per registered agent
Panel de métricas del agente con volumen de solicitudes, latencia y tasas de fallos por agente registrado

Los mismos datos se pueden consultar: la API de métricas expone una fuente de datos agentMetrics que devuelve resultados de distribución o series temporales agrupados por agentName, agentFramework o agentServerType, con agregaciones de percentiles en latencyMs. En sistemas multiagente, Trazas de solicitud registra qué agente realizó cada llamada y para qué usuario actuó; es la atribución que permite rastrear la llamada a una herramienta de un subagente hasta una persona.

Request Traces for a remote A2A agent showing the JSONRPC request and response
Trazas de solicitud para un agente A2A remoto que muestran la solicitud y respuesta JSONRPC

Una limitación honesta: una vista completa de la cadena de actores que conecta usuario → agente → subagente → herramienta en una sola traza renderizada estará disponible pronto, al igual que la detección de desviaciones, las alertas de anomalías y la suspensión de agentes con un solo clic. Actualmente, obtienes atribución por salto en cada traza en lugar de la cadena representada como una sola imagen.

Calidad: comentarios adjuntos a las trazas

La latencia y el coste son medibles; la calidad de la respuesta no, por lo que los comentarios deben ir en la traza y no en una tabla separada. Cada respuesta de la pasarela devuelve una cabecera x-tfy-feedback-target-id. Env ía eso a /api/svc/v1/gateway-feedback con una valoración del 1 al 5 y un comentario opcional, y aparecerá junto al span y en los datos sin procesar bajo tfyGatewayFeedbacks, pudiendo actualizarse o eliminarse mediante su ID devuelto. El ID de destino actualmente se refiere al span raíz, por lo que los comentarios se aplican a la solicitud, no a un subpaso.

Feedback shown against a trace span with a star rating
Comentarios mostrados junto a un span de traza con una valoración por estrellas

Conecta eso a un control de pulgar hacia arriba en tu producto y las sesiones atípicas obtendrán una etiqueta de calidad, convirtiendo "esta ejecución costó 40 veces más" en "esta ejecución costó 40 veces más y el usuario la valoró con un 2".

Exportación: mantén tu backend actual

Nada de esto requiere abandonar la infraestructura que ya tienes. La pasarela es compatible con OpenTelemetry, y las trazas y métricas se exportan de forma independiente; ambas se configuran en AI Gateway → Controls → Settings → OTEL Config, a través de HTTP o gRPC, con codificación proto o json y cabeceras de autenticación arbitrarias. Los backends que esperan métricas codificadas en delta, como Datadog y CloudWatch, necesitan el conmutador Export Delta Metrics además de una variable de entorno de temporalidad en el despliegue de la pasarela. Prometheus puede realizar scraping de /metrics en pasarelas autohospedadas.

OpenTelemetry trace flow: traces stored by TrueFoundry and exported to an external backend

Flujo de trazas de OpenTelemetry: trazas almacenadas por TrueFoundry y exportadas a un backend externo

La exportación es aditiva, no una transferencia: TrueFoundry sigue almacenando las trazas en cualquier caso, por lo que las vistas de sesiones y spans dentro del producto permanecen disponibles mientras Grafana o Datadog reciben los mismos datos.

OTEL Config form for exporting spans, with HTTP or gRPC endpoint, encoding and headers
Formulario de configuración de OTEL para exportar spans, con endpoint HTTP o gRPC, codificación y cabeceras

Un ejemplo práctico: encontrar la ejecución 40x

Copiloto de soporte, una semana en producción. Finanzas pregunta por qué la factura se ha triplicado.

Empieza a nivel de sesión. Ordena por coste. La mediana es de unos pocos céntimos; cuatro sesiones superan el dólar, todas con un número de turnos de un solo dígito; por lo tanto, no se trata de conversaciones largas, sino de turnos individuales que consumen demasiado.

Abre una y lee la cronología. El turno 3 está casi totalmente coloreado por llamadas a herramientas. Llamadas a herramientas: 31. Errores: 0. No falló nada, por eso no se activó ninguna alerta.

Despliega los pasos del agente para el turno 3. La lista ordenada muestra una herramienta de obtención de documentos llamada repetidamente, y los tokens por turno aumentan drásticamente a partir del turno 3 sin volver a bajar: un documento grande entró en el contexto y permaneció allí.

Confirma a nivel de herramienta. En las métricas de MCP, en la vista de herramientas, esa herramienta encabeza el ranking de número de solicitudes por un amplio margen y tiene el peor p90.

Corrige y luego verifica. Tanto si la solución es una herramienta más específica, paginación o un cambio en el prompt indicando al agente que ya tiene el archivo, la verificación es la misma: filtra las sesiones de ese agente para el día siguiente y comprueba que la distribución de costes se ha estabilizado. Si has configurado la retroalimentación, comprueba si los valores atípicos también fueron las ejecuciones mal valoradas; normalmente lo son.

Metrics Dashboard overview with cost, LLM and MCP call counts and usage leaderboards
Vista general del panel de métricas con costes, recuento de llamadas a LLM y MCP, y tablas de clasificación de uso

Cinco pasos, sin instrumentación personalizada, cada uno de ellos una pregunta sobre la trayectoria.

Ready to debug a real trajectory?
Point one agent at the gateway, run it, and sort your sessions by cost.

Cosas a tener en cuenta

Las métricas del agente incluyen todas las solicitudes de puerta de enlace por defecto. Las filas que no pasaron por un agente devuelven null para agentName, agentFramework y agentServerType, y aparecen como buckets nulos en la salida de groupBy. IS_NULL no es compatible con esos tres campos, así que utiliza un ámbito con agentName IN [...] o un operador STRING_*.

La exportación de trazas y métricas se configura por separado. El exportador de trazas solo envía trazas, y el de métricas solo métricas. Habilitar uno y asumir que el otro le seguirá es una forma común de terminar con una visión incompleta.

Planifica los metadatos antes de necesitarlos. Las claves de metadatos personalizadas enviadas como cabeceras de solicitud se convierten en una Ver por dimensión en todo el panel de control. Añadir un nombre de agente, entorno o ID de ejecución desde el principio no cuesta nada; adaptarlo después significa que los datos del trimestre pasado no podrán segmentarse de esa manera.

Lecturas relacionadas

Conclusión

La tentación con la monitorización de agentes es añadir un agente a los paneles que ya tienes, observar el percentil 99 y la tasa de errores, y darlo por observado. Eso funciona hasta el primer incidente, cuando descubres que la ejecución que agotó tu presupuesto devolvió un 200 en cada salto y no aparece en ningún gráfico.

La solución no es tener más métricas, sino una unidad de observación diferente. Registra la trayectoria —sesión, turno, llamada al modelo, llamada a herramienta, con argumentos y resultados en los spans— y los tres fallos que realmente ocurren se vuelven evidentes: un bucle es una llamada repetida con argumentos idénticos, un mal resultado de una herramienta es visible porque lo conservaste, y una ejecución 40x es el valor atípico que ordenas para ver primero.

Trace your first agent trajectory on TrueFoundry

Try now.

One gateway for all your models, MCP servers, and agents.
No credit card needed.

Inscríbase
Tabla de contenido

Controle, implemente y rastree la IA en su propia infraestructura

Reserva 30 minutos con nuestro Experto en IA

Reserve una demostración

La forma más rápida de crear, gobernar y escalar su IA

Demo del libro
Summarize with
ChatGPT logo by OpenAI
Perplexity AI logo
Blurry red snowflake on white background, symmetrical frosty design with soft edges and abstract shape.

Descubra más

No se ha encontrado ningún artículo.
November 6, 2026
|
5 minutos de lectura

Guardrails for Claude: PII Redaction and Prompt-Injection Defense

No se ha encontrado ningún artículo.
November 6, 2026
|
5 minutos de lectura

Caché de prompts de Claude: la matemática real del coste

No se ha encontrado ningún artículo.
November 6, 2026
|
5 minutos de lectura

Claude vs ChatGPT para empresas: seguridad, coste y control

No se ha encontrado ningún artículo.
November 6, 2026
|
5 minutos de lectura

Claude API Pricing: A Model-by-Model Cost Breakdown

No se ha encontrado ningún artículo.
No se ha encontrado ningún artículo.

Blogs recientes

Black left pointing arrow symbol on white background, directional indicator.
Black left pointing arrow symbol on white background, directional indicator.

Preguntas frecuentes

¿Qué es la observabilidad de agentes de IA?

Registrar la trayectoria de ejecución completa de un agente —sesiones, turnos, llamadas a modelos y llamadas a herramientas, con argumentos, resultados, tokens, coste y latencia— para poder responder por qué se comportó como lo hizo. Se diferencia de la monitorización de aplicaciones en la unidad de observación: una solicitud tiene un principio y un final, mientras que una trayectoria es una secuencia anidada en la que cualquier nivel puede entrar en bucle.

¿En qué se diferencia la observabilidad de agentes de la observabilidad de LLM?

La observabilidad de LLM es un subconjunto que cubre la llamada al modelo: prompt, respuesta, tokens, latencia y coste. La observabilidad de agentes añade todo lo que la rodea: qué herramientas se ejecutaron, en qué orden, con qué argumentos y resultados, y cuántas vueltas dio un turno antes de detenerse. La mayoría de los fallos reales están en esa estructura, no en una única respuesta.

¿Necesito instrumentar el código de mi agente para el trazado de agentes?

No si el tráfico de modelos y de herramientas ya pasa por un gateway, puesto que este registra cada salto como efecto secundario de atenderlo. La instrumentación con SDK a nivel de framework añade pasos internos de razonamiento que el gateway nunca ve, de modo que ambas son complementarias, no alternativas.

¿Puedo desplegar TrueFoundry en mi propia VPC o en on-prem?

Sí: en VPC, on-prem, entornos air-gapped, híbridos o en varias nubes, sin que ningún dato salga de su dominio.

¿Admite TrueFoundry MCP y agentes de IA en general?

Sí. Incluye un MCP Gateway, un Agent Gateway y un MCP & Agents Registry con control de acceso a nivel de herramienta. Los agentes creados con LangGraph, CrewAI, AutoGen o un framework propio pueden gobernarse de forma centralizada.

¿Se integra con mi pila de observabilidad existente?

Sí. La pasarela es compatible con OpenTelemetry y se integra con Grafana, Datadog, Prometheus o tu pila preferida. Rastrea cada solicitud desde la instrucción (prompt) hasta la ejecución de la herramienta y el modelo, así obtienes un registro unificado sin tener que reemplazar lo que ya tienes en funcionamiento.

Realice un recorrido rápido por el producto
Comience el recorrido por el producto
Visita guiada por el producto