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
config/ai.php.
URL de base personnalisée
Passez par un proxy en configurant l’URL par provider.Provider OpenAI-Compatible
LM Studio, vLLM, Together, Fireworks, gateways locaux… Utilisez le driveropenai-compatible. url obligatoire ; key envoyée en Bearer.
Enum Lab
Référence les providers en code.
Agents
Composant de base. Générez une classe agent :app/Ai/Agents/. Exemple implémentant les interfaces principales :
Prompt
make() résout les dépendances via le conteneur.
Contexte conversationnel
ImplémentezConversational et messages().
Trait RemembersConversations pour la persistance auto.
forUser() puis continue() avec l’ID :
Sortie structurée
ImplémentezHasStructuredOutput + schema().
Objets imbriqués
Tableaux d’objets
anyOf
Pièces jointes
Streaming
stream() retourne la réponse en chunks.
Protocole Vercel AI SDK
Broadcast
Ignorer les gros events
Certaines plateformes limitent les WebSocket à ~10 KB. Excluez les events volumineux avecWithoutBroadcasting.
agent_conversation_messages — le frontend peut récupérer les infos après le stream.
Queue
Tools
Fonctions callables par l’IA.Similarity search
Outils FileStorage
Accès à un disque filesystem.Tools MCP
Si vous utilisez Laravel MCP, donnez à l’agent les tools exposés par vos serveurs MCP.Nécessite le package Laravel MCP.
Tools de provider
Web search
Anthropic, OpenAI, Gemini, OpenRouter.Web fetch
Anthropic, Gemini.File search
OpenAI, Gemini.Sous-agents
Un agent peut être exposé comme un tool d’un autre agent, pour déléguer.CanActAsTool.
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.HasMiddleware :
Agents anonymes
Sans définir de classe :Configuration via attributs PHP
Options provider
InterfaceHasProviderOptions pour des options spécifiques.
Génération d’images
ClasseImage. Providers : OpenAI, Gemini, xAI.
Sauvegarde
En queue
Synthèse vocale (TTS)
ClasseAudio. Providers : OpenAI, ElevenLabs.
Sauvegarde
En queue
Transcription (STT)
ClasseTranscription. Providers : OpenAI, ElevenLabs, Mistral, Gemini.
Options
En queue
Embeddings
Vecteurs pour la recherche sémantique.Stringable :
Options
Reranking
Réordonner un ensemble de résultats. Providers : Cohere, Jina, VoyageAI.rerank sur Collection :
Fichiers
Upload / gestion de fichiers vers les providers. OpenAI, Anthropic, Gemini, Azure.Document, Image, Audio, Video.
Tests
Fake response
Séquence
Assertions
Fake tool
Fake JSON
Sortie structurée :Récapitulatif
Composants principaux
Composants principaux
Fonctionnalités clés
Fonctionnalités clés
- 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
Bonnes pratiques
Bonnes pratiques
- 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