---
title: "Laravel AI SDK 1.0: класифікація, схвалення інструментів та нові можливості"
url: https://laravelukraine.com/blog/laravel-ai-sdk-10-klasifikaciia-zatverdzennia-instrumentiv-ta-novi-mozlivosti
date: 2026-09-24
source: https://laravel-news.com/laravel-ai-sdk-1-0
---

# Laravel AI SDK 1.0: класифікація, схвалення інструментів та нові можливості

Команда Laravel щойно випустила версію 1.0 Laravel AI SDK - офіційного пакета, який надає єдиний API для роботи з AI-провайдерами у Laravel-додатках. SDK вперше анонсували в лютому цього року, а це оновлення додає нові можливості класифікації, підтримку двох фронтенд-протоколів чату та новий формат зберігання розмов.

Встановлення виконується стандартною командою:

```bash
composer require laravel/ai
```

## Класифікація

Класифікація тепер є окремою можливістю SDK поряд з текстом, зображеннями, аудіо та embeddings. Вона покриває швидкі рішення, такі як маршрутизація тікетів підтримки або позначення коментарів. Функція працює на моделях Jev від TypeSafe і, за словами команди, може відповідати на запитання за мілісекунди за частку вартості традиційних LLM.

Ви задаєте набір питань і отримуєте типізовану відповідь для кожного:

```php
use Laravel\Ai\Classification;
use Laravel\Ai\Classification\Boolean;
use Laravel\Ai\Classification\Choice;

$response = Classification::of($ticket->body)->questions([
    'is_urgent' => new Boolean('Does this message convey urgency?'),
    'department' => new Choice('Which team should handle this?', [
        'billing' => 'Payments, invoicing, refunds',
        'technical' => 'Bugs, outages, integrations',
        'sales' => 'Pricing, plans, upgrades',
    ]),
])->classify();

$response['is_urgent']->isTrue();
$response['department']->choice; // 'technical'
```

Також доступний тип питання `Score`, який повертає значення від 0.0 до 1.0. Для одного питання типу так/ні новий макрос `Str::decide` повертає boolean, а аргумент `threshold` встановлює рівень впевненості моделі:

```php
Str::of($message)->decide('Is this spam?');
```

Наразі класифікація працює з TypeSafe та OpenRouter. Команда планує додати інших провайдерів за тим же API, коли вони випустять подібні моделі.

## Потокова передача Vercel Chat та AG-UI

SDK тепер може читати запити та передавати відповіді потоком, використовуючи протоколи Vercel Chat та AG-UI. Це дозволяє поєднувати його з фронтенд-бібліотеками, які вже підтримують ці протоколи. Ось приклад маршруту для Vercel chat:

```php
use Illuminate\Http\Request;
use Laravel\Ai\Vercel\Vercel;

Route::post('/chat', function (Request $request) {
    $chat = Vercel::chat($request);
    
    return (new SupportAgent)
        ->withMessages($chat->history())
        ->stream($chat)
        ->usingProtocol($chat->protocol());
});
```

Цей маршрут зчитує нове повідомлення, оновлює історію розмови в базі даних та обробляє будь-які схвалення інструментів, надіслані користувачем. Для клієнтів AG-UI, таких як CopilotKit, замість цього викличте `usingAgentUserInteractionProtocol()` на потоці. Метод `Vercel::toUiMessages()` конвертує збережені повідомлення назад у формат клієнта, коли потрібно відновити екран чату після перезавантаження сторінки.

## Схвалення викликів інструментів

Інструмент, який реалізує контракт `Approvable` та використовує трейт `InteractsWithApprovals`, призупиняє роботу агента до схвалення виклику. Це чудово працює для інструменту видалення файлів:

```php
use Laravel\Ai\Concerns\InteractsWithApprovals;
use Laravel\Ai\Contracts\Approvable;
use Laravel\Ai\Contracts\Tool;

class DeleteFile implements Approvable, Tool
{
    use InteractsWithApprovals;
    
    // ...
}
```

Відповідь містить список усіх очікуючих викликів з аргументами, які вибрала модель. Ви продовжуєте розмову з рішенням для кожного виклику. Рішення може схвалити виклик, відхилити його з причиною, яку бачить модель, або відредагувати аргументи перед виконанням інструменту. Схвалення працюють з методами `prompt`, `stream`, `queue` та broadcast.

## Інші зміни у версії 1.0

**Middleware для кожного кроку:** Middleware агента тепер виконується на кожному кроці генерації, а не раз на запит. Кожен крок надходить як `PendingStep`, який можна змінити методами `withModel`, `withTools`, `withoutTools` та `withMaxTokens`. Наприклад, ви можете видалити дорогий інструмент після того, як агент використав його один раз.

**Пошук інструментів:** Загорніть рідко використовувані інструменти в `ToolSearch`, і провайдер завантажуватиме їх лише коли запит їх потребує. Це працює на OpenAI та Anthropic.

**Виконання коду:** Інструмент провайдера `CodeExecution` виконує код у пісочниці провайдера на Anthropic, OpenAI, Azure, Gemini та xAI.

**Кроки розмови:** Повідомлення тепер зберігають один JSON-стовпець `steps` з одним записом на кожний round-trip, і кожен результат інструменту зберігається разом з викликом, який його створив.

**Звітність про використання:** `promptTokens` та `completionTokens` тепер називаються `inputTokens` та `outputTokens` і включають повні підрахунки провайдера для всіх провайдерів.

## Оновлення до версії 1.0

Основні breaking changes стосуються зберігання розмов, middleware агентів, підрахунку токенів та протоколів потокової передачі. Якщо ви виконуєте сирі SQL-запити до стовпців `tool_calls` або `tool_results`, вам потрібно буде перейти на `steps`. Офіційний гайд з оновлення також включає міграцію backfill, яку необхідно виконати один раз перед розгортанням версії 1.0.

Команда рекомендує доручити більшу частину оновлення AI-асистенту через Laravel Boost:

```bash
composer require laravel/boost --dev
php artisan boost:install
```

Потім запустіть команду `/upgrade-ai-sdk-v1` у Claude Code, Cursor, OpenCode, Gemini або VS Code, і Boost проведе вашого асистента через гайд крок за кроком.

Повний опис усіх змін та приклади коду доступні в офіційному анонсі, а для початку роботи звертайтеся до документації AI SDK.
