Laravel AI SDK 1.1 : vos agents apprennent les Skills

Publié le 13 octobre 2026 par Mathieu De Gracia
Couverture de l'article Laravel AI SDK 1.1 : vos agents apprennent les Skills

Publiée le 7 octobre 2026, la version 1.1.0 du Laravel AI SDK apporte la prise en charge du standard Agent Skills permettant de fournir des instructions à un agent quand une tâche en a réellement besoin !

Les skills en quelques mots

Un skill est un simple dossier contenant un fichier SKILL.md : un en-tête de quelques lignes décrivant le skill suivi d'instructions rédigées en markdown.

Le dossier du skill peut également contenir des fichiers annexes comme de la documentation, des références ou des exemples de code et de réponses.

Le format fut initialement conçu par Anthropic avant d'être publié comme standard ouvert, il est aujourd'hui pris en charge par la plupart des agents de code : Claude Code, Cursor, Codex, Gemini ... ou encore Laravel Boost !

Tout l'intérêt d'un skill repose sur son chargement progressif : l'agent ne connaît d'abord que le nom et sa description, juste assez pour déterminer quand est-ce que le skill lui sera utile.

Lorsque qu'une tâche semble correspondre à une description, l'agent peut alors charger les instructions complètes du skill afin de l'utiliser.

Un agent peut ainsi disposer de nombreux skills sans que son contexte global n'explose : seuls les skills dont il a réellement besoin seront chargés.

Écrire son premiers skills

Imaginons une marketplace de livres d'occasion sur laquelle des magasins indépendants peuvent vendre leurs ouvrages, cette application possède un agent permettant de répondre aux questions des acheteurs.

Nos skills prennent place dans le dossier resources/skills à raison d'un dossier par skill :

Le fichier SKILL.md du skill order-return contient les instructions lorsqu'un acheteur souhaite retourner un livre :

resources/skills/order-return/SKILL.md
---
name: order-return
description: Use when a buyer wants to return a book or asks for a refund.
---
Instructions · lues à la demande

Check the delivery date first. Returns are accepted within 14 days after delivery.

If the buyer reports a damaged book, read references/DAMAGED-BOOKS.md before answering.

Never promise a refund yourself: create a return request and tell the buyer that the seller has 48 hours to answer.

Cette description est extrêmement importante car c'est la seule information que possède l'agent pour décider si oui ou non il doit charger le skill pour répondre à une demande.

Il ne reste plus qu'à déclarer ces skills auprès de notre agent en implémentant le nouveau contrat HasSkills :

1namespace App\Ai\Agents;
2 
3use Laravel\Ai\Contracts\Agent;
4use Laravel\Ai\Contracts\HasSkills;
5use Laravel\Ai\Promptable;
6 
7class OrderSupportAgent implements Agent, HasSkills
8{
9 use Promptable;
10 
11 public function instructions(): string
12 {
13 return 'You are a support agent for a second-hand book marketplace.';
14 }
15 
16 public function skills(): iterable
17 {
18 return [
19 resource_path('skills'),
20 ];
21 }
22}
💡

L'outil LoadSkill ne lit que les fichiers situés à l'interieur du dossier d'un skill et refusera les fichiers binaires ainsi que les fichiers dépassant 256 Ko.

Désormais, si un acheteur signale un livre abîmé, notre agent utilisera le skill order-return, puis le fichier DAMAGED-BOOKS.md, pour obtenir toutes les informations nécessaires à la génération d'une réponse !

Des skills construits pendant l'exécution

Un dossier de fichiers markdown peut parfaitement convenir à un ensemble de règles communes à l'application, mais certaines instructions dépendent parfois de l'exécution elle même.

Par exemple, sur notre marketplace, chaque vendeur pourrait fixer ses propres conditions de retour. Certains acceptent les retours pendant un mois, d'autres refusent ceux des éditions anciennes ... et ces conditions, saisies par les vendeurs, sont stockées en base de données.

Pour répondre à ce besoin, la méthode skills accepte également des instances de Skill construites directement en PHP :

1namespace App\Models;
2 
3use Illuminate\Database\Eloquent\Model;
4use Laravel\Ai\Skills\Skill;
5 
6class Seller extends Model
7{
8 public function toSkill(): Skill
9 {
10 return new Skill(
11 name: 'seller-return-policy',
12 description: "Use when the buyer asks about {$this->shop_name}'s own return conditions.",
13 instructions: $this->return_policy,
14 );
15 }
16}

Désormais, nous n'avons plus qu'à transmettre ce skill à notre agent :

1namespace App\Ai\Agents;
2 
3use App\Models\Order;
4use Laravel\Ai\Contracts\Agent;
5use Laravel\Ai\Contracts\HasSkills;
6use Laravel\Ai\Promptable;
7 
8class OrderSupportAgent implements Agent, HasSkills
9{
10 use Promptable;
11 
12 public function __construct(
13 private Order $order,
14 ) {}
15 
16 public function instructions(): string
17 {
18 return 'You are a support agent for a second-hand book marketplace.';
19 }
20 
21 public function skills(): iterable
22 {
23 return [
24 resource_path('skills'),
25 fn () => [$this->order->seller->toSkill()],
26 ];
27 }
28}
💡

Plutôt que d'interroger la base de données dès la construction de l'agent, nous passons par une closure, que le SDK ne résoudra que lorsque l'outil lira ses skills pour la première fois.

Dès lors, notre agent sera en mesure d'utiliser notre skill en se basant sur les informations du vendeur :

1$response = (new OrderSupportAgent($order))
2 ->prompt('Can I return this book?');

Conclusion

Sur le fond, un skill reste un simple fichier markdown ... et un outil maison permettait déjà de transmettre des instructions à un agent à la demande.

Cette nouvelle version du package apporte surtout un contrat commun dans le SDK, ainsi qu’un format partagé avec tout l’écosystème des agents.

Pour en profiter, une simple mise à jour suffit :

1composer require laravel/ai:^1.1

Pour aller plus loin, vous pouvez également consulter les notes de version, la documentation du SDK ainsi que les PR #1054 et #1102.

Mathieu De Gracia avatar

Écrit par

Mathieu De Gracia

Lead & Software Architect • nublar.dev

Aucun commentaire

Tu veux commenter ? Crée un compte ou connecte-toi.

A lire

Autres articles de la même catégorie