Урок 03

Агенты: создание и инструкции

Агент — PHP-класс, который инкапсулирует инструкции, инструменты, память и схему вывода.

Создание

php artisan make:agent SupportAgent

Базовая структура

namespace App\Ai\Agents;

use Laravel\Ai\Contracts\Agent;
use Laravel\Ai\Promptable;

class SupportAgent implements Agent
{
    use Promptable;

    public function instructions(): string
    {
        return 'Ты — агент поддержки. Помогай пользователям решать проблемы.';
    }
}

Интерфейс Agent

Обязательный метод — instructions(). Он возвращает системный промпт.

Использование

use App\Ai\Agents\SupportAgent;

$response = SupportAgent::make()->prompt('Как сбросить пароль?');

return (string) $response;

Передача пользователя

$response = SupportAgent::make(user: $user)->prompt('Мой заказ не пришёл');

Агент может получить $user в методах.

Анонимные агенты

Быстрый вызов без класса:

use function Laravel\Ai\agent;

$response = agent(
    instructions: 'Ты — эксперт по Laravel.',
)->prompt('Что такое Eloquent?');

Со схемой:

$response = agent(
    schema: fn ($schema) => [
        'answer' => $schema->string()->required(),
    ],
)->prompt('Что такое Eloquent?');

Промпт с контекстом

$response = (new SupportAgent)->prompt(
    'Проанализируй транскрипт',
    attachments: [$transcriptFile],
);

Атрибуты конфигурации

use Laravel\Ai\Attributes\{
    MaxSteps,
    MaxTokens,
    Temperature,
    Timeout,
};

#[MaxSteps(5)]
#[MaxTokens(1000)]
#[Temperature(0.7)]
#[Timeout(120)]
class SupportAgent implements Agent
  • MaxSteps — максимум шагов с tools
  • MaxTokens — лимит токенов
  • Temperature — 0.0–1.0
  • Timeout — HTTP-таймаут в секундах

Итоги

  • make:agent создаёт класс
  • instructions() — системный промпт
  • prompt() — запрос
  • Анонимные агенты для быстрых задач
  • Атрибуты для конфигурации