Агенты: создание и инструкции
Агент — 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— максимум шагов с toolsMaxTokens— лимит токеновTemperature— 0.0–1.0Timeout— HTTP-таймаут в секундах
Итоги
make:agentсоздаёт классinstructions()— системный промптprompt()— запрос- Анонимные агенты для быстрых задач
- Атрибуты для конфигурации