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://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 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://msaied.com/articles?category=laravel) [  AI ](https://msaied.com/articles?category=ai) [  Livewire ](https://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/01KT78WE565VEMM3PSNQAAB0MJ.jpg)  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%2Fmsaied.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%2Fmsaied.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://msaied.com/articles) 

 [ ![NightOwl: Laravel Monitoring With Flat Pricing and Your Own PostgreSQL Storage](https://cdn.msaied.com/538/60582948c0339b19e872f4f3c03171f2.png) Laravel Monitoring PostgreSQL 

### NightOwl: Laravel Monitoring With Flat Pricing and Your Own PostgreSQL Storage

NightOwl redirects Laravel Nightwatch telemetry into a PostgreSQL database you own, replacing per-event billin...

  ![Mohamed Said](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MJ.jpg)  Mohamed Said 

 11 Aug 2026     3 min read  

  Read    

 ](https://msaied.com/articles/nightowl-laravel-monitoring-with-flat-pricing-and-your-own-postgresql-storage) [ ![Mock PHP Classes in Tests With the Double Library](https://cdn.msaied.com/537/be45e68dffd72aa9bd833c2f409fcb07.png) testing mocking phpunit 

### Mock PHP Classes in Tests With the Double Library

Double is a PHP 8.3 test double library by Jason McCreary that replaces mocks, spies, and partials with a sing...

  ![Mohamed Said](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MJ.jpg)  Mohamed Said 

 11 Aug 2026     4 min read  

  Read    

 ](https://msaied.com/articles/mock-php-classes-in-tests-with-the-double-library) [ ![Cursor Pagination and Lazy Collections at Scale in Laravel](https://cdn.msaied.com/536/3aab48ef4a4eaa26a3267637dc2ec8c7.png) laravel eloquent performance 

### Cursor Pagination and Lazy Collections at Scale in Laravel

Offset pagination breaks under large datasets. Learn how Laravel's cursor pagination and lazy collections let...

  ![Mohamed Said](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MJ.jpg)  Mohamed Said 

 11 Aug 2026     3 min read  

  Read    

 ](https://msaied.com/articles/cursor-pagination-and-lazy-collections-at-scale-in-laravel) 

   [  ![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)
