> Source: https://laravilt.com/docs/ai/tools/introduction

# AI Tools

Tools give AI agents ability to perform actions.

## Overview

| Topic | Description |
|-------|-------------|
| [Query Tool](https://github.com/laravilt/laravilt/blob/HEAD/docs/ai/tools/query-tool) | Search records |
| [CRUD Tools](https://github.com/laravilt/laravilt/blob/HEAD/docs/ai/tools/crud-tools) | Create, Update, Delete |
| [Custom Tools](https://github.com/laravilt/laravilt/blob/HEAD/docs/ai/tools/custom-tools) | Build your own |

## Built-in Tools

| Tool | Description |
|------|-------------|
| QueryTool | Search and filter records |
| CreateTool | Create new records |
| UpdateTool | Update existing records |
| DeleteTool | Delete records |

## Basic Usage

```php
<?php

use Laravilt\AI\AIManager;

$response = $ai->provider()->chatWithTools(
    messages: [
        ['role' => 'user', 'content' => 'Find products under $50'],
    ],
    tools: $agent->getTools()
);

if ($response['tool_calls']) {
    foreach ($response['tool_calls'] as $call) {
        $result = executeToolCall($call);
    }
}
```

## Automatic Tool Generation

Resource agents auto-generate tools:

```php
<?php

use Laravilt\AI\ResourceAgent;
use App\Models\Product;

$agent = ResourceAgent::make('product_agent')
    ->model(Product::class)
    ->autoGenerateTools();

// Creates: QueryTool, CreateTool, UpdateTool, DeleteTool
```

## Related

- [Query Tool](https://github.com/laravilt/laravilt/blob/HEAD/docs/ai/tools/query-tool) - Search records
- [CRUD Tools](https://github.com/laravilt/laravilt/blob/HEAD/docs/ai/tools/crud-tools) - Data operations
- [Custom Tools](https://github.com/laravilt/laravilt/blob/HEAD/docs/ai/tools/custom-tools) - Build custom
