Instalación
pydantic-ai-slim 2.0 a 3.0. La versión 2.0 eliminó Agent(instrument=...) e introdujo el protocolo de capacidades en el que se basa este adaptador, por lo que la versión 1.x no puede instrumentarse de esta manera.
Instrumentar
root_capability, por lo que no existe un atributo agent.capabilities que puedas leer directamente.
Los agentes construidos mientras está activa la instrumentación conservan la capacidad, así que puedes ejecutar uninstrument() y volver a instrumentar sin necesidad de reconstruirlos.
Qué se registra
No hay par de hooks ni par de intervención humana. Pydantic AI no tiene un límite de nodo o paso que delimitar ni una pausa humana integrada, por lo que no hay nada que mapear. Si construyes alguno de estos, emite los eventos manualmente — consulta Agentes personalizados.
El
output_type no afecta la traza. Una ejecución tipada y una ejecución de cadena producen los mismos eventos.
Ejemplo
restock_eta aparece como un tool_result con un error, seguido de otra llamada al modelo donde el agente lo resuelve, y la ejecución termina igualmente con success. Ambos hechos quedan registrados.
Errores, reintentos y flujo de control
Pydantic AI lanza excepciones por tres motivos diferentes, y el adaptador los distingue:ModelRetry pertenece deliberadamente al primer grupo. Significa que un intento falló genuinamente y se pidió al modelo que lo intentara de nuevo, que es exactamente para lo que sirve el campo de error de un span de herramienta. Clasificarlo como flujo de control ocultaría fallos reales de herramientas detrás de una ejecución exitosa.
Nombra tus spans
El span de ejecución propio de Pydantic AI se llamaagent. Envuelve la llamada para asignarle una etiqueta personalizada:
inventory, y ahí es donde se ubican los eventos del modelo y las herramientas.
Mantén agent_id con baja cardinalidad. Es la faceta principal en todas las vistas del panel, así que usa un nombre de rol, nunca un UUID ni una cadena por ejecución.
Controla la sesión
Se resuelve en este orden, ganando la primera coincidencia:instrument("pydantic_ai", session_id=...)- El alcance del
failproofai_sdk.session()envolvente - El
conversation_idde la ejecución, luego surun_id - Un
uuid4().hexgenerado automáticamente
Opciones
Problemas comunes
La ejecución funciona pero no aparecen eventos
La ejecución funciona pero no aparecen eventos
El
Agent fue construido antes de que se ejecutara instrument(). Consulta la advertencia anterior y verifica agent.root_capability.capabilities.Una excepción simple en una herramienta detiene la ejecución
Una excepción simple en una herramienta detiene la ejecución
Un
raise sin más se propaga; así está diseñado Pydantic AI. Para que el modelo pueda resolverlo, lanza ModelRetry con un mensaje que pueda procesar. El fallo queda registrado en cualquier caso.Hay un span anidado de agente que no creé
Hay un span anidado de agente que no creé
Ese hijo es el span de ejecución propio de Pydantic AI, y es donde se ubican los eventos del modelo y las herramientas. Elimina tu propio alcance si quieres un único span, a cambio de perder el nombre personalizado.
Los tracebacks comienzan con un marcador de truncamiento
Los tracebacks comienzan con un marcador de truncamiento
La pila del grafo asíncrono de Pydantic AI es más larga que el límite del campo de payload, y la última línea de un traceback es la excepción en sí. Este campo se recorta desde el principio en lugar del final, por lo que la línea que necesitas se conserva.
Siguiente
Cómo funciona
Pares, identificadores, ciclo de vida de la sesión y entrega.
Leer una traza
Sigue la causalidad a través de la sesión que acabas de capturar.
Otros frameworks
LangGraph, CrewAI, LlamaIndex y agentes personalizados.

