Installazione
pydantic-ai-slim 2.0 to 3.0. La versione 2.0 ha rimosso Agent(instrument=...) e introdotto il protocollo di capacità su cui questo adapter è costruito, quindi la versione 1.x non può essere strumentata in questo modo.
Strumentazione
root_capability, quindi non esiste un attributo agent.capabilities da leggere.
Gli agenti costruiti mentre strumentati mantengono la capacità, quindi puoi uninstrument() e re-strumentare senza ricostruirli.
Cosa viene registrato
Non esiste una coppia di hook e nessuna coppia human-in-the-loop qui. Pydantic AI non ha un confine di nodo o passo da delimitare e nessuna pausa umana integrata, quindi non c’è nulla da mappare. Se ne costruisci uno, emetti gli eventi tu stesso — vedi Agenti personalizzati.
output_type non fa differenza nella traccia. Un’esecuzione tipizzata e un’esecuzione di stringa producono gli stessi eventi.
Esempio
restock_eta appare come un tool_result che contiene un errore, seguito da un’altra chiamata di modello dove l’agente lo aggira, e l’esecuzione termina comunque con success. Entrambi i fatti sono registrati.
Errori, retry e flusso di controllo
Pydantic AI genera eccezioni per tre cose diverse, e l’adapter le separa:ModelRetry è nel primo gruppo deliberatamente. Significa che un tentativo è veramente fallito e il modello è stato chiesto di riprovare, che è esattamente per cosa serve il campo errore di uno span di tool. Classificarlo come flusso di controllo nasconderebbe i veri fallimenti di tool dietro un’esecuzione verde.
Nomina i tuoi span
Lo span di esecuzione proprio di Pydantic AI è denominatoagent. Avvolgi la chiamata per assegnargli un’etichetta che hai scelto:
inventory, e è lì che gli eventi di modello e tool sono collegati.
Mantieni agent_id a bassa cardinalità. È il facet principale su ogni superficie della dashboard, quindi usa un nome di ruolo, mai un UUID o una stringa per-esecuzione.
Controlla la sessione
Risolto in questo ordine, il primo corrispondente vince:instrument("pydantic_ai", session_id=...)- Lo scope
failproofai_sdk.session()che lo contiene conversation_iddell’esecuzione, poi il suorun_id- Un
uuid4().hexgenerato
Opzioni
Problemi comuni
L'esecuzione funziona ma non compaiono eventi
L'esecuzione funziona ma non compaiono eventi
L’
Agent è stato costruito prima che instrument() fosse eseguito. Vedi l’avvertenza sopra e controlla agent.root_capability.capabilities.Un'eccezione semplice in un tool interrompe l'esecuzione
Un'eccezione semplice in un tool interrompe l'esecuzione
Un
raise semplice si propaga; è il design di Pydantic AI. Per consentire al modello di aggirarla, solleva ModelRetry con un messaggio su cui possa agire. Il fallimento è registrato comunque.C'è uno span di agente annidato che non ho creato
C'è uno span di agente annidato che non ho creato
Quel figlio è lo span di esecuzione proprio di Pydantic AI, ed è dove gli eventi di modello e tool sono collegati. Elimina il tuo scope se vuoi un singolo span, al costo del nome personalizzato.
Le traceback iniziano con un marcatore di troncamento
Le traceback iniziano con un marcatore di troncamento
Lo stack del grafo asincrono di Pydantic AI è più lungo del limite del campo payload, e l’ultima riga di una traceback è l’eccezione stessa. Questo campo viene ritagliato dalla parte anteriore piuttosto che da quella posteriore, quindi la riga di cui hai bisogno sopravvive.
Prossimo
Come funziona
Coppie, id, ciclo di vita della sessione e consegna.
Leggi una traccia
Segui la causalità attraverso la sessione che hai appena catturato.
Altri framework
LangGraph, CrewAI, LlamaIndex e agenti personalizzati.

