Skip to main content

Introduzione

Laravel AI SDK offre un’API unificata ed espressiva per interagire con provider AI come OpenAI, Anthropic, Gemini. Puoi costruire agenti intelligenti con tool e output strutturato, generare immagini, sintetizzare/trascrivere audio, creare embedding vettoriali — tutto con un’interfaccia coerente in stile Laravel.
Laravel AI SDK è il pacchetto ufficiale aggiunto in Laravel 13. Distribuito come laravel/ai, permette di usare più provider AI con la stessa API.

Supporto dei provider

Installazione

1

Installa il pacchetto

2

Pubblica config e migration

3

Esegui le migration

Crea le tabelle agent_conversations e agent_conversation_messages per lo storico delle conversazioni.

Configurazione

Variabili d’ambiente

Configura le API key in .env:
I modelli predefiniti per testo, immagini, audio, trascrizione, embedding si impostano in config/ai.php.

URL base personalizzato

Con proxy:
Disponibile per OpenAI, Anthropic, Gemini, Groq, Cohere, DeepSeek, xAI, OpenRouter.

Provider OpenAI-Compatible

Per LM Studio, vLLM, Together, Fireworks, gateway locali, usa il driver openai-compatible. url è obbligatorio; key viene inviata come Bearer token.
Uso:
Con modello di default:
Supporta testo, streaming, tool, output strutturato, allegati immagine. Per campi aggiuntivi usa Opzioni del provider.

Enum Lab


Agenti

Blocco di base dell’SDK. Crea con:
In app/Ai/Agents/:

Prompt

make() statico usa il container:
Override provider, modello, timeout:

Contesto conversazionale

Implementando Conversational e definendo messages(), passi la cronologia al modello. Con il trait RemembersConversations la persistenza avviene automaticamente su DB.
Con forUser() e continue():

Output strutturato

Con HasStructuredOutput e schema():

Oggetti annidati

Array di oggetti

anyOf

Allegati

Immagini:

Streaming

Callback finale con then():
Iterazione manuale:

Protocollo Vercel AI SDK

Broadcasting

Via coda:

Escludere eventi troppo grandi

Alcune piattaforme limitano i messaggi WebSocket (~10KB). Con WithoutBroadcasting escludi eventi grandi.
Il salvataggio in agent_conversation_messages continua: il frontend riceverà i dati completi al termine.

Coda

Tool

I tool consentono all’AI di chiamare funzioni del tuo codice.
Registrazione:

Tool di ricerca per similarità

Con opzioni:
Con closure:
Descrizione custom:

Tool di file storage

Con FileStorage dai all’agente accesso ai disk.
Sola lettura:
Puoi filtrare il set (restituisce Illuminate\Support\Collection):

Tool MCP

Se usi Laravel MCP, esponi all’agente i tool di server MCP.
Richiede il pacchetto Laravel MCP.
Client con nome:
Locale:
Vedi la documentazione MCP per creazione e autenticazione.

Tool nativi del provider

Anthropic, OpenAI, Gemini, OpenRouter.

Web fetch

Anthropic, Gemini.
OpenAI, Gemini.
Filtri complessi:

Sub-agenti

Un agente può esporre altri agenti come tool.
Con CanActAsTool personalizzi il nome/descrizione:
Senza CanActAsTool, Laravel usa il nome della classe e una descrizione generica. Ogni chiamata al sub-agente è indipendente.

Middleware

Con then():

Agenti anonimi

Con output strutturato:

Attributi di configurazione

Scorciatoie:

Opzioni del provider


Generazione immagini

OpenAI, Gemini, xAI.
Con opzioni:
Immagine di riferimento:

Salvataggio

In coda


Sintesi vocale (TTS)

OpenAI, ElevenLabs.

Salvataggio

In coda


Trascrizione (STT)

OpenAI, ElevenLabs, Mistral.

Diarizzazione

In coda


Embedding

Provider e dimensioni:

Vector search (pgvector)

1

Migration

2

Modello

3

Query per similarità

API di basso livello:

Cache degli embedding

config/ai.php:
Per richiesta:

Reranking

Cohere, Jina.
Limite:

Reranking di collection


Gestione file

Da stringa o upload:

Riferire file caricati

Recuperare/eliminare

Provider

Opzioni provider-specifiche

Per provider:

Vector store

Aggiungere file

Con metadata:

Rimuovere file


Failover


Test

Agent

Code:
Prevenire prompt non fake:
Output strutturato:
Con agenti a output strutturato senza dati espliciti, Laravel genera dati fake conformi allo schema.
Agenti anonimi:

Immagini

Audio

Trascrizione

Embedding

Reranking

File

Vector store

Operazioni file dello store:

Eventi

  • PromptingAgent — prima dell’invio del prompt
  • AgentPrompted — dopo l’invio
  • StreamingAgent — inizio streaming
  • AgentStreamed — fine streaming
  • InvokingTool — prima della chiamata al tool
  • ToolInvoked — dopo la chiamata al tool
  • GeneratingImage / ImageGenerated
  • GeneratingAudio / AudioGenerated
  • GeneratingTranscription / TranscriptionGenerated
  • GeneratingEmbeddings / EmbeddingsGenerated
  • Reranking / Reranked
  • StoringFile / FileStored / FileDeleted
  • CreatingStore / StoreCreated
  • AddingFileToStore / FileAddedToStore
  • RemovingFileFromStore / FileRemovedFromStore
Ultima modifica il 20 luglio 2026