NOUVEAU - Intelligence Artificielle

Pydantic AI et les Frameworks d'Agents Type-Safe en 2026

Comparatif Pydantic AI, Instructor, Marvin pour des pipelines IA robustes avec validation structurée

Ayinedjimi Consultants 15 février 2026 15 min de lecture Niveau Avancé

Table des Matières

1 Introduction : le problème des sorties non structurées

Les grands modèles de langage produisent du texte libre par nature. Cette caractéristique fondamentale pose un problème critique en production : comment garantir qu'un LLM retourne un objet JSON valide, conforme à un schéma précis, avec des champs typés correctement ? En 2026, les applications IA ne se contentent plus de générer du texte -- elles alimentent des bases de données, déclenchent des workflows automatisés et pilotent des agents autonomes. Chaque sortie mal formée provoque une erreur en cascade.

Le parsing artisanal des réponses LLM via regex ou json.loads() est fragile et non maintenable. Les frameworks type-safe résolvent ce problème en imposant une validation structurée des sorties via des modèles Pydantic. Trois bibliothèques dominent cet espace en 2026 : Pydantic AI, Instructor et Marvin. Chacune adopte une philosophie distincte pour atteindre le même objectif : transformer les sorties probabilistes des LLM en données déterministes et typées.

Enjeu central : En production, une sortie LLM non conforme au schéma attendu provoque des erreurs silencieuses, des corruptions de données et des comportements imprévisibles. Les frameworks type-safe éliminent cette classe entière de bugs en validant chaque réponse contre un modèle Pydantic avant qu'elle n'atteigne le code métier.

2 Pydantic AI : agents natifs type-safe

Pydantic AI est le framework officiel d'agents développé par l'équipe Pydantic (Samuel Colvin). Lancé fin 2024 et massivement adopté en 2025-2026, il se distingue par son intégration native avec l'écosystème Pydantic v2 et son architecture orientée agents. Contrairement aux alternatives qui se concentrent uniquement sur l'extraction structurée, Pydantic AI propose un framework complet pour construire des agents conversationnels type-safe avec gestion de dépendances, outils et historique.

Architecture et concepts clés

L'unité fondamentale est l'Agent, qui encapsule un modèle LLM, un type de résultat structuré, des outils et des dépendances injectées. Le système de types est vérifié statiquement par mypy et pyright, garantissant la cohérence à la compilation.

from pydantic_ai import Agent
from pydantic import BaseModel

class CityInfo(BaseModel):
    name: str
    country: str
    population: int
    known_for: list[str]

agent = Agent('openai:gpt-4o', result_type=CityInfo)
result = await agent.run('Décris la ville de Lyon')
# result.data est un CityInfo validé par Pydantic

Système de dépendances et outils

Pydantic AI intègre un système d'injection de dépendances inspiré de FastAPI. Les agents reçoivent un contexte typé (connexion base de données, client API, session utilisateur) qui est accessible dans les outils sans couplage global. Ce pattern permet de tester les agents en isolation avec des mocks typés.

from dataclasses import dataclass

@dataclass
class Deps:
    db: DatabaseConnection
    user_id: int

agent = Agent('openai:gpt-4o', deps_type=Deps)

@agent.tool
async def get_orders(ctx: RunContext[Deps]) -> list[Order]:
    return await ctx.deps.db.fetch_orders(ctx.deps.user_id)

Le support natif du streaming structuré permet de recevoir des résultats partiels validés en temps réel, avec validation incrémentale des champs au fur et à mesure de la génération. L'intégration avec Logfire (l'outil d'observabilité de Pydantic) offre un tracing complet de chaque appel LLM.

3 Instructor : patching transparent des API LLM

Instructor, créé par Jason Liu, adopte une approche minimaliste et élégante : plutôt que de construire un framework entier, il patche les clients LLM existants (OpenAI, Anthropic, Mistral, Cohere, LiteLLM) pour ajouter la validation Pydantic de manière transparente. L'API reste identique à celle du provider, mais les réponses sont automatiquement validées et retentées en cas d'échec.

import instructor
from openai import OpenAI
from pydantic import BaseModel, Field

client = instructor.from_openai(OpenAI())

class ExtractUser(BaseModel):
    name: str
    age: int = Field(ge=0, le=150)

user = client.chat.completions.create(
    model="gpt-4o",
    response_model=ExtractUser,
    messages=[{"role": "user", "content": "Jean a 28 ans"}],
)

Mécanismes de retry et validation

Instructor excelle par son système de retry automatique avec contexte. Quand la validation Pydantic échoue, l'erreur de validation est renvoyée au LLM comme contexte additionnel, lui permettant de corriger sa réponse. Le paramètre max_retries contrôle le nombre de tentatives. Cette boucle de correction est invisible pour le développeur.

Le framework supporte plusieurs modes d'extraction : TOOLS (function calling natif), JSON (mode JSON du modèle), MD_JSON (extraction depuis markdown) et PARALLEL_TOOLS pour extraire plusieurs objets simultanément. Le support du streaming partiel permet de valider les champs au fur et à mesure de la génération, idéal pour les interfaces temps réel.

