Dalla validazione dei dati agli agent
Il 2 dicembre 2024 Samuel Colvin, creatore della libreria Pydantic, annuncia Pydantic AI, un framework per costruire agenti basati su LLM con un modello di programmazione fortemente tipizzato. Il progetto eredita direttamente la filosofia di Pydantic v2 — validazione runtime guidata da type hint — e la estende al dominio agentico. La licenza è MIT.
Pydantic è diventato uno standard de facto nell’ecosistema Python: è integrato in FastAPI, utilizzato internamente da OpenAI, Anthropic, LangChain e numerose altre librerie AI per la definizione di schema. Pydantic AI capitalizza questa posizione proponendo un framework agent che usa i modelli Pydantic come lingua franca per input, output e tool.
Structured outputs validati
La caratteristica distintiva di Pydantic AI è la validazione degli output strutturati. Un agent dichiara il proprio tipo di ritorno come classe Pydantic e il framework si occupa di vincolare il modello linguistico a produrre risposte conformi allo schema. La validazione avviene al bordo: se l’output del modello non è valido, il framework effettua un retry automatico con messaggio di errore strutturato verso il modello.
Il meccanismo si appoggia ai function calling nativi dei provider sottostanti, ma mantiene un’astrazione unificata. Lo stesso codice agent funziona su OpenAI, Anthropic, Google Gemini, Groq, Mistral e Ollama senza modifiche, con conversione automatica dello schema Pydantic nel formato atteso dal provider.
Dependency injection e tool tipizzati
Pydantic AI introduce un sistema di dependency injection basato su un parametro generico deps_type: le funzioni tool ricevono un contesto tipizzato che può contenere client HTTP, connessioni database, configurazioni e altre risorse. Questa scelta facilita il test e rende espliciti gli effetti collaterali, un pattern mutuato dal mondo FastAPI.
I tool sono funzioni Python decorate: il framework deriva lo schema JSON dei parametri dalle annotazioni di tipo, in modo analogo a come FastAPI deriva lo schema OpenAPI delle route. Lo streaming di risposte parziali è supportato nativamente, con validazione incrementale dei campi man mano che vengono generati.
Osservabilità con Logfire
Pydantic AI si integra nativamente con Logfire, la piattaforma di osservabilità sviluppata dallo stesso team. Logfire offre tracing distribuito basato su OpenTelemetry e permette di ispezionare le chiamate ai modelli, il consumo di token e la catena di decisioni dell’agent. L’integrazione non è obbligatoria: Pydantic AI espone hook standard OpenTelemetry utilizzabili con qualsiasi backend.
Link: ai.pydantic.dev
