L’équipe Laravel a publié Laravel AI SDK 1.0 le 23 septembre 2026. Ce package officiel fournit une API commune pour utiliser des fournisseurs d’IA dans une application Laravel. Le SDK avait été annoncé pour la première fois en février.

terminal
composer require laravel/ai

La classification devient une capacité distincte, aux côtés du texte, des images, de l’audio et des embeddings. Elle sert à prendre des décisions comme le routage d’un ticket de support ou le signalement d’un commentaire grâce aux modèles Jev de TypeSafe. L’annonce présente Jev comme un système capable de répondre en quelques millisecondes, pour une fraction du coût des LLM traditionnels. Les questions Boolean et Choice renvoient des résultats typés. Score produit une valeur comprise entre 0.0 et 1.0. La macro `Str::decide` traite une question binaire et accepte un seuil de confiance. La classification fonctionne actuellement avec TypeSafe et OpenRouter. D’autres fournisseurs sont prévus.

Le SDK sait recevoir des requêtes et diffuser des réponses avec les protocoles Vercel Chat et AG-UI. Une intégration Vercel peut créer un chat avec `Vercel::chat($request)`, transmettre son historique à un agent et diffuser la réponse avec le protocole choisi. La route met aussi à jour l’historique en base et traite les validations d’outils envoyées par l’utilisateur. Les clients AG-UI comme CopilotKit utilisent `usingAgentUserInteractionProtocol()`. `Vercel::toUiMessages()` reconvertit les messages stockés dans le format du client après le rechargement d’une page.

Un outil qui implémente `Approvable` et utilise le trait `InteractsWithApprovals` peut suspendre un agent jusqu’à la décision d’une personne. Chaque appel en attente expose les arguments choisis par le modèle. L’utilisateur peut autoriser l’appel, le refuser avec une raison visible par le modèle ou modifier ses arguments avant l’exécution. Le mécanisme fonctionne avec les méthodes prompt, stream, queue et broadcast. Laravel News avait déjà présenté cette fonction lors de son arrivée en juillet.

Les middlewares d’agents s’exécutent désormais à chaque étape de génération. Chaque étape prend la forme d’un objet `PendingStep`, modifiable avec des méthodes comme `withModel`, `withTools`, `withoutTools` et `withMaxTokens`. Une application peut ainsi retirer un outil coûteux après sa première utilisation. `ToolSearch` ne charge les outils rarement utilisés que lorsqu’un prompt les réclame, avec une prise en charge d’OpenAI et d’Anthropic. L’outil fournisseur `CodeExecution` exécute du code dans les sandbox d’Anthropic, OpenAI, Azure, Gemini et xAI.

Les messages de conversation utilisent maintenant une seule colonne JSON `steps`, avec une entrée par aller-retour. Chaque résultat d’outil est enregistré avec l’appel qui l’a produit. `promptTokens` et `completionTokens` deviennent `inputTokens` et `outputTokens`. Les valeurs couvrent les comptes complets fournis par chaque fournisseur.

La version 1.0 introduit des changements incompatibles dans le stockage des conversations, les middlewares d’agents, la consommation de tokens et les protocoles de streaming. Les applications qui interrogent directement les colonnes `tool_calls` ou `tool_results` doivent déplacer ces requêtes vers `steps`. Le guide de mise à niveau contient une migration de backfill à exécuter une fois avant le déploiement.

Laravel recommande Laravel Boost pour assister la mise à niveau. La procédure installe `laravel/boost` comme dépendance de développement, lance `php artisan boost:install`, puis utilise `/upgrade-ai-sdk-v1` dans Claude Code, Cursor, OpenCode, Gemini ou VS Code. Boost accompagne l’assistant à travers les changements, étape par étape.