Presentazione di Laravel AI SDK v1 | Laravel - Lo stack pulito per Artisans e agent
Oggi rilasciamo la v1.0 di Laravel AI SDK.
Il nostro AI SDK è entrato in beta all'inizio di quest'anno con la promessa di un'unica API elegante, nativa di Laravel, per ogni provider.
Per la v1.0 ci siamo dati da fare. Abbiamo chiuso centinaia di bug, rilasciato funzionalità incredibilmente potenti e aggiunto forme di AI completamente nuove all'SDK.
Per iniziare, installa Laravel AI SDK con Composer:
Un nuovo tipo di modello
Una parte del lavoro con l'AI non è affatto scrittura. Instradare un ticket, segnalare un commento, scegliere un ramo in un workflow: sono decisioni di classificazione che devono essere prese in modo rapido ed economico.
TypeSafe, i creatori di Jev, le chiama modelli System One, e Laravel AI SDK ora include la classificazione come capacità a sé stante, accanto a testo, immagini, audio ed embeddings. Jev può rispondere a domande di classificazione in millisecondi a una frazione del prezzo dei tradizionali LLM:
Per una classificazione ancora più semplice, la nuova macro decide sulla classe Str pone una domanda sì/no e restituisce un booleano. L'argomento threshold ti consente di controllare quanta certezza deve avere il modello nella sua classificazione:
Oggi la classificazione funziona su TypeSafe & OpenRouter. Man mano che altri provider rilasciano modelli di questo tipo, li aggiungeremo all'SDK dietro questa stessa API.
Parla il protocollo del tuo frontend
Abbiamo anche costruito un supporto più profondo per gli standard dei protocolli Vercel Chat e AG-UI, consentendo a Laravel AI SDK di leggere le richieste e trasmettere le risposte in streaming usando tali protocolli, così puoi costruire rapidamente esperienze UI ricche di funzionalità usando Laravel AI SDK con le più diffuse librerie e strumenti frontend.
Per iniziare, passa la richiesta a Vercel::chat e inoltra il risultato direttamente al tuo agent:
Quella singola route si occupa di consumare il nuovo messaggio, aggiornare la cronologia della conversazione nel tuo database e ispezionare le eventuali decisioni di approvazione dei tool inviate dall'utente.
Laravel AI SDK ora parla anche il protocollo Agent User Interaction (AG-UI) usato da client come CopilotKit:
Devi ricostruire una schermata di chat dopo un ricaricamento della pagina? Converti i messaggi memorizzati di nuovo nel formato che il client si aspetta:
Il middleware ora supporta la personalizzazione del loop dell'agent
In precedenza, il middleware dell'agent veniva eseguito una volta per prompt. Ora avvolge ogni fase di generazione, quindi un agent che chiama tre tool prima di rispondere esegue il tuo middleware tre volte. Ogni fase arriva come un PendingStep che puoi ispezionare e copiare con modifiche.
Questa modifica rende il middleware un luogo più potente per controllare costi e contesto, e ti dà la possibilità di personalizzare messaggi, tool e altro di un agent mentre l'agent gestisce il tuo prompt. Per esempio, puoi togliere un tool costoso all'agent una volta che l'agent lo ha già usato:
Puoi persino scambiare l'intero modello a metà prompt, riassumere una lunga cronologia di messaggi o restituire una risposta in cache senza chiamare affatto il provider. I metodi withModel, withInstructions, withMessages, withTools, onlyTools, withToolChoice, withMaxTokens e withProviderOptions ti permettono di personalizzare ogni parte del prompt durante l'esecuzione.
Chiamate ai tool approvabili
Alcuni tool non dovrebbero essere eseguiti senza un'esplicita approvazione umana. Ora puoi implementare il contract Approvable su un tool e usare il trait InteractsWithApprovals. Quando l'agent incontra un tool Approvable, si fermerà in attesa di approvazione invece di invocare il tool:
La risposta ti dice cosa è in attesa, inclusi gli argomenti scelti dal modello:
Riprendi continuando la conversazione con una decisione per ogni chiamata in sospeso. Una decisione può approvare la chiamata al tool, rifiutarla con una motivazione fornita al modello, oppure modificare gli argomenti prima che il tool venga eseguito:
Le approvazioni funzionano con prompt, stream, queue e i metodi di broadcast.
Le conversazioni ora memorizzano ogni fase
Sapevamo che la tabella conversations sarebbe stata la cosa più difficile da cambiare una volta che l'AI SDK avesse raggiunto la v1.0, quindi abbiamo dedicato particolare attenzione alla sua forma finale prima di rilasciarla.
Un turno memorizzava le sue chiamate ai tool e i relativi risultati come due liste piatte, con lo stato di replay salvato nella colonna meta. Questo approccio perdeva quale round-trip aveva prodotto una specifica chiamata al tool, quindi ricostruire la cronologia per un provider significava tirare a indovinare, e alcuni provider rifiutavano il risultato. Inoltre faceva sembrare una chiamata mai eseguita esattamente identica a una chiamata in attesa di approvazione.
Invece di questo approccio, i messaggi ora presentano un'unica colonna JSON steps con una voce per round-trip, e ogni risultato è memorizzato insieme alla chiamata che l'ha prodotto:
Le conversazioni sono ancora memorizzate come una riga per turno, quindi la paginazione e gli accessor toolCalls e toolResults continuano a funzionare come prima.
Il SQL grezzo su tool_calls o tool_results dovrà essere migrato per utilizzare la colonna steps. Inoltre, la guida all'aggiornamento include una migration di backfill che deve essere eseguita una volta prima di distribuire la v1.0.
Smetti di inviare tutti i tool a ogni richiesta
Un agent con 30 tool li descrive tutti e 30 a ogni richiesta, il che costa token e rende la scelta del modello meno accurata man mano che l'elenco cresce. Ora puoi avvolgere i tool usati raramente in ToolSearch, e il provider li carica solo quando il prompt lo richiede:
I tool avvolti non richiedono modifiche, e l'agent li chiama come qualsiasi altro tool una volta caricati. La ricerca dei tool è supportata su OpenAI e Anthropic.
Lascia che gli agent eseguano codice
Il nuovo tool del provider CodeExecution esegue invece il codice nel sandbox del provider stesso, consentendo risultati più accurati per gli agent che svolgono analisi dei dati o calcoli:
L'esecuzione del codice è supportata su Anthropic, OpenAI, Azure, Gemini e xAI.
Report di utilizzo unificato tra i provider
Il report di utilizzo ora è coerente tra tutti i provider. Le proprietà promptTokens e completionTokens ora sono inputTokens e outputTokens, e includono i conteggi completi del provider:
I token in cache, scritti in cache e di ragionamento ora sono sottoinsiemi di quei totali.
Aggiornare alla v1.0
Laravel AI SDK v1.0 include effettivamente breaking changes, principalmente relative all'archiviazione delle conversazioni, al middleware degli agent, all'utilizzo dei token e ai protocolli di stream.
La guida all'aggiornamento di Laravel AI SDK illustra ogni breaking change con codice prima e dopo e una probabilità di impatto, così puoi affrontare solo ciò che ti riguarda.
Aggiornare usando l'AI
Ti consigliamo di lasciare che un assistente AI faccia la maggior parte del lavoro di aggiornamento. Laravel Boost è il nostro server Model Context Protocol (MCP) first-party, e include prompt di aggiornamento guidati per l'AI SDK.
Per iniziare, installa Boost come dipendenza di sviluppo della tua applicazione, poi installa il suo server MCP e le sue linee guida:
Una volta installato, esegui il comando slash /upgrade-ai-sdk-v1 in Claude Code, Cursor, OpenCode, Gemini o VS Code per iniziare l'aggiornamento. Boost guiderà automaticamente il tuo assistente attraverso la guida, una modifica alla volta.
Inizia a costruire
Laravel AI SDK ti offre un unico luogo pulito e testabile per l'AI nella tua applicazione. La v1.0 rende quel luogo pronto per la produzione.
Leggi la documentazione completa per guide su agent, tool, streaming, conversazioni e altro.
Non vediamo l'ora di vedere cosa costruirai.
Fonte originale:
https://laravel.com/blog/introducing-laravel-ai-sdk-v1Altri articoli recenti
Laravel AI 1.1 e 1.2: Agent Skills, Cohere e structured output più solidi
Le release 1.1.0 e 1.2.0 di laravel/ai portano gli Agent Skills, l'approvazione obbligatoria per i tool built-in e nuovi provider come Cohere e Laya self-hosted. Sul fronte qualità arrivano i fix allo structured output per Bedrock e il supporto alle provider options. Aggiornati anche i modelli di default, con Claude 4.7+ che ignora i sampling params.
Laravel 13.35.0: scheduler più controllabile, code più flessibili e response Markdown
Laravel 13.35.0 porta Schedule::alwaysOnOneServer(), il supporto a schedule:interrupt per i comandi di lunga durata, --memory in percentuale per queue:work e il nuovo metodo markdown() sulla response factory. Tante piccole migliorie anche a test, view compilate in parallelo e dischi local.
BashBox: un interprete Bash in sandbox per agenti AI in PHP
BashBox è un interprete bash scritto in puro PHP che permette di eseguire gli script generati dagli agenti AI senza mai ricorrere a proc_open, exec o shell_exec. Ogni comando è una classe PHP che lavora su un filesystem virtuale, con limiti di esecuzione, quote disco e accesso di rete configurabili. Ideale per chi sviluppa agenti con il Laravel AI SDK o altre librerie simili.