Accueil / Articles

Cartographier l’écosystème d’IA de Laravel : Prism, LarAgent, Neuron AI et Boost

Des appels simples avec des LLM aux agents complets dans Laravel : ce que Prism, LarAgent, Neuron AI, l’AI SDK et Boost font chacun, avec un exemple RAG pour les questions relatives aux politiques RH.

Éditeur : REACTAPP.TOP9 min de lecture2160 mots

Sources: From Calling an LLM to Building an Autonomous Agent: Mapping Laravel’s AI Ecosystem in 2026

En recherchant « laravel ai » sur Packagist, on est submergé par une liste impressionnante. Des dizaines de packages sont apparus au cours de l’année dernière, chacun se présentant comme le moyen le plus simple d’intégrer des agents IA dans Laravel. Les noms se confondent et les fichiers README semblent tous convaincants, mais une fois que l’on en installe quelques-uns, on s’aperçoit qu’ils résolvent en réalité des problèmes très différents.

De nombreux développeurs ont été déçus par cela. Quelqu’un souhaite simplement une fonction de résumé de texte et finit par intégrer tout un framework d’agents avec une gestion de la mémoire, des appels d’outils et une orchestration en plusieurs étapes dont la fonction n’avait jamais eu besoin. Le résultat est un amas de code générique et une configuration qui prend plus de temps que la fonction elle-même.

Ce qui suit présente les trois acteurs principaux de l’écosystème d’agents de Laravel : Prism, LarAgent et Neuron AI. Il clarifie également deux noms souvent confondus, le Laravel AI SDK et Laravel Boost, et se termine par un cas pratique : un assistant capable de répondre aux questions issues de documents internes de l’entreprise.

De simples appels API à un écosystème

Il y a quelques années, intégrer de l’IA dans une application Laravel se faisait de manière très simple : on utilisait le client HTTP, on envoyait manuellement des requêtes vers l’endpoint d’OpenAI et on analysait soi-même le JSON obtenu. Passer à Anthropic le lendemain signifiait réécrire tout ce code.

L’image a changé. Selon certaines sources, l’équipe principale de Laravel a sorti un SDK officiel d’IA au début de 2026, accompagné de la prise en charge de Boost et de MCP, dans le cadre d’une suite plus large dédiée à l’IA avec Laravel. Plus de choix entraîne une fatigue décisionnelle accrue, il est donc essentiel d’avoir un modèle mental clair : quand a-t-on besoin d’un framework d’agents, et quand suffit l’outil le plus simple ?

L’écosystème évolue également rapidement. Un paquet populaire ce mois-ci peut rester stagnant en six mois, tandis qu’un autre devient la préférence de la communauté. Plutôt que de mémoriser les noms, apprenez la catégorie de problèmes que chaque outil résout. Si vous identifiez correctement la catégorie, choisir un outil devient facile, même si un nouveau apparaît le mois suivant.

Appeler un LLM versus disposer d’un agent

La plupart des confusions commencent ici. De nombreux développeurs pensent que l’utilisation de l’IA signifie nécessairement l’utilisation d’un agent, or ces deux concepts relèvent de niveaux de complexité très différents.

  • Appeler un LLM est simple : une requête, une réponse. Imaginez la création d’une description de produit ou la rédaction d’un résumé d’article en trois phrases. L’échange se fait dans un seul sens et aucune décision n’est prise au cours de ce processus.
  • Un agent procède par plusieurs étapes. Il décide quand utiliser un outil, quand poser une question supplémentaire, quand récupérer des données dans une base de données avant de répondre, ainsi que du moment où la tâche est terminée. Il s’agit d’un cycle de décisions et non d’un simple cycle demande-réponse.

Si le besoin relève du premier type, recourir à un framework d’agent, c’est comme louer un conteneur de transport pour transporter des provisions pour une semaine. Cela fonctionne, mais c’est un gaspillage d’efforts, et c’est précisément là que Prism devient utile.

Prism : la couche de base pour communiquer avec un LLM

Prism est le plus léger des trois. Il s’agit purement d’une couche d’abstraction. Vous écrivez du code une seule fois et vous changez de fournisseur, que ce soit OpenAI, Anthropic, Gemini, Mistral, Ollama ou d’autres, sans modifier la structure de votre code. La génération de texte de base se fait de cette manière :

use Prism\Prism\Facades\Prism;
use Prism\Prism\Enums\Provider;

$response = Prism::text()
    ->using(Provider::Anthropic, 'claude-3-7-sonnet-latest')
    ->withSystemPrompt('You are an assistant who explains technical terms in plain language.')
    ->withPrompt('Explain what dependency injection is.')
    ->asText();

echo $response->text;

Sa qualité appréciable réside dans une interface cohérente entre les différents fournisseurs. Passer d’Anthropic à OpenAI signifie modifier uniquement l’appel using(), rien de plus. Il prend également en charge les sorties structurées, les appels de bases aux outils, ainsi que les entrées d’images et de documents.

Cependant, gardez à l’esprit ses limites. Prism n’est pas conçu pour gérer des états longue durée ou des workflows autonomes à plusieurs étapes. Si vous souhaitez une intelligence artificielle qui semble vivante, dotée de mémoire et capable d’agir au fil d’une série de décisions, Prism seul ne suffira pas. C’est là que LarAgent entre en jeu.

LarAgent : des agents construits comme des modèles Eloquent

LarAgent adopte une approche immédiatement familière aux développeurs Laravel : vous définez un agent de manière similaire à la définition d’un modèle Eloquent. Il existe une commande artisan, une structure de classe et une configuration aux accents clairement Laravel.

namespace App\AiAgents;

use LarAgent\Agent;
use LarAgent\Attributes\Tool;

class SupportAgent extends Agent
{
    protected $model = 'gpt-4o';
    protected $history = 'in_memory';
    protected $provider = 'default';

    public function instructions()
    {
        return 'You are a support agent that helps users track their order status.';
    }

    #[Tool('Get order status by invoice number')]
    public function getOrderStatus($invoiceNumber)
    {
        return Order::where('invoice', $invoiceNumber)->first()?->status ?? 'Order not found';
    }
}

Par la suite, il est possible d’appeler l’agent pour un utilisateur spécifique, l’historique de la conversation étant enregistré automatiquement :

use App\AiAgents\SupportAgent;

SupportAgent::forUser(auth()->user())->respond($userMessage);

Comparez cela avec Prism. Ici, un outil est enregistré via l’attribut #[Tool], et l’agent lui-même décide quand l’appeler en fonction de ce que dit l’utilisateur. Il s’agit du comportement d’agent décrit précédemment, une couche de décision en arrière-plan et non un échange unique.

LarAgent est une excellente solution lorsque l’agent a besoin d’une identité claire liée à une fonction spécifique, comme le service client, un assistant pour l’entrée de données ou un outil interne que le même utilisateur utilise fréquemment avec un contexte qui doit être conservé. L’historique est géré par utilisateur, il n’y a donc pas de schéma à concevoir à cet effet. Vous choisissez un mécanisme de gestion de l’historique, comme la mémoire ou le cache, et LarAgent s’occupe du reste. Pour de petites équipes qui doivent déployer rapidement une fonction d’agent sans beaucoup de configuration, c’est un réel avantage.

Neuron AI : pour des applications au-delà d’un seul agent

Lorsqu’un projet nécessite un RAG de niveau production, plusieurs agents coordonnés entre eux ou une visibilité détaillée sur chaque étape effectuée par un agent, Neuron AI constitue une option à considérer.

Il n’est pas spécifique à Laravel. Il s’agit d’un framework d’agents en PHP pur qui s’intègre sans problème dans un projet Laravel. Son architecture ressemble à celle d’un vrai framework : un objet SystemPrompt qui donne une forme aux instructions, un traitement RAG géré par sa classe RAG, des stockages vectoriels allant d’un simple stockage en mémoire jusqu’à Pinecone et Elasticsearch, ainsi qu’un outil d’inspection pour le suivi, affichant un chronogramme en temps réel de ce que fait l’agent. Une définition de base d’agent :

namespace App\Neuron;

use NeuronAI\Agent;
use NeuronAI\SystemPrompt;
use NeuronAI\Providers\AIProviderInterface;
use NeuronAI\Providers\Anthropic\Anthropic;

class DataAnalystAgent extends Agent
{
    protected function provider(): AIProviderInterface
    {
        return new Anthropic(
            key: env('ANTHROPIC_API_KEY'),
            model: 'claude-3-7-sonnet-latest',
        );
    }

    public function instructions(): string
    {
        return (string) new SystemPrompt(
            background: ['You are a data analyst helping the marketing team understand sales trends.'],
            steps: [
                'Fetch sales data using the available tool.',
                'Analyze the trends and patterns that emerge.',
                'Communicate the insight in plain, easy-to-understand language.',
            ],
        );
    }
}

Voyez à quel point ceci est plus explicite que LarAgent. L’instruction système sépare clairement background, steps et output, et c’est intentionnel. Neuron AI est conçu pour les cas où la complexité a déjà augmenté et où une structure claire est nécessaire pour éviter que l’agent ne dévie au cours du processus.

Laravel AI SDK et Laravel Boost : une confusion fréquente

De nombreux développeurs considèrent ces deux termes comme désignant la même chose. Ils résolvent en réalité des problèmes complètement différents, et l’équipe Laravel aurait même publié un article dédié uniquement pour dissiper cette confusion.

  • The Laravel AI SDK (laravel/ai) est le SDK officiel fourni par l’équipe principale. Son rôle est d’intégrer des fonctionnalités d’IA dans votre application, grâce à une API unique couvrant le texte, les résultats structurés, les images, l’audio et les embeddings. Il s’appuie sur Prism, ce qui permet à ceux qui maîtrisent déjà Prism de s’y adapter facilement. De plus, le package officiel inclut des données fictives pour les tests, un système de tâches en arrière-plan et une bascule automatique entre les fournisseurs.
  • Laravel Boost est quelque chose de complètement différent. Il s’agit d’un serveur MCP qui fonctionne dans votre environnement de développement et aide les assistants de codage basés sur l’IA, tels que Claude Code ou Cursor, à écrire du code Laravel conforme aux conventions du framework. Boost ne touche jamais à l’application en production. Il s’agit d’une dépendance réservée au développement, active uniquement pendant que vous codez, et ne fait pas partie des fonctionnalités d’IA que vos utilisateurs finaux rencontrent.

En termes simples, l’AI SDK vous aide à créer des fonctionnalités basées sur l’IA, tandis que Boost vous permet d’utiliser l’IA pour écrire de meilleurs codes Laravel. Ils fonctionnent côte à côte, sans pour autant se remplacer l’un l’autre.

Étude de cas : réponse aux questions issues de documents internes

Voici une demande courante dans un environnement de travail. L’équipe des Ressources humaines en a assez de répondre aux mêmes questions concernant la politique de congés et souhaite disposer d’un chatbot capable de répondre en s’appuyant sur les documents de politique déjà existants. Il s’agit d’un cas d’usage classique de RAG, c’est-à-dire des réponses fondées sur les documents propres à l’entreprise et non seulement sur ce que le modèle a appris pendant son entraînement.

Cela nécessite un stockage vectoriel, des embeddings ainsi qu’un système de récupération automatique, ce qui fait de Neuron AI une solution idéale :

namespace App\Neuron;

use NeuronAI\Providers\AIProviderInterface;
use NeuronAI\Providers\Anthropic\Anthropic;
use NeuronAI\RAG\RAG;
use NeuronAI\RAG\Embeddings\EmbeddingsProviderInterface;
use NeuronAI\RAG\VectorStore\VectorStoreInterface;
use NeuronAI\RAG\VectorStore\MemoryVectorStore;

