Laravel AI SDK 1.0: Classification &amp; Tool Approvals | Mohamed Said        [  ![Mohamed Said](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MH.png)   Mohamed Said Laravel Backend Engineer  ](https://msaied.com) [ Home ](https://msaied.com) [ Projects ](https://msaied.com/projects) [ Articles  ](https://msaied.com/articles) [ Certificates ](https://msaied.com/certificates) [ Contact ](https://msaied.com#contact-section) 

       [  ](https://github.com/EG-Mohamed)       

 [ Home ](https://msaied.com) [ Projects ](https://msaied.com/projects) [ Articles ](https://msaied.com/articles) [ Certificates ](https://msaied.com/certificates) [ Contact ](https://msaied.com#contact-section) 

  [ home ](https://msaied.com)    [ articles ](https://msaied.com/articles)    Laravel AI SDK 1.0: Classification, Tool Approvals, and Vercel Chat Streaming        On this page       1. [  Laravel AI SDK 1.0 Is Here ](#laravel-ai-sdk-10-is-here)
2. [  Classification: Fast Decisions Without a Full LLM ](#classification-fast-decisions-without-a-full-llm)
3. [  Vercel Chat and AG-UI Streaming ](#vercel-chat-and-ag-ui-streaming)
4. [  Approvable Tool Calls ](#approvable-tool-calls)
5. [  Other Notable Changes in 1.0 ](#other-notable-changes-in-10)
6. [  Upgrading to 1.0 ](#upgrading-to-10)
7. [  Key Takeaways ](#key-takeaways)

  ![Laravel AI SDK 1.0: Classification, Tool Approvals, and Vercel Chat Streaming](https://cdn.msaied.com/696/4a8dc0443e01d9ddfd47cae8515f2943.png)

 [  Laravel ](https://msaied.com/articles?category=laravel) [  AI ](https://msaied.com/articles?category=ai)  #Laravel AI SDK   #Classification   #Tool Approvals   #Vercel Chat   #AG-UI   #Laravel Packages  

 Laravel AI SDK 1.0: Classification, Tool Approvals, and Vercel Chat Streaming 
===============================================================================

     23 Sep 2026      4 min read    ![Mohamed Said](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp)  Mohamed Said  

       Table of contents

1. [  01   Laravel AI SDK 1.0 Is Here  ](#laravel-ai-sdk-10-is-here)
2. [  02   Classification: Fast Decisions Without a Full LLM  ](#classification-fast-decisions-without-a-full-llm)
3. [  03   Vercel Chat and AG-UI Streaming  ](#vercel-chat-and-ag-ui-streaming)
4. [  04   Approvable Tool Calls  ](#approvable-tool-calls)
5. [  05   Other Notable Changes in 1.0  ](#other-notable-changes-in-10)
6. [  06   Upgrading to 1.0  ](#upgrading-to-10)
7. [  07   Key Takeaways  ](#key-takeaways)

 Laravel AI SDK 1.0 Is Here
--------------------------

The Laravel team released version 1.0 of the official Laravel AI SDK on September 23, 2026. First announced in February, this milestone release adds a dedicated Classification capability, frontend chat protocol support, human-in-the-loop tool approvals, and a revised conversation storage model. It also ships several breaking changes, so read the upgrade notes before you run `composer update`.

```bash
composer require laravel/ai

```

Classification: Fast Decisions Without a Full LLM
-------------------------------------------------

Classification is now a first-class capability alongside text, images, audio, and embeddings. It is designed for quick routing decisions—think flagging a support ticket as urgent or assigning it to the right department. It runs on Jev models from TypeSafe, which the team describes as answering questions in milliseconds at a fraction of the cost of traditional LLMs.

You define a set of typed questions and get typed answers back:

```php
use Laravel\Ai\Classification;
use Laravel\Ai\Classification\Boolean;
use Laravel\Ai\Classification\Choice;

$response = Classification::of($ticket->body)->questions([
    'is_urgent'  => new Boolean('Does this message convey urgency?'),
    'department' => new Choice('Which team should handle this?', [
        'billing'   => 'Payments, invoicing, refunds',
        'technical' => 'Bugs, outages, integrations',
        'sales'     => 'Pricing, plans, upgrades',
    ]),
])->classify();

$response['is_urgent']->isTrue();
$response['department']->choice; // 'technical'

```

A `Score` type returns a float between 0.0 and 1.0. For a single yes/no check, the new `Str::decide` macro keeps things concise:

```php
Str::of($message)->decide('Is this spam?');

```

Classification currently works with TypeSafe and OpenRouter, with more providers planned.

Vercel Chat and AG-UI Streaming
-------------------------------

The SDK can now read requests and stream responses using the Vercel Chat and AG-UI protocols, making it straightforward to pair a Laravel backend with frontend libraries that already speak those formats.

```php
use Illuminate\Http\Request;
use Laravel\Ai\Vercel\Vercel;

Route::post('/chat', function (Request $request) {
    $chat = Vercel::chat($request);

    return (new SupportAgent)
        ->withMessages($chat->history())
        ->stream($chat)
        ->usingProtocol($chat->protocol());
});

```

For AG-UI clients such as CopilotKit, call `usingAgentUserInteractionProtocol()` on the stream instead. `Vercel::toUiMessages()` converts stored messages back into the client format when rebuilding a chat screen after a page reload.

Approvable Tool Calls
---------------------

Tools that implement the `Approvable` contract and use the `InteractsWithApprovals` trait pause the agent until a human approves the action—ideal for destructive operations like deleting files.

```php
use Laravel\Ai\Concerns\InteractsWithApprovals;
use Laravel\Ai\Contracts\Approvable;
use Laravel\Ai\Contracts\Tool;

class DeleteFile implements Approvable, Tool
{
    use InteractsWithApprovals;
    // ...
}

```

The response lists each pending call with the arguments the model chose. You resume the conversation with a decision per call: approve, reject with a reason the model sees, or edit the arguments before the tool runs. Approvals work with `prompt`, `stream`, `queue`, and broadcast methods.

Other Notable Changes in 1.0
----------------------------

- **Per-step middleware:** Agent middleware now runs on every generation step, not once per prompt. Each step arrives as a `PendingStep` you can modify with `withModel`, `withTools`, `withoutTools`, and `withMaxTokens`.
- **Tool search:** Wrap rarely used tools in `ToolSearch` so the provider loads them only when a prompt needs them (OpenAI and Anthropic).
- **Code execution:** The `CodeExecution` provider tool runs code in the provider's sandbox on Anthropic, OpenAI, Azure, Gemini, and xAI.
- **Conversation steps:** Messages now use a single `steps` JSON column with one entry per round-trip; tool results are stored alongside the call that produced them.
- **Token usage:** `promptTokens` and `completionTokens` are renamed to `inputTokens` and `outputTokens`.

Upgrading to 1.0
----------------

Breaking changes affect conversation storage, agent middleware, token usage fields, and stream protocols. If you query the `tool_calls` or `tool_results` columns directly, migrate that logic to `steps`. Run the backfill migration included in the upgrade guide before deploying.

The team recommends using Laravel Boost to automate most of the upgrade:

```bash
composer require laravel/boost --dev
php artisan boost:install

```

Then run the `/upgrade-ai-sdk-v1` slash command in Claude Code, Cursor, OpenCode, Gemini, or VS Code.

### Key Takeaways

- Classification is a new, cost-efficient capability for routing and flagging tasks
- Vercel Chat and AG-UI protocols are now supported out of the box
- Tool approvals let you pause agents for human review before destructive actions run
- Conversation storage has moved to a single `steps` JSON column—run the backfill migration before deploying
- Token usage fields have been renamed; update any code that reads them
- Laravel Boost can automate most of the upgrade process

---

*Source: [Laravel AI SDK 1.0 Adds Classification and Tool Approvals — Laravel News](https://laravel-news.com/laravel-ai-sdk-1-0)*

 Found this useful?

          [  ](https://twitter.com/intent/tweet?url=https%3A%2F%2Fmsaied.com%2Farticles%2Flaravel-ai-sdk-10-classification-tool-approvals-and-vercel-chat-streaming&text=Laravel+AI+SDK+1.0%3A+Classification%2C+Tool+Approvals%2C+and+Vercel+Chat+Streaming) [  ](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fmsaied.com%2Farticles%2Flaravel-ai-sdk-10-classification-tool-approvals-and-vercel-chat-streaming) 

 Frequently Asked Questions 
----------------------------

  3 questions  

     Q01  What is the Classification capability in Laravel AI SDK 1.0?        Classification is a new first-class capability that lets you ask typed questions—Boolean, Choice, or Score—about a piece of text and get structured answers back. It runs on Jev models from TypeSafe and is designed for fast, low-cost routing decisions such as flagging urgent tickets or assigning them to the correct department. 

      Q02  How do approvable tool calls work in Laravel AI SDK 1.0?        A tool that implements the Approvable contract and uses the InteractsWithApprovals trait pauses the agent before executing. The response lists each pending call with the model's chosen arguments. You then resume the conversation with a decision to approve, reject with a reason, or edit the arguments before the tool runs. 

      Q03  What are the main breaking changes when upgrading to Laravel AI SDK 1.0?        The main breaking changes are in conversation storage (tool_calls and tool_results columns replaced by a single steps JSON column), agent middleware behavior (now runs per step instead of per prompt), token usage field names (renamed to inputTokens and outputTokens), and stream protocols. You must run the included backfill migration before deploying 1.0. 

  Continue reading

 More Articles 
---------------

 [ View all    ](https://msaied.com/articles) 

 [ ![What's New in Laravel 13.33: Tagged Memoized Cache, Model Refreshes, and More](https://cdn.msaied.com/695/68465c4a316f52e811ca17f35812522d.png) Laravel Laravel 13 Eloquent 

### What's New in Laravel 13.33: Tagged Memoized Cache, Model Refreshes, and More

Laravel 13.33 ships tagged support for the memoized cache store, a #\[Refreshes\] model attribute for generated...

  ![Mohamed Said](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp)  Mohamed Said 

 22 Sep 2026     3 min read  

  Read    

 ](https://msaied.com/articles/whats-new-in-laravel-1333-tagged-memoized-cache-model-refreshes-and-more) [ ![Laravel Live Denmark 2026 Talks Are Now on YouTube](https://cdn.msaied.com/694/ef171df318406f98f554df18e58af625.png) Laravel PHP Conference 

### Laravel Live Denmark 2026 Talks Are Now on YouTube

All 17 talks from Laravel Live Denmark 2026 are now on YouTube. The playlist covers PHP generics, Inertia, Nat...

  ![Mohamed Said](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp)  Mohamed Said 

 22 Sep 2026     3 min read  

  Read    

 ](https://msaied.com/articles/laravel-live-denmark-2026-talks-are-now-on-youtube) [ ![Live Stream: Building a Social Network in PHP in 48 Hours](https://cdn.msaied.com/692/e20cfd66bbb0473d2084f86b7f5e4dcc.png) PHP Live Stream Nuno Maduro 

### Live Stream: Building a Social Network in PHP in 48 Hours

Nuno Maduro, Brent Roose, and Matthieu Napoli will build a full social network in PHP live from the JetBrains...

  ![Mohamed Said](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp)  Mohamed Said 

 22 Sep 2026     2 min read  

  Read    

 ](https://msaied.com/articles/live-stream-building-a-social-network-in-php-in-48-hours) 

   [  ![Mohamed Said](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MH.png)   Mohamed Said Laravel Backend Engineer  ](https://msaied.com)Senior Backend Engineer specializing in Laravel, scalable SaaS platforms, APIs, and cloud infrastructure. I build secure, high-performance web applications that help businesses grow.

Explore

- [Home](https://msaied.com)
- [Projects](https://msaied.com/projects)
- [Articles](https://msaied.com/articles)
- [Certificates](https://msaied.com/certificates)
- [Contact](https://msaied.com#contact-section)

Connect

- [   hello@msaied.com ](mailto:hello@msaied.com)
- [   +20 109 461 9204 ](tel:+201094619204)

© 2026 Mohamed Said. All rights reserved.

 [  ](https://github.com/EG-Mohamed) [  ](https://www.linkedin.com/in/msaiedm/) [  ](https://wa.me/201094619204) [  ](mailto:hello@msaied.com) [  ](https://drive.google.com/file/u/0/d/1MF20IPRJyzfy32mhEutjL5EpSls0w2Q8/view)
