Laravel AI SDK v1.0 — What's New | Mohamed Said       [Skip to content](#main)  [ ![](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MH.png) Mohamed SaidLaravel Backend Engineer ](https://msaied.com/public) - [Home](https://msaied.com/public)
- [Projects](https://msaied.com/public/projects)
- [Articles](https://msaied.com/public/articles)
- [Certificates](https://msaied.com/public/certificates)
- [About](https://msaied.com/public#about)

           [  Contact](https://msaied.com/public#contact) Menu 

Menu
----

Close 

 - [HomeStart here](https://msaied.com/public)
- [ProjectsCase studies](https://msaied.com/public/projects)
- [ArticlesEngineering notes](https://msaied.com/public/articles)
- [CertificatesCredentials](https://msaied.com/public/certificates)
- [AboutHow I work](https://msaied.com/public#about)
- [ContactGet in touch](https://msaied.com/public#contact)

  [Start a conversation](https://msaied.com/public#contact) [WhatsApp](https://wa.me/201094619204) [Email](mailto:hello@msaied.com) 

 1. [Home](https://msaied.com/public)
2. /
3. [Articles](https://msaied.com/public/articles)
4. /
5. [Laravel](https://msaied.com/public/articles?category=laravel)
6. /
7. Laravel AI SDK v1.0: Classification, Approvable Tools, Agent Middleware &amp; More

   [Laravel](https://msaied.com/public/articles?category=laravel) [AI](https://msaied.com/public/articles?category=ai) 

 Laravel AI SDK v1.0: Classification, Approvable Tools, Agent Middleware &amp; More
===================================================================================

 Laravel AI SDK v1.0 ships with Jev classification, approvable tool calls, per-step agent middleware, Vercel Chat and AG-UI protocol support, tool search, code execution, and a redesigned conversation schema.

 ![](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp) [Mohamed Said](https://msaied.com/public#person) Published 23 Sep 2026 · Updated 24 Sep 2026 · 5 min read

ShareCopy linkCopied

 ![Laravel AI SDK v1.0: Classification, Approvable Tools, Agent Middleware & More](https://cdn.msaied.com/698/65d5ceeb67b5ceb383a05b0d760515d1.png) 

  On this page +1. [Laravel AI SDK v1.0 Is Here](#laravel-ai-sdk-v10-is-here)
2. [Jev Classification: A New Kind of AI Capability](#jev-classification-a-new-kind-of-ai-capability)
3. [Vercel Chat and AG-UI Protocol Support](#vercel-chat-and-ag-ui-protocol-support)
4. [Per-Step Agent Middleware](#per-step-agent-middleware)
5. [Approvable Tool Calls](#approvable-tool-calls)
6. [Redesigned Conversation Storage](#redesigned-conversation-storage)
7. [Tool Search and Code Execution](#tool-search-and-code-execution)
8. [Unified Token Usage Reporting](#unified-token-usage-reporting)
9. [Upgrading to v1.0](#upgrading-to-v10)
10. [Key Takeaways](#key-takeaways)

 Laravel AI SDK v1.0 Is Here
---------------------------

Released on 23 September 2026, Laravel AI SDK v1.0 graduates the package from beta to a production-ready, Laravel-native interface for every major AI provider. The release closes hundreds of bugs and ships several headline features worth knowing before you upgrade.

---

Jev Classification: A New Kind of AI Capability
-----------------------------------------------

Not every AI task is text generation. Routing a support ticket, flagging a comment, or branching a workflow are *classification* decisions — and they should be fast and cheap.

The SDK now treats classification as a first-class capability alongside text, images, audio, and embeddings. Jev (by TypeSafe) answers classification questions in milliseconds at a fraction of the cost of a traditional LLM.

For yes/no questions, a new `decide` macro on the `Str` class returns a boolean. A `threshold` argument controls the required confidence level before the model commits to an answer.

Classification currently runs on TypeSafe and OpenRouter, with more providers planned.

---

Vercel Chat and AG-UI Protocol Support
--------------------------------------

The SDK now speaks two popular frontend streaming protocols out of the box:

- **Vercel Chat** — pass the incoming request to `Vercel::chat` and pipe the result straight to your agent. The single route handles message ingestion, conversation persistence, and tool-approval decisions.
- **AG-UI** — used by clients such as CopilotKit, letting you stream agent responses to rich UI components without custom glue code.

A helper method converts stored conversation messages back into the shape the client expects, making page-reload recovery straightforward.

---

Per-Step Agent Middleware
-------------------------

Previously, middleware ran once per prompt. It now wraps **each generation step**, so a three-tool agent run triggers your middleware three times. Each step arrives as a `PendingStep` you can inspect and mutate.

Practical uses include:

- Removing an expensive tool after it has already been called once
- Swapping the model mid-prompt based on accumulated cost
- Summarising a long message history before the next step
- Returning a cached answer without hitting the provider at all

Methods like `withModel`, `withTools`, `withMessages`, and `withMaxTokens` let you rewrite every part of the prompt between steps.

---

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

Some tools must not run without a human in the loop. Implement the `Approvable` contract on a tool and use the `InteractsWithApprovals` trait. When the agent reaches that tool, it pauses and returns a response describing what is waiting — including the arguments the model chose.

Resume the conversation by submitting a decision for each pending call: **approve**, **reject** (with a reason fed back to the model), or **edit** the arguments before the tool runs. Approvals work with `prompt`, `stream`, `queue`, and broadcast methods.

---

Redesigned Conversation Storage
-------------------------------

The `conversations` table now stores a `steps` JSON column with one entry per round-trip, and each tool result is stored alongside the call that produced it. This eliminates the guessing required when replaying history for providers and makes approval state unambiguous.

Pagination and the `toolCalls` / `toolResults` accessors remain unchanged. Raw SQL against the old `tool_calls` or `tool_results` columns must migrate to `steps`. A backfill migration is included in the upgrade guide and must be run before deploying v1.0.

---

Tool Search and Code Execution
------------------------------

**Tool Search** wraps rarely used tools in a `ToolSearch` container so they are only loaded when the prompt actually calls for them — reducing token cost and improving model accuracy on large tool sets. Supported on OpenAI and Anthropic.

**Code Execution** is a new provider tool that runs code in the provider's own sandbox, useful for data analysis and calculations. Supported on Anthropic, OpenAI, Azure, Gemini, and xAI.

---

Unified Token Usage Reporting
-----------------------------

The `promptTokens` and `completionTokens` properties are renamed to `inputTokens` and `outputTokens` across every provider. Cached, cache-written, and reasoning tokens are now reported as subsets of those totals rather than separate fields.

---

Upgrading to v1.0
-----------------

Breaking changes touch conversation storage, agent middleware, token usage property names, and stream protocols. The [official upgrade guide](https://github.com/laravel/ai/blob/1.x/UPGRADE.md) covers each change with before/after examples and an impact rating.

For AI-assisted upgrades, install **Laravel Boost** (the first-party MCP server) as a dev dependency and run the `/upgrade-ai-sdk-v1` slash command in Claude Code, Cursor, OpenCode, Gemini, or VS Code.

---

Key Takeaways
-------------

- **Jev classification** adds a fast, cheap, boolean-friendly AI capability to the SDK
- **Vercel Chat and AG-UI** protocol support removes frontend integration boilerplate
- **Per-step middleware** gives fine-grained control over cost, context, and model choice
- **Approvable tools** let humans review and edit AI decisions before execution
- **`steps` column** makes conversation replay reliable across all providers
- **Tool Search** cuts token usage for agents with large tool sets
- **Code Execution** brings sandboxed computation to five major providers
- Token usage properties are renamed; update any monitoring or billing code

---

Read the full announcement and documentation at .

- [Laravel](https://msaied.com/public/articles?search=Laravel)
- [AI SDK](https://msaied.com/public/articles?search=AI%20SDK)
- [PHP](https://msaied.com/public/articles?search=PHP)
- [Agents](https://msaied.com/public/articles?search=Agents)
- [LLM](https://msaied.com/public/articles?search=LLM)
- [Classification](https://msaied.com/public/articles?search=Classification)

 Frequently asked questions 
---------------------------

  What breaking changes does Laravel AI SDK v1.0 introduce?The main breaking changes are: the conversations table now uses a `steps` JSON column instead of flat tool\_call and tool\_result lists (requiring a backfill migration); agent middleware now runs per step rather than per prompt; token usage properties are renamed from `promptTokens`/`completionTokens` to `inputTokens`/`outputTokens`; and stream protocol handling has changed. The official upgrade guide covers each change with before/after code examples.

   How do approvable tool calls work in Laravel AI SDK v1.0?Implement the `Approvable` contract on any tool and add the `InteractsWithApprovals` trait. When the agent reaches that tool during a run, it pauses and returns a response listing what is waiting for approval, including the arguments the model selected. You resume the conversation by submitting a decision — approve, reject with a reason, or edit the arguments — before the tool executes. This works with prompt, stream, queue, and broadcast methods.

   What is Jev classification and when should I use it instead of a standard LLM?Jev is a System One classification model from TypeSafe that answers classification questions in milliseconds at a fraction of the cost of a traditional LLM. Use it for decisions that don't require text generation — routing a ticket, flagging content, or branching a workflow. The SDK exposes it as a first-class capability and adds a `Str::decide()` macro for simple yes/no questions with a configurable confidence threshold.

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

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

[About](https://msaied.com/public#about) [GitHub ↗](https://github.com/EG-Mohamed) [LinkedIn ↗](https://www.linkedin.com/in/msaiedm/) [WhatsApp ↗](https://wa.me/201094619204) [Email Address ↗](mailto:hello@msaied.com) [My CV ↗](https://drive.google.com/file/u/0/d/1MF20IPRJyzfy32mhEutjL5EpSls0w2Q8/view)  

   [Previous articleWhat's New in Laravel 13.33: Tagged Memoized Cache, Model Refreshes, and More](https://msaied.com/public/articles/whats-new-in-laravel-1333-tagged-memoized-cache-model-refreshes-and-more) [Next articleLaravel AI SDK 1.0: Classification, Tool Approvals, and Vercel Chat Streaming](https://msaied.com/public/articles/laravel-ai-sdk-10-classification-tool-approvals-and-vercel-chat-streaming)  

   On this page
-------------

1. [Laravel AI SDK v1.0 Is Here](#laravel-ai-sdk-v10-is-here)
2. [Jev Classification: A New Kind of AI Capability](#jev-classification-a-new-kind-of-ai-capability)
3. [Vercel Chat and AG-UI Protocol Support](#vercel-chat-and-ag-ui-protocol-support)
4. [Per-Step Agent Middleware](#per-step-agent-middleware)
5. [Approvable Tool Calls](#approvable-tool-calls)
6. [Redesigned Conversation Storage](#redesigned-conversation-storage)
7. [Tool Search and Code Execution](#tool-search-and-code-execution)
8. [Unified Token Usage Reporting](#unified-token-usage-reporting)
9. [Upgrading to v1.0](#upgrading-to-v10)
10. [Key Takeaways](#key-takeaways)

 ###  Have a technical challenge?

 Tell me what you’re building. I reply within two working days.

[Start a conversation](https://msaied.com/public#contact) 

   Related articles
-----------------

 [ ![](https://cdn.msaied.com/745/8744e1be5136b430da52e9fca3ed3964.png)  · 3 min read### Service Container Deep Dive: Contextual Binding, Tagging, and Method Injection

6 Oct 2026 ](https://msaied.com/public/articles/service-container-deep-dive-contextual-binding-tagging-and-method-injection-1) [ ![](https://cdn.msaied.com/743/8998fac3a41451ab3fe1588194e17a43.png) Filament · 3 min read### Securing Filament Plugins with Plumb: Automated Security Scoring for PHP Packages

5 Oct 2026 ](https://msaied.com/public/articles/securing-filament-plugins-with-plumb-automated-security-scoring-for-php-packages) [ ![](https://cdn.msaied.com/742/2d02018669cdeedccb5de2efb898f0ee.png) Filament · 3 min read### Filament v3.3.56 Released: File Hash Names and Livewire Upload Fix

5 Oct 2026 ](https://msaied.com/public/articles/filament-v3356-released-file-hash-names-and-livewire-upload-fix) 

  Have a technical challenge?
----------------------------

Tell me what you’re building. I reply within two working days.

 [Discuss your project ↗](https://msaied.com/public#contact) 

  © 2026 Mohamed Said · Built with Laravel, meant to last.Senior Backend Engineer specializing in Laravel, scalable SaaS platforms, APIs, and cloud infrastructure. I build secure, high-performance web applications that help businesses grow.

 - [Home](https://msaied.com/public)
- [Articles](https://msaied.com/public/articles)
- [Certificates](https://msaied.com/public/certificates)
- [GitHub](https://github.com/EG-Mohamed)
- [LinkedIn](https://www.linkedin.com/in/msaiedm/)
- [WhatsApp](https://wa.me/201094619204)
- [Email Address](mailto:hello@msaied.com)
- [My CV](https://drive.google.com/file/u/0/d/1MF20IPRJyzfy32mhEutjL5EpSls0w2Q8/view)
- [Sitemap](https://msaied.com/public/sitemap.xml)
