---
title: "Toolkit: каталог готових AI-інструментів для Laravel AI SDK"
url: https://laravelukraine.com/blog/toolkit-katalog-gotovix-ai-instrumentiv-dlia-laravel-ai-sdk
date: 2026-06-14
source: https://laravel-news.com/toolkit-reusable-ai-tools-for-the-laravel-ai-sdk?utm_medium=feed&utm_source=feedpress.me&utm_campaign=Feed%3A+laravelnews
---

# Toolkit: каталог готових AI-інструментів для Laravel AI SDK

Pushpak Chhajed під егідою Ship Fast Labs представив Toolkit - спільнотну колекцію готових інструментів для Laravel AI SDK. Усі інструменти зберігаються в одному монорепозиторії, але постачаються як окремі Composer-пакети, тож ви встановлюєте лише ті, які потрібні конкретному агенту.

## Один пакет на інструмент, без сервіс-провайдерів

Кожен інструмент - це клас, що реалізує інтерфейс `Laravel\Ai\Contracts\Tool` з методами `description()`, `handle()` та `schema()`. Немає спільного ядра, жодного сервіс-провайдера для реєстрації та жодних конфігураційних файлів для публікації. Ви просто встановлюєте потрібний пакет, створюєте екземпляр інструменту та передаєте його в метод `tools()` агента:

```
composer require shipfastlabs/toolkit-calculator
composer require shipfastlabs/toolkit-database
```

```
use Shipfastlabs\Toolkit\Calculator\CalculatorTool;
use Shipfastlabs\Toolkit\Database\DatabaseQueryTool;

$tools = [
    new CalculatorTool,
    new DatabaseQueryTool,
];
```

Кожен інструмент описує своє призначення через `description()` та свої вхідні параметри через `schema()`, а модель сама вирішує, коли його викликати. Результати, включно з помилками, повертаються як рядки, тож модель може прочитати помилку та спробувати відновитися замість того, щоб запит просто завершився з помилкою.

## Калькулятор без eval()

Інструмент Calculator приймає рядок `expression` і обчислює його за допомогою рекурсивного парсера замість PHP-функції `eval()`. Він підтримує оператори `+`, `-`, `*`, `/`, `%`, `^` (правоасоціативне піднесення до степеня), дужки, унарні знаки та десяткові числа. Некоректні вхідні дані, ділення або остача від ділення на нуль, а також нескінченні результати повертаються моделі як звичайні рядки замість викидання винятків. Це "чистий" інструмент: без конфігурації, без сервіс-провайдера.

## Read-only запити до бази даних

Інструмент Database виконує один SQL-запит `SELECT` і повертає відповідні рядки як відформатований JSON. Його захисні механізми є ключовими:

- Дозволяється лише один запит, що починається з `SELECT` (або `WITH … SELECT` CTE).
- `INSERT`, `UPDATE`, `DELETE`, `DROP`, `ALTER` та подібні ключові слова відхиляються навіть всередині `SELECT`-запиту.
- Запити з роздільниками `;` відхиляються.
- До будь-якого запиту без `LIMIT` автоматично додається обмеження.

Інструменти з конфігурацією читають налаштування з ключа `ai.toolkit.*`, який ви додаєте до існуючого файлу `config/ai.php` Laravel AI SDK - окремий конфігураційний файл публікувати не потрібно:

```
// config/ai.php
'toolkit' => [
    'database' => [
        'connection' => env('TOOLKIT_DATABASE_CONNECTION'),
        'max_rows' => (int) env('TOOLKIT_DATABASE_MAX_ROWS', 100),
    ],
],
```

Вказання `connection` на read-only репліку додає ще один рівень безпеки, а `max_rows` обмежує кількість рядків у відповіді.

## Провайдери веб-пошуку та досліджень

Три пакети обгортають API для пошуку та досліджень, кожен з хелпером, що реєструє весь набір одразу, або окремими класами інструментів на вибір:

- **Exa** (`toolkit-exa`): `ExaSearch`, `ExaFindSimilar`, `ExaGetContents` та `ExaAnswer` для веб-пошуку на основі embeddings, пошуку схожого контенту, видобування вмісту та відповідей з джерелами та цитатами.
- **Perplexity** (`toolkit-perplexity`): `PerplexitySearch` для ранжованих джерел та `PerplexityAsk` для відповідей з цитатами через моделі Sonar з режимами пошуку `web`, `academic` та `sec`.
- **Tavily** (`toolkit-tavily`): `TavilySearch`, `TavilyExtract`, `TavilyCrawl` та `TavilyMap` для пошуку, видобування контенту, crawling сайтів та створення карти сайту.

```
use Shipfastlabs\Toolkit\Exa\Exa;

$tools = Exa::all(); // Collection<int, Tool>
```

Кожен провайдер читає свій API-ключ з конфігурації `services` Laravel та опціональні налаштування за замовчуванням з `ai.toolkit.*`. Числові параметри обмежуються допустимими діапазонами, enum-параметри повертаються до безпечних значень за замовчуванням, а помилки API перехоплюються та повертаються як рядки замість викидання винятків.

## Бібліотека ендпоінтів JigsawStack

Пакет JigsawStack (`toolkit-jigsawstack`) надає інструмент для кожного ендпоінту, згруповані в категорії: загальні, переклад, веб, зображення, аудіо та валідація. Це охоплює аналіз тональності, резюмування, embeddings, text-to-SQL, прогнозування часових рядів, переклад тексту та зображень, веб-пошук, AI-скрапінг, HTML-to-image/PDF, VOCR, виявлення об'єктів, speech-to-text та перевірку на NSFW/лайку/орфографію/спам.

Кожен інструмент відповідає одному ендпоінту та повертає сирий JSON-відповідь (відформатований), щоб модель могла прочитати кожне поле. Запити припиняються через 60 секунд, а відсутність API-ключа повертає зрозуміле повідомлення "not configured".

## Встановлення

Оберіть потрібні інструменти та встановлюйте їх окремо - наприклад:

```
composer require shipfastlabs/toolkit-calculator
composer require shipfastlabs/toolkit-tavily
```

Інструменти для роботи з віддаленими API потребують ключа провайдера в `config/services.php` (та відповідного запису в `.env`). Сторінка документації кожного інструменту містить точні ключі конфігурації та значення за замовчуванням.

Переглянути повний каталог можна на [офіційному сайті Toolkit](https://toolkit.shipfastlabs.com/), а вихідний код доступний на [GitHub](https://github.com/shipfastlabs/toolkit).