Instructor brille particulièrement pour les cas d'extraction d'entités depuis du texte non structuré : parsing de CV, extraction de données financières, classification multi-label avec justification. Sa légèreté en fait le choix privilégié pour les projets qui utilisent déjà directement les SDK des providers.

4 Marvin : IA fonctionnelle et décorateurs

Marvin, développé par l'équipe Prefect, adopte une philosophie radicalement différente : faire de l'IA une primitive du langage Python. Plutôt que de manipuler des clients et des messages, Marvin expose des fonctions de haut niveau (marvin.cast, marvin.extract, marvin.classify, marvin.fn) qui transforment les appels LLM en opérations Python idiomatiques.

import marvin

# Cast : convertir du texte en type structuré
city = marvin.cast("la ville lumière", target=CityInfo)

# Extract : extraire une liste d'entités
entities = marvin.extract("Apple et Google dominent le marché", target=str, instructions="noms d'entreprises")

# Classify : classification en enum
sentiment = marvin.classify("Ce produit est excellent", labels=["positif", "négatif", "neutre"])

# fn : fonctions IA avec décorateur
@marvin.fn
def summarize(text: str, max_words: int = 50) -> str:
    """Résume le texte en max_words mots."""

Le décorateur @marvin.fn

Le décorateur @marvin.fn est la fonctionnalité signature de Marvin. Il transforme n'importe quelle fonction Python avec une docstring et des annotations de types en un appel LLM. Le corps de la fonction est ignoré -- seules la signature, la docstring et les types de retour sont utilisés pour construire le prompt. Le résultat est validé par Pydantic si le type de retour est un BaseModel.

Marvin excelle pour le prototypage rapide et les tâches ponctuelles d'extraction, classification ou transformation. Son API fonctionnelle réduit le boilerplate au minimum. Cependant, il offre moins de contrôle sur les prompts, les retries et la gestion multi-provider que Instructor ou Pydantic AI.

5 Comparatif détaillé

Les trois frameworks partagent une base commune -- Pydantic v2 pour la validation -- mais divergent radicalement dans leur approche architecturale, leur surface d'API et leurs cas d'usage cibles.

Critère Pydantic AI Instructor Marvin
PhilosophieFramework d'agents completPatch minimal des SDKIA comme primitive Python
Courbe d'apprentissageMoyenneFaibleTrès faible
Multi-providerOpenAI, Anthropic, Gemini, Groq, Mistral, Ollama20+ providers via LiteLLMOpenAI principalement
Agents / OutilsNatif (Agent, tools, deps)Non (extraction uniquement)Basique (marvin.fn)
Streaming structuréOui, natifOui (Partial)Non
Retry intelligentOuiOui (avec contexte d'erreur)Limité
ObservabilitéLogfire natifVia hooksPrefect intégration
Cas d'usage idéalAgents de productionExtraction structuréePrototypage rapide

Règle de choix : Si vous construisez des agents autonomes avec outils et état, choisissez Pydantic AI. Si vous ajoutez de la validation structurée à un projet existant utilisant directement les SDK, choisissez Instructor. Si vous avez besoin de fonctions IA ponctuelles avec un minimum de code, choisissez Marvin.

6 Intégration avec les systèmes d'agents

En 2026, les architectures multi-agents se généralisent. Les frameworks type-safe s'intègrent à différents niveaux dans ces architectures, depuis la validation des sorties individuelles jusqu'à l'orchestration complète des agents.

Pydantic AI comme orchestrateur d'agents

Pydantic AI permet de construire des graphes d'agents où chaque agent possède un type de résultat distinct. Un agent de routage peut déléguer à des agents spécialisés, chacun avec ses propres outils et dépendances. Le résultat est un pipeline entièrement typé de bout en bout, où les erreurs de type sont détectées avant l'exécution.

# Agent de routage avec délégation type-safe
from pydantic_ai import Agent
from pydantic import BaseModel
from typing import Union

class TechQuery(BaseModel):
    domain: str
    question: str

class SecurityReport(BaseModel):
    severity: str
    findings: list[str]
    recommendations: list[str]

router = Agent('openai:gpt-4o', result_type=TechQuery)
security_agent = Agent('anthropic:claude-sonnet', result_type=SecurityReport)

Instructor dans les pipelines LangGraph

Instructor s'intègre naturellement dans les pipelines LangGraph comme couche de validation. Chaque noeud du graphe peut utiliser un client patché par Instructor pour garantir la structure de ses sorties. Cette approche permet de combiner l'orchestration de LangGraph avec la rigueur de validation d'Instructor, sans imposer un framework d'agents spécifique.

Marvin et les workflows Prefect

Marvin, issu de l'écosystème Prefect, s'intègre nativement dans les workflows d'orchestration de données. Les fonctions @marvin.fn peuvent être encapsulées dans des @task Prefect, bénéficiant automatiquement du retry, du logging et du monitoring de la plateforme. Cette synergie est particulièrement adaptée aux pipelines ETL augmentés par l'IA.

7 Patterns de production

Déployer des pipelines IA type-safe en production exige des patterns spécifiques pour gérer la latence, les erreurs et la montée en charge. Voici les pratiques éprouvées en 2026.

Validation multi-couche

La validation ne doit pas reposer uniquement sur Pydantic. Un pattern robuste combine trois couches : les validators Pydantic pour la structure et les types, les validators métier (via @field_validator et @model_validator) pour les règles business, et une validation sémantique optionnelle par un second LLM pour vérifier la cohérence du contenu.

from pydantic import BaseModel, field_validator

class InvoiceExtract(BaseModel):
    vendor: str
    total_ht: float
    tva_rate: float
    total_ttc: float

    @field_validator('tva_rate')
    def validate_tva(cls, v):
        if v not in [5.5, 10.0, 20.0]:
            raise ValueError(f"Taux TVA invalide: {v}")
        return v

Gestion du fallback multi-modèle

En production, un seul provider ne suffit pas. Le pattern fallback chaîné tente l'extraction avec un modèle principal (GPT-4o), bascule sur un modèle secondaire (Claude Sonnet) en cas d'échec de validation, puis sur un modèle local (Ollama/Llama) en dernier recours. Pydantic AI et Instructor supportent ce pattern via la configuration de modèles multiples.

Cache et déduplication

Les appels LLM sont coûteux. Un cache basé sur le hash du prompt + modèle + schéma élimine les appels redondants. Redis ou DiskCache stockent les résultats validés avec un TTL adapté au cas d'usage. Pour les extractions déterministes (parsing de factures, extraction d'entités), un TTL long (24h+) réduit drastiquement les coûts.

