veilletech.fr
14 nov. Feed du jour
#03 LARAVEL Article

Laravel AI SDK 1.4 : un outil plante, l'agent continue

Votre message d'erreur est désormais lu par le modèle.

Laravel AI SDK 1.4.0 renvoie désormais au modèle le message d'une exception levée par un outil, au lieu d'arrêter l'exécution de l'agent. La version change aussi le traitement des erreurs de facturation OpenAI et le nom des erreurs de flux. Plusieurs de ces changements demandent une relecture du code avant la mise à jour.

3 min de lectureintermédiairevidéo 1:20
Partager
Sommaire6 sections
  1. Ce qui se passe
  2. Ce que votre application voit encore
  3. Pourquoi ça compte
  4. Retrouver l'ancien comportement
  5. Le reste de la 1.4
  6. À retenir

Ce qui se passe

Avec Laravel AI SDK 1.4.0, une exception levée dans un outil n'arrête plus l'agent. Avant, elle terminait l'exécution et déclenchait AgentFailed. Maintenant, le SDK l'attrape et renvoie son message au modèle comme un résultat d'outil en échec : le modèle peut expliquer le problème à l'utilisateur ou essayer un autre outil.

Exemple : un outil RefundOrder lève « Order 1234 can no longer be refunded. » Le modèle reçoit un échec d'appel qui porte ce texte, puis décide de la suite. Les outils approuvés qui levaient une exception étaient déjà traités ainsi ; tous les outils se comportent maintenant de la même manière (PR #1191, de Pascal Baljet).

Ce que votre application voit encore

Seule l'exception de l'outil est rattrapée : celle d'un écouteur d'événements fait toujours échouer l'exécution.

Pourquoi ça compte

Un cas métier prévu, comme une commande déjà remboursée, ne fait plus s'effondrer la conversation. Le revers est direct : le texte de l'exception est lu par le modèle, donc envoyé au fournisseur. Écrivez des messages qu'un modèle peut exploiter, sans détail interne ni secret.

Retrouver l'ancien comportement

Si du code dépend de l'arrêt de l'exécution, relancez l'exception depuis un écouteur de ToolFailed, puisque l'exception d'un écouteur, elle, interrompt l'exécution :

PHP
use Illuminate\Support\Facades\Event;
use Laravel\Ai\Events\ToolFailed;

Event::listen(ToolFailed::class, fn (ToolFailed $event) => throw $event->exception);

Le reste de la 1.4

Source : Laravel News, en anglais.