Skip to main content

Introduction

Le Laravel AI SDK fournit une API unifiée et expressive pour dialoguer avec OpenAI, Anthropic, Gemini, etc. Construisez des agents intelligents avec tools et sorties structurées, générez images, audio, transcriptions, embeddings — le tout via une interface cohérente et laravelienne.
Laravel AI SDK est un package officiel ajouté avec Laravel 13 (laravel/ai).

Providers supportés

Installation

1

Installer le package

2

Publier config et migrations

3

Migrer

Crée agent_conversations et agent_conversation_messages pour l’historique.

Configuration

Variables d’environnement

Modèles par défaut réglables dans config/ai.php.

URL de base personnalisée

Passez par un proxy en configurant l’URL par provider.
Disponible pour OpenAI, Anthropic, Gemini, Groq, Cohere, DeepSeek, xAI, OpenRouter.

Provider OpenAI-Compatible

LM Studio, vLLM, Together, Fireworks, gateways locaux… Utilisez le driver openai-compatible. url obligatoire ; key envoyée en Bearer.
Utilisation :
Modèle par défaut :
Supporte génération, streaming, tools, sorties structurées, pièces jointes image. Pour d’autres champs, voir les options de provider.

Enum Lab

Référence les providers en code.

Agents

Composant de base. Générez une classe agent :
Créé dans app/Ai/Agents/. Exemple implémentant les interfaces principales :

Prompt

make() résout les dépendances via le conteneur.
Override par appel :

Contexte conversationnel

Implémentez Conversational et messages(). Trait RemembersConversations pour la persistance auto.
forUser() puis continue() avec l’ID :

Sortie structurée

Implémentez HasStructuredOutput + schema().

Objets imbriqués

Tableaux d’objets

anyOf

Pièces jointes

Images :

Streaming

stream() retourne la réponse en chunks.
Callback de fin :
Itération manuelle :

Protocole Vercel AI SDK

Broadcast

Version en queue :

Ignorer les gros events

Certaines plateformes limitent les WebSocket à ~10 KB. Excluez les events volumineux avec WithoutBroadcasting.
Les events exclus ne sont pas diffusés mais restent enregistrés dans agent_conversation_messages — le frontend peut récupérer les infos après le stream.

Queue

Tools

Fonctions callables par l’IA.
Enregistrez sur l’agent :
Options :
Closure personnalisée :
Personnaliser la description :

Outils FileStorage

Accès à un disque filesystem.
Lecture seule :
Filtrez la collection :

Tools MCP

Si vous utilisez Laravel MCP, donnez à l’agent les tools exposés par vos serveurs MCP.
Nécessite le package Laravel MCP.
Spread des tools du client MCP :
Client nommé :
Ou serveur MCP local :

Tools de provider

Anthropic, OpenAI, Gemini, OpenRouter.
Options :

Web fetch

Anthropic, Gemini.
OpenAI, Gemini.
Requêtes complexes :

Sous-agents

Un agent peut être exposé comme un tool d’un autre agent, pour déléguer.
Personnalisez son exposition via CanActAsTool.
Sans CanActAsTool, Laravel utilise le nom de classe et une description générique. Chaque appel de sous-agent est indépendant — pas d’héritage d’historique.

Middleware

Interceptez les prompts / réponses.
Implémentez HasMiddleware :
Classe middleware :
Traitement post-réponse :

Agents anonymes

Sans définir de classe :
Sortie structurée :

Configuration via attributs PHP

Raccourcis :

Options provider

Interface HasProviderOptions pour des options spécifiques.

Génération d’images

Classe Image. Providers : OpenAI, Gemini, xAI.
Qualité, ratio, timeout :
Avec pièces jointes de référence :

Sauvegarde

En queue


Synthèse vocale (TTS)

Classe Audio. Providers : OpenAI, ElevenLabs.
Voix, instructions :

Sauvegarde

En queue


Transcription (STT)

Classe Transcription. Providers : OpenAI, ElevenLabs, Mistral, Gemini.

Options

En queue


Embeddings

Vecteurs pour la recherche sémantique.
Via Stringable :

Options

Voir aussi Recherche vectorielle.

Reranking

Réordonner un ensemble de résultats. Providers : Cohere, Jina, VoyageAI.
Macro rerank sur Collection :
Voir Recherche.

Fichiers

Upload / gestion de fichiers vers les providers. OpenAI, Anthropic, Gemini, Azure.
Types : Document, Image, Audio, Video.

Tests

Fake response

Séquence

Assertions

Fake tool

Fake JSON

Sortie structurée :

Récapitulatif

  • Provider unifié (OpenAI, Anthropic, Gemini…)
  • Persistance conversationnelle (RemembersConversations)
  • Sortie structurée (JSON Schema)
  • Streaming avec broadcast
  • Middleware sur les agents
  • Sous-agents (délégation)
  • Attributs PHP pour la config
  • Compatible OpenAI-compatible (LM Studio, etc.)
  • Tools MCP intégrés
  • Utilisez des attributs pour fixer provider/model/temperature
  • Séparez logique métier via des tools
  • Loggez via un middleware
  • Testez avec Ai::fake() — ne jamais toucher aux vraies API en test
  • Utilisez queue() pour les traitements longs
  • Streamez pour l’UX temps réel
Dernière modification le 20 juillet 2026