Tests et CI/CD

Le typage statique des trois frameworks permet d'intégrer mypy/pyright dans la CI. Les tests unitaires utilisent des réponses mockées pour valider la logique de parsing sans appels LLM. Les tests d'intégration vérifient la compatibilité avec les API réelles sur un sous-ensemble représentatif de cas. Ce double niveau garantit à la fois la rapidité de la CI et la fiabilité en production.

8 Conclusion et recommandations

L'écosystème des frameworks type-safe pour LLM a atteint une maturité significative en 2026. La validation structurée n'est plus optionnelle -- c'est un prérequis pour tout déploiement en production. Les trois frameworks analysés offrent des approches complémentaires pour résoudre le même problème fondamental : transformer les sorties probabilistes des LLM en données fiables et typées.

Pydantic AI s'impose comme le choix de référence pour les applications nécessitant des agents complets avec outils, dépendances et observabilité. Son intégration native avec l'écosystème Pydantic et Logfire en fait la solution la plus cohérente pour les projets greenfield. Instructor reste incontournable pour les projets existants qui souhaitent ajouter la validation structurée sans refactoring majeur -- son approche par patching est élégante et non invasive. Marvin excelle dans le prototypage et les tâches d'extraction ponctuelles où la concision du code prime.

Les trois frameworks convergent vers un avenir où chaque interaction avec un LLM sera automatiquement validée, typée et traçable. Les recommandations concrètes :

Besoin d'un accompagnement expert ?

Nos consultants en cybersécurité et IA vous accompagnent dans l'implémentation de pipelines IA type-safe avec Pydantic AI, Instructor et Marvin. Devis personnalisé sous 24h.

Références et ressources externes

  • OWASP LLM Top 10 — Les 10 risques majeurs pour les applications LLM
  • MITRE ATLAS — Framework de menaces pour les systèmes d'intelligence artificielle
  • NIST AI RMF — AI Risk Management Framework du NIST
  • arXiv — Archive ouverte de publications scientifiques en IA
  • HuggingFace Docs — Documentation de référence pour les modèles de ML
Ayi NEDJIMI - Expert Cybersécurité & IA

À Propos de l'Auteur

Ayi NEDJIMI • Expert Cybersécurité & IA

Ayi NEDJIMI est un expert senior en cybersécurité offensive et intelligence artificielle avec plus de 20 ans d'expérience en développement avancé, tests d'intrusion et architecture de systèmes critiques. Spécialisé en rétro-ingénierie logicielle, forensics numériques et développement de modèles IA, il accompagne les organisations stratégiques dans la sécurisation d'infrastructures hautement sensibles.

Expert reconnu en expertises judiciaires et investigations forensiques, Ayi intervient régulièrement en tant que consultant expert auprès des plus grandes organisations françaises et européennes. Son expertise technique couvre l'audit Active Directory, le pentest cloud (AWS, Azure, GCP), la rétro-ingénierie de malwares, ainsi que l'implémentation de solutions RAG et bases vectorielles (Milvus, Qdrant, Weaviate) pour des applications IA d'entreprise.

20+Ans d'expérience
100+Missions réalisées
150+Articles & conférences

Conférencier et formateur reconnu en cybersécurité, Ayi anime régulièrement des conférences techniques et participe activement au développement de modèles d'intelligence artificielle pour la détection de menaces avancées. Auteur de plus de 150 publications techniques, il partage son expertise de haut niveau pour aider les RSSI et architectes sécurité à anticiper les cybermenaces émergentes et déployer des solutions IA de nouvelle génération.

Options de lecture

Taille du texte
Espacement
Mode de lecture
Partager