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

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

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

  [ home ](https://www.msaied.com)    [ articles ](https://www.msaied.com/articles)    Laravel AI SDK v0.10: 4 New Features Explained        On this page       1. [  Laravel AI SDK v0.10: What's New ](#laravel-ai-sdk-v010-whats-new)
2. [  Feature 1: Filesystem Tools + Human Tool Approval ](#feature-1-filesystem-tools-human-tool-approval)
3. [  Isolated Workspace Disks ](#isolated-workspace-disks)
4. [  Giving the Agent Its Tools ](#giving-the-agent-its-tools)
5. [  Requiring Approval Before Mutations ](#requiring-approval-before-mutations)
6. [  Handling Approvals in a Livewire Component ](#handling-approvals-in-a-livewire-component)
7. [  Key Takeaways ](#key-takeaways)

  ![Laravel AI SDK v0.10: 4 New Features Explained](https://cdn.msaied.com/540/e74363f048913d3782bc16a7292215db.png)

 [  Laravel ](https://www.msaied.com/articles?category=laravel) [  AI ](https://www.msaied.com/articles?category=ai) [  Livewire ](https://www.msaied.com/articles?category=livewire)  #Laravel AI SDK   #AI Agents   #Filesystem Tools   #Human Approval   #Livewire  

 Laravel AI SDK v0.10: 4 New Features Explained 
================================================

     12 Aug 2026      3 min read    ![Mohamed Said](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp)  Mohamed Said  

       Table of contents

1. [  01   Laravel AI SDK v0.10: What's New  ](#laravel-ai-sdk-v010-whats-new)
2. [  02   Feature 1: Filesystem Tools + Human Tool Approval  ](#feature-1-filesystem-tools-human-tool-approval)
3. [  03   Isolated Workspace Disks  ](#isolated-workspace-disks)
4. [  04   Giving the Agent Its Tools  ](#giving-the-agent-its-tools)
5. [  05   Requiring Approval Before Mutations  ](#requiring-approval-before-mutations)
6. [  06   Handling Approvals in a Livewire Component  ](#handling-approvals-in-a-livewire-component)
7. [  07   Key Takeaways  ](#key-takeaways)

 Laravel AI SDK v0.10: What's New
--------------------------------

Laravel AI SDK v0.10 was released in August 2026, with several features announced at Laracon US 2026 in Boston. This article walks through the first of four new features covered in the full tutorial: **filesystem tools for AI agents combined with human tool approval**.

---

Feature 1: Filesystem Tools + Human Tool Approval
-------------------------------------------------

The SDK now ships with built-in [file storage tools](https://laravel.com/docs/ai-sdk#file-storage-tools) and a [human tool approval](https://laravel.com/docs/ai-sdk#human-tool-approval) mechanism. Together, they let an AI agent read, write, copy, and delete files on a Laravel filesystem disk — while requiring a human to confirm any destructive or mutating action before it executes.

### Isolated Workspace Disks

Each workspace gets its own isolated `Storage` disk so the agent cannot escape its sandbox:

```php
public function disk(): FilesystemAdapter
{
    File::ensureDirectoryExists($this->rootPath());

    return Storage::build([
        'driver' => 'local',
        'root'   => $this->rootPath(),
        'throw'  => true,
    ]);
}

```

### Giving the Agent Its Tools

`FileStorage::readOnly($disk)` provides safe listing and reading tools. Custom tools for writing, copying, and deleting are merged in separately:

```php
public function tools(): iterable
{
    $disk = $this->workspace->disk();

    return FileStorage::readOnly($disk)->merge([
        new WorkspaceWriteFile($disk),
        new WorkspaceCopyFile($disk),
        new WorkspaceDeleteFile($disk),
    ]);
}

```

### Requiring Approval Before Mutations

Each mutable tool implements `Approvable` and uses the `InteractsWithApprovals` trait. The `needsApproval()` method returns an `Approval::required()` message shown to the user in the chat UI:

```php
protected function needsApproval(Request $request): Approval
{
    $path = (string) $request->string('path');

    return Approval::required(
        $this->fileExists($this->disk(), $path)
            ? "This overwrites the existing file [{$path}]."
            : "This creates the new file [{$path}]."
    );
}

```

The delete tool uses the same pattern with a clear warning that the action cannot be undone.

### Handling Approvals in a Livewire Component

The chat is a Livewire component. When the agent hits an approvable tool, it pauses and surfaces `pendingApprovals` on the response. The user can **approve**, **reject**, or **edit the arguments** before the action runs. The component then calls `->continue()` with a `Decisions` object:

```php
$response = $this->agent()
    ->continue($this->conversationId, as: $this->workspace)
    ->prompt(Decisions::from($decisions));

```

Decisions map each approval ID to `Decision::approve()`, `Decision::reject()`, or `Decision::edit($editedArguments)`.

---

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

- **Built-in filesystem tools** let agents read, list, write, copy, and delete files on any Laravel disk.
- **`FileStorage::readOnly()`** gives safe read-only access; mutable tools are opt-in.
- **`Approvable` + `InteractsWithApprovals`** pause agent execution and surface a confirmation message to the user.
- **Users can approve, reject, or edit tool arguments** before a sensitive action executes.
- **Isolated disks per workspace** prevent agents from accessing files outside their sandbox.
- The approval flow integrates cleanly with **Livewire** via `pendingApprovals` on the `AgentResponse`.

---

The full tutorial (Premium) covers three additional new features in Laravel AI SDK v0.10. Read the original article at .

 Found this useful?

          [  ](https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.msaied.com%2Farticles%2Flaravel-ai-sdk-v010-4-new-features-explained&text=Laravel+AI+SDK+v0.10%3A+4+New+Features+Explained) [  ](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.msaied.com%2Farticles%2Flaravel-ai-sdk-v010-4-new-features-explained) 

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

  3 questions  

     Q01  What does FileStorage::readOnly() provide in Laravel AI SDK v0.10?        It gives an AI agent a set of safe, non-mutating tools for listing and reading files on a given Laravel filesystem disk, without exposing write, copy, or delete capabilities. 

      Q02  How does human tool approval work in Laravel AI SDK v0.10?        A tool implements the Approvable contract and uses the InteractsWithApprovals trait. Its needsApproval() method returns an Approval::required() message. The agent pauses before executing the tool and waits for the user to approve, reject, or edit the arguments via the chat UI. 

      Q03  How do you continue an agent conversation after resolving approvals in Livewire?        Call -&gt;continue($conversationId, as: $participant)-&gt;prompt(Decisions::from($decisions)) on the agent, passing a Decisions object that maps each pending approval ID to Decision::approve(), Decision::reject(), or Decision::edit($editedArguments). 

  Continue reading

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

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

 [ ![Octane State Leakage: Detecting and Fixing Shared-Memory Bugs in Laravel Workers](https://cdn.msaied.com/705/8e7dc5a87f9f9a30b8523ca5280e8f97.png) laravel octane performance 

### Octane State Leakage: Detecting and Fixing Shared-Memory Bugs in Laravel Workers

Laravel Octane keeps workers alive across requests, making shared state a silent killer. Learn how to detect,...

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

 26 Sep 2026     4 min read  

  Read    

 ](https://www.msaied.com/articles/octane-state-leakage-detecting-and-fixing-shared-memory-bugs-in-laravel-workers) [ ![Production AI Agents in Laravel: Streaming, Token Budgets, and Structured Output Contracts](https://cdn.msaied.com/704/165bcb76b898fe9911130d2c93b9b805.png) laravel ai llm 

### Production AI Agents in Laravel: Streaming, Token Budgets, and Structured Output Contracts

Building reliable AI agents in Laravel means more than wiring up an API call. Learn how to stream responses sa...

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

 26 Sep 2026     3 min read  

  Read    

 ](https://www.msaied.com/articles/production-ai-agents-in-laravel-streaming-token-budgets-and-structured-output-contracts-4) [ ![Decide with Jev: Build a Laravel AI Content Preflight Checker That Returns a Probability](https://cdn.msaied.com/701/916a0dd2b427c6335395d6d2684524ab.png) Laravel AI Jev TypeSafe 

### Decide with Jev: Build a Laravel AI Content Preflight Checker That Returns a Probability

Jev is a TypeSafe AI model that returns a probability score instead of text. Learn how Harris Raftopoulos uses...

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

 25 Sep 2026     4 min read  

  Read    

 ](https://www.msaied.com/articles/decide-with-jev-build-a-laravel-ai-content-preflight-checker-that-returns-a-probability) 

   [  ![Mohamed Said](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MH.png)   Mohamed Said Laravel Backend Engineer  ](https://www.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://www.msaied.com)
- [Projects](https://www.msaied.com/projects)
- [Articles](https://www.msaied.com/articles)
- [Certificates](https://www.msaied.com/certificates)
- [Contact](https://www.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)