class HrPolicyAgent extends RAG
{
    protected function provider(): AIProviderInterface
    {
        return new Anthropic(
            key: env('ANTHROPIC_API_KEY'),
            model: 'claude-3-7-sonnet-latest',
        );
    }

    protected function vectorStore(): VectorStoreInterface
    {
        return new MemoryVectorStore();
    }

    protected function embeddings(): EmbeddingsProviderInterface
    {
        // your preferred embeddings provider, e.g. OpenAI or Voyage
    }
}

Le flux, en résumé :

  1. Les documents de politique RH, en PDF ou en texte brut, sont divisés en petits fragments, transformés en embeddings et enregistrés dans le stockage vectoriel.
  2. Lorsqu’un employé demande combien de jours de congé annuel non utilisés sont reportés à l’année suivante, cette question est également convertie en embedding.
  3. Neuron AI cherche les fragments les plus proches sur le plan sémantique, et non seulement en fonction des mots-clés, puis les injecte comme contexte supplémentaire pour le LLM.
  4. Le LLM répond en se basant sur ces fragments réels plutôt que de deviner à partir de connaissances générales.

Le résultat est un chatbot dont les réponses se réfèrent à la véritable politique de l’entreprise et non à une réponse générique qui pourrait simplement être fausse. Il est possible d’imposer une configuration LarAgent à l’aide d’outils manuels pour obtenir le même effet, mais il faudrait alors créer sa propre logique de récupération, de segmentation en fragments et de recherche de similarité. Neuron AI fournit ces composants prêts à l’emploi.

Avec seulement quelques fichiers de politique, le MemoryVectorStore présent dans l’exemple suffit, car il conserve les embeddings en mémoire pour la session. Lorsque l’ensemble de documents augmente et doit survivre aux déploiements, remplacez l’implémentation vectorStore() par une véritable base de données vectorielle telle que Pinecone ou Elasticsearch, sans modifier la logique de l’agent. Une abstraction propre vous permet de commencer petit et d’échaler plus tard, tout en évitant de fixer l’architecture définitive dès le premier jour.

Une erreur fréquente dans ce type de travail RAG est d’importer un document entier sans le diviser en parties. Une politique RH longue fournie en un seul bloc continu complique la recherche de similarité, car le système ne sait pas quelle partie répond à la question. Diviser le document par thème ou par paragraphes permet à la récupération d’aboutir à la section appropriée.

Lequel choisir

  • Prism : une requête et une réponse uniques et authentiques, comme la génération de texte, de résumés ou de descriptions, permettant de changer de fournisseur sans difficulté.
  • Laravel AI SDK : l’option officielle soutenue par l’équipe principale, offrant des données de test fictives, des tâches en arrière-plan et un basculement automatique de fournisseur, idéale pour les projets que votre équipe maintiendra pendant des années.
  • LarAgent : un agent doté d’une identité claire à laquelle le même utilisateur peut faire appel à plusieurs reprises, offrant une expérience de développement similaire à celle d’Eloquent ainsi que des outils déclarés via des attributs simples.
  • Neuron AI : le projet ayant dépassé les capacités des agents simples, il nécessite un RAG avancé, plusieurs agents collaborant, un suivi précis ou un flux de travail composé d’étapes interdépendantes.
  • Laravel Boost : il n’est pas destiné aux fonctionnalités d’IA de votre application, mais plutôt à vous fournir un assistant de codage personnel pour écrire du Laravel plus propre et conforme aux conventions.
  • Aucun package ici n’est simplement le meilleur ; seul celui qui correspond à la complexité réelle que vous rencontrez l’est. Commencez par l’option la plus simple et n’augmentez pas de niveau que lorsque le problème l’exige. Le meilleur code n’est pas nécessairement le plus ingénieux : c’est celui qui convient au problème.