Laravel AI SDK (laravel/ai) - офіційний пакет для роботи з великими мовними моделями та іншими AI-сервісами через єдиний API: OpenAI, Anthropic, Gemini, Mistral, DeepSeek, xAI, Ollama та інші. Код застосунку не залежить від конкретного провайдера - його можна змінити в конфігурації.
composer require laravel/ai
Ключі провайдерів задаються в .env (OPENAI_API_KEY, ANTHROPIC_API_KEY...), налаштування - у config/ai.php.
Агент - окремий PHP-клас, що інкапсулює все потрібне для однієї задачі: інструкції (системний промпт), контекст розмови, інструменти й схему відповіді.
php artisan make:agent SupportAssistant
namespace App\Ai\Agents;
use Laravel\Ai\Contracts\Agent;
use Laravel\Ai\Promptable;
class SupportAssistant implements Agent
{
use Promptable;
public function instructions(): string
{
return 'Ти асистент підтримки інтернет-магазину. Відповідай коротко й лише про замовлення та доставку.';
}
}
Виклик:
$response = (new SupportAssistant)->prompt('Де моє замовлення №1042?');
return (string) $response;
SupportAssistant::make(...) створює агента через контейнер - з автоматичним впровадженням залежностей.
Налаштування через атрибути:
#[Provider(Lab::Anthropic)]
#[MaxTokens(1024)]
#[Temperature(0.2)]
#[Timeout(60)]
class SupportAssistant implements Agent
Що ще вміє SDK, крім текстових агентів:
- структурована відповідь за JSON-схемою;
- інструменти - функції застосунку, які модель може викликати;
- стримінг відповіді й обробка в черзі;
- збереження розмов у базі (
RemembersConversations); - ембединги для семантичного пошуку (
Str::of($text)->toEmbeddings(),whereVectorSimilarToу Query Builder); - генерація зображень, аудіо, транскрибування;
- резервні провайдери:
provider: [Lab::OpenAI, Lab::Anthropic]- якщо перший недоступний чи вичерпав ліміт.
Чому агент - клас, а не просто виклик API: інструкції, інструменти й налаштування зібрані в одному місці, агента можна підробити в тестах (SupportAssistant::fake()) і перевикористати в контролері, команді чи черзі.