Laravel AI SDK 1.1.0 est sortie le 7 octobre 2026. Il s’agit de la première version mineure depuis 1.0. Elle ajoute des fonctions pour les agents et modifie la sélection des fournisseurs lors d’un failover.
composer require laravel/ai:^1.1Le SDK prend désormais en charge Agent Skills, un format en dossiers qui permet aux agents de codage de charger les consignes uniquement lorsqu’une tâche les requiert. Chaque compétence se trouve sous resources/skills et contient un fichier SKILL.md. Le front matter doit fournir description. name reste facultatif et reprend alors le nom du dossier. L’exemple refund-policy contient aussi references/EDGE-CASES.md. Ses instructions demandent de vérifier la date de la commande avant de traiter un remboursement ou un avoir partiel pour une commande de plus de 30 jours. Pushpak Chhajed indique que l’équipe avait refusé cette prise en charge à deux reprises. Le format est désormais utilisé par de nombreux outils. Les changements correspondent aux PR #1054 et #1102.
Un agent expose ses compétences en implémentant Laravel\Ai\Contracts\HasSkills avec Laravel\Ai\Contracts\Agent et Laravel\Ai\Promptable. Le SDK fournit un seul outil LoadSkill. Celui-ci donne d’abord les noms et les descriptions, puis permet au modèle de demander les instructions complètes ou un fichier du dossier concerné. Une compétence peut venir d’un répertoire, d’un objet Skill construit en PHP ou d’une closure. La closure s’exécute au premier accès du tool et peut donc charger les compétences propres à un utilisateur depuis la base de données. Le chemin .agents/skills permet de partager les mêmes compétences avec un agent de codage.
LoadSkill([...]) peut aussi être ajouté directement à tools(). Si les deux sources sont utilisées, le SDK fusionne les compétences dans un seul outil et journalise un avertissement, car les fournisseurs refusent les noms d’outils en double. Les lectures restent limitées au dossier de la compétence. Les fichiers de plus de 256 KB et les fichiers binaires sont refusés.
Cohere prend maintenant en charge la génération de texte avec son API v2 Chat. Le fournisseur proposait déjà les embeddings et le reranking. Mojtaba Sayari ajoute le streaming, les appels d’outils, les sorties structurées et le raisonnement. Le modèle par défaut est command-a-03-2025. Un agent peut sélectionner Cohere avec prompt('Hello', provider: 'cohere'). Cohere ne sait pas imposer un outil donné. ToolChoice::tool('X') envoie uniquement X et rend son appel obligatoire. Les pièces jointes et les citations ne sont pas encore disponibles. Des options comme documents et safety_mode peuvent toutefois être transmises au fournisseur. Cette évolution figure dans la PR #1078.
Les outils MCP, agent, de recherche de similarité et de système de fichiers implémentent maintenant Approvable. L’application peut appeler requireApproval() sur ces outils intégrés. Pour des outils MCP GitHub, elle peut inspecter annotations()['readOnlyHint'] et demander une validation pour chaque outil qui n’est pas marqué en lecture seule. La validation reste désactivée par défaut. Les agents existants conservent donc leur comportement. La PR #1097 ajoute cette possibilité.
Le failover ne s’arrête plus lorsqu’un fournisseur suivant ne connaît pas l’un des outils du fournisseur précédent. Une exécution utilisant WebFetch et WebSearch pouvait auparavant échouer après le passage d’une requête Anthropic limitée par son quota vers OpenAI. OpenAI renvoyait alors RuntimeException: Provider [openai] does not support the [WebFetch] tool. Avant chaque tentative, la boucle de génération retire désormais les outils incompatibles avec le fournisseur actif. L’exécution peut continuer avec WebSearch. Lorsqu’un fournisseur ne propose pas de recherche d’outils hébergée, le SDK déplie ToolSearch et envoie les outils comme des outils ordinaires. Plusieurs wrappers ToolSearch provoquent toujours une erreur chez tous les fournisseurs. Cette correction est référencée dans la PR #1080.
La classification peut maintenant s’exécuter sur un serveur Laya auto-hébergé provenant de NandhaKishorM/laya, avec le pilote typesafe déjà présent. La connexion laya utilise driver avec la valeur typesafe, une clé issue de LAYA_API_KEY et une URL issue de LAYA_URL. L’URL par défaut est http://localhost:8000/v1. Le modèle par défaut de classification est auto. L’appel prend la forme Classification::of($ticket)->questions($questions)->classify(provider: 'laya'). Les métadonnées de réponse indiquent le checkpoint Laya ayant traité la demande. La PR #1081 couvre cette intégration.
ToolSearch fonctionne maintenant avec Azure OpenAI. Chez Groq, WebSearch correspond à browser_search et CodeExecution à code_interpreter. Groq propose ces deux fonctions uniquement avec ses modèles GPT-OSS et ignore max(), allow() et location() pour WebSearch. WebSearch transmet désormais aussi location à OpenRouter. Les PR #1098 et #1099 portent sur ces adaptations.
Les agents disposent de MoveFile, qui peut renommer ou déplacer un fichier lors d’un seul appel. La PR #1092 supprime la séquence qui consistait à copier puis supprimer le fichier. Les modèles de secours ont été actualisés chez la plupart des fournisseurs. Anthropic utilise désormais claude-sonnet-5-5 par défaut, et Gemini utilise gemini-3.8-flash. Une application qui ne définit pas ses modèles dans config/ai.php recevra ces nouvelles valeurs après la mise à niveau. La PR #1095 regroupe ces changements.
La version corrige aussi la relecture de recherche de fichiers OpenAI sans état dans la PR #1089, le remplacement d’un message utilisateur useChat modifié par la réponse de l’assistant dans la PR #1076, ainsi que l’emplacement incorrect de paramètres de requête ElevenLabs dans la PR #1103. Le guide de migration depuis 1.0 exige maintenant laravel/boost 2.10.0 ou une version ultérieure pour la commande de mise à niveau de Boost. Il signale aussi que le SDK est incompatible avec laravel/mcp avant la version 1.0. Cette mise à jour de documentation correspond à la PR #1087.
Une application existante se met à niveau avec Composer en ajoutant laravel/ai:^1.1.




Commentaires
Pas encore de commentaire — écris le premier.
Lance la discussion
Pas de compte ni de mot de passe — saisis simplement ton adresse e-mail et nous t’envoyons un lien de connexion à usage unique. Première visite ? Tout se met en place automatiquement.
Ton évaluation sera appliquée automatiquement après ta connexion.
Vérifie ta boîte mail
Nous avons envoyé un lien de connexion à …. Ouvre-le sur cet appareil — cet onglet te connectera automatiquement.
Rien reçu ? Vérifiez le dossier spam — et marquez le message « Non spam » pour qu'il arrive directement la prochaine fois.