Laravel: шлях до створення справді дієздатних AI-агентів

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 12 серпня, 2025
Чи готові ви підвищити ефективність своїх проектів на Laravel і спростити інтеграцію штучного інтелекту? У нашій статті ви дізнаєтеся, як Vizra ADK може революціонізувати ваш підхід до розробки, розширюючи можливості, забезпечуючи тестування та надійність для ваших AI-агентів

Після інтеграції штучного інтелекту в численні Laravel-додатки виявляється одна тенденція: команди витрачають 20% часу на налаштування AI і 80% – на підтримку його стабільності. Кожен проект відновлює вже відомі елементи – управління сесіями, виклики інструментів, тестування запитів, обробку помилок.

Зараз є кращий спосіб.

Vizra ADK об’єднує принципи програмної інженерії з розробкою AI у Laravel. Це не просто ще одна обгортка API, а повноцінний фреймворк для створення, тестування та впровадження розумних агентів, яким команди можуть довіряти в продуктивних середовищах.

Уявіть собі елегантність Laravel, поєднану з потужністю AI. Контролери для агентів. Міграції для пам'яті. Тести для запитів. Все, що розробники люблять у Laravel, тепер доступно для AI.

Безкоштовно, з відкритим кодом та побудовано в стилі Laravel.

# Від нуля до AI-агента за менш ніж 2 хвилини

Давайте створимо щось реальне. Відкрийте термінал:

composer require vizra/vizra-adk
php artisan vizra:install

Додайте ключ постачальника AI до .env:

OPENAI_API_KEY=ваш-ключ-тут
# Також підтримується Anthropic, Google Gemini та багато інших

Тепер створіть свого першого агента:

php artisan vizra:make:agent CustomerSupportAgent

Готово! Ви створили інтелектуального AI-асистента. Давайте зробимо його корисним:

<?php
namespace App\Agents;

use Vizra\VizraADK\Agents\BaseLlmAgent;

class CustomerSupportAgent extends BaseLlmAgent
{
    protected string $name = 'customer_support';

    protected string $description = 'Обробляє запитання клієнтів з емпатією та ефективністю';

    protected string $instructions = "Ви – корисний агент підтримки клієнтів для AcmeStore.
 
        Ключова інформація:
        - Ми продаємо електроніку та гаджети
        - Безкоштовна доставка на замовлення понад $50
        - Політика повернення на 30 днів
        - Години роботи: 9:00 - 18:00 EST

        Будьте дружніми, професійними та орієнтованими на рішення.";

    protected string $model = 'gpt-3.5-turbo';
}

# Миттєве тестування вашого агента!

Хочете побачити вашого агента в дії? У вас є три способи миттєво його протестувати:

# 1. Чат в командному рядку
php artisan vizra:chat customer_support
 
# 2. Красивий веб-дошка (з трасуванням дебагу!)
# Відвідайте: http://your-app.test/vizra
 
# 3. Вбудовані API-інтерфейси (контролер не потрібен!)
curl -X POST http://your-app.test/api/vizra-adk/interact \
  -H "Content-Type: application/json" \
  -d '{"agent_name": "customer_support", "input": "Привіт!"}'

Саме так – Vizra ADK включає готові API-інтерфейси. Не потрібно писати контролери, якщо вам не потрібна власна логіка.

Звісно, якщо ви бажаєте традиційний підхід:

// У вашому контролері (за бажанням)
use App\Agents\CustomerSupportAgent;

public function chat(Request $request)
{
    $response = CustomerSupportAgent::run($request->input('message'))
        ->forUser(auth()->user())
        ->go();

    return response()->json(['reply' => $response]);
}

Ваш агент автоматично зберігає історію розмов залежно від користувача. Забудьте про головний біль із управлінням сесіями.

# Надайте вашим агентам суперсили за допомогою інструментів

Ось де починається цікаве. Ваші агенти можуть не лише спілкуватися, а й робити речі:

php artisan vizra:make:tool OrderLookupTool
<?php
namespace App\Tools;

use Vizra\VizraADK\Contracts\ToolInterface;
use Vizra\VizraADK\System\AgentContext;
use Vizra\VizraADK\Memory\AgentMemory;

class OrderLookupTool implements ToolInterface
{
    public function definition(): array
    {
        return [
            'name' => 'order_lookup',
            'description' => 'Пошук замовлення за ID',
            'parameters' => [
                'type' => 'object',
                'properties' => [
                    'order_id' => [
                        'type' => 'string',
                        'description' => 'ID замовлення для пошуку',
                    ],
                ],
                'required' => ['order_id'],
            ],
        ];
    }

    public function execute(array $arguments, AgentContext $context, AgentMemory $memory): string
    {
        $order = Order::find($arguments['order_id']);

        if (!$order) {
            return json_encode(['error' => 'Замовлення не знайдено']);
        }

        // Зберегти цю взаємодію в пам'яті
        $memory->addFact("Недавній пошук замовлення: #{$order->id}", 1.0);

        return json_encode([
            'order_id' => $order->id,
            'status' => $order->status,
            'total' => $order->total,
            'items' => $order->items->count(),
        ]);
    }
}

Зв'яжіть інструмент з вашим агентом:

class CustomerSupportAgent extends BaseLlmAgent
{
    protected array $tools = [
        OrderLookupTool::class,
    ];
}

Тепер ваш агент може шукати реальні замовлення, коли клієнти запитують. Жодних більше "Я лише AI" відмовок.

# Зміна гри: тестуйте ваш AI, як тестуєте свій код

Ось що відрізняє Vizra від інших пакетів AI для Laravel – оцінки. Так само, як ви не випустите код без тестів, чому б не перевірити AI на якість?

php artisan vizra:make:eval CustomerSupportQuality

Це створить ваш клас оцінки і CSV-файл для тестових випадків. Додайте кілька реальних сценаріїв:

prompt,expected_response,description
"Де моє замовлення #12345?",order,"Має знайти статус замовлення"
"Я хочу повернути це",return,"Має пояснити політику повернення"
"Ваш сервіс жахливий!",sorry,"Має відповідати з емпатією"
"Які у вас години роботи?",9 AM,"Має вказати години роботи"

Тепер визначте, що означає "якість" для вашого агента, використовуючи вбудовані асерції Vizra:

<?php
namespace App\Evaluations;

use Vizra\VizraADK\Evaluations\BaseEvaluation;

class CustomerSupportQuality extends BaseEvaluation
{
    public string $agentName = 'customer_support';
    public string $csvPath = 'app/Evaluations/data/customer_support_quality.csv';

    public function evaluateRow(array $csvRowData, string $llmResponse): array
    {
        $this->resetAssertionResults();

        // Перевірка, чи містить відповідь очікувані ключові слова
        if (isset($csvRowData['expected_response'])) {
            $this->assertResponseContains(
                $llmResponse,
                $csvRowData['expected_response']
            );
        }

        // Всі відповіді підтримки мають бути ввічливими
        $this->assertResponseHasPositiveSentiment($llmResponse);

        // Не пишіть романи
        $this->assertWordCountBetween($llmResponse, 20, 150);

        // Для скарг перевірте наявність емпатії
        if (str_contains($csvRowData['prompt'], 'жахливий')) {
            $this->assertResponseContains($llmResponse, 'вибачте');
        }

        return parent::evaluateRow($csvRowData, $llmResponse);
    }
}

Зверніть увагу на ці методи асерцій? Vizra ADK включає більше 20 вбудованих асерцій для валідації контенту, аналізу емоцій, перевірки довжини і більше. Не потрібно писати складну логіку валідації – просто використовуйте асерції на зразок assertResponseHasPositiveSentiment() або assertWordCountBetween(). І так, ви також можете додавати власні асерції!

Запустіть ваші перевірки якості:

php artisan vizra:run:eval CustomerSupportQuality

Запускаємо оцінку: customer_support_quality
Обробка 4 тестових випадків...
████████████████████████ 4/4

Результат: Всього: 4, Пройшло: 3 (75%), Не пройшло: 1

Один тест не пройшов перевірку на кількість слів – агент написав 180 слів, пояснюючи політику повернення. Саме тому вам потрібні оцінки! Тепер ви можете налаштувати інструкції вашого агента, щоб вони були лаконічнішими, або відкоригувати асерції відповідно до ваших реальних вимог.

# Створено розробниками для розробників

Vizra ADK – це не просто ще один пакет – це повноцінний фреймворк для розробки AI:

# Почніть будувати сьогодні (безкоштовно!)

composer require vizra/vizra-adk

Весь фреймворк з відкритим кодом та ліцензією MIT. Створюйте агентів для підтримки клієнтів, аналізу даних, генерації контенту або для будь-чого, що ви тільки можете уявити.

# Хочете масштабу? Скоро з'явиться Vizra Cloud

Хоча ADK завжди буде безкоштовним, ми запускаємо Vizra Cloud для команд, які хочуть:

Бета-ціна: $29/місяць (50% знижки від звичайної ціни, зафіксованої на 12 місяців).

# Ваша подорож AI починається зараз

Перестаньте боротися з AI API. Забудьте про надії на правильність поведінки AI. Починайте створювати AI-агентів за допомогою Laravel – з належними інструментами, тестуванням та впевненістю.

Готові створити щось вражаюче?

🚀 Почніть з Vizra ADK
📖 Читати документацію
Підтримайте нас на GitHub


Vizra ADK розроблений незалежним розробником Ароном Ламсденом. Створено з любов'ю для спільноти Laravel.