Це не просто API-обгортка - це повний шар для AI у стилі Laravel.
Що нового
1. Єдина точка входу для промптів і відповідей. Ви працюєте з агентом як із сервісом, а не з API-клієнтами. Це спрощує виклик і дозволяє централізувати політики.
use function Laravel\Ai\agent;
$response = agent(
instructions: 'Summarize the ticket'
)->prompt('Analyze this request');
return $response->text;
2. Конфігурація у config/ai.php і змінні середовища. Ключі провайдерів і моделі живуть в одному місці, без розкиданих .env. Так легше контролювати середовище та зміну провайдера.
// config/ai.php
'providers' => [
'openai' => [
'key' => env('OPENAI_API_KEY'),
],
],
3. Агенти як класи з інструкціями та контекстом. Ви створюєте агент під конкретну роль і задаєте інструкції як код. Це робить поведінку стабільною і зрозумілою команді.
use Laravel\Ai\Contracts\Agent;
use Laravel\Ai\Promptable;
class SalesCoach implements Agent
{
use Promptable;
public function instructions(): string
{
return 'You are a sales coach.';
}
}
4. Структурована відповідь через JSON Schema. Замість вільного тексту агент повертає структуру з чіткими типами. Це важливо для автоматичних пайплайнів і API.
use Illuminate\Contracts\JsonSchema\JsonSchema;
use Laravel\Ai\Contracts\HasStructuredOutput;
public function schema(JsonSchema $schema): array
{
return [
'score' => $schema->integer()->required(),
];
}
5. Вкладення файлів і зображень у запитах. Агент може читати документи та працювати з зображеннями без ручних аплоадів. Це спрощує аналіз звітів, контрактів та скріншотів.
use Laravel\Ai\Files\Document;
$response = agent(
instructions: 'Summarize this report'
)->prompt('Summary', attachments: [
Document::fromStorage('report.pdf'),
]);
6. Streaming, broadcast і queue без ручної обв’язки. Довгі відповіді можна стрімити або віддати в чергу. Це робить UX швидким і передбачуваним.
use App\Ai\Agents\SalesCoach;
return (new SalesCoach)
->stream('Analyze this transcript');
7. Інструменти агента і провайдерські tools. Агент може підключати пошук, базу знань або зовнішні інструменти. Це розширює відповіді за межі промпту.
use Laravel\Ai\Tools\SimilaritySearch;
public function tools(): iterable
{
return [
SimilaritySearch::usingModel(
Document::class,
'embedding'
),
];
}
8. Middleware для контролю промптів і логіки. Промпти можна модифікувати, логувати і обмежувати. Це зручно для контролю витрат і безпеки.
use Laravel\Ai\Contracts\HasMiddleware;
public function middleware(): array
{
return [new LogPrompts];
}
9. Анонімні агенти для швидких сценаріїв. Коли не потрібен клас, можна створити агента на льоту. Добре для адмінки або інтеграційних задач.
use function Laravel\Ai\agent;
$response = agent(
instructions: 'You are a tutor',
)->prompt('Explain queues');
10. Зображення, аудіо, транскрипції як перші класи. Є єдиний підхід до генерації і зберігання медіа. Це дає повний цикл без сторонніх SDK.
use Laravel\Ai\Image;
$image = Image::of('A clean UI mockup')
->generate();
11. Embeddings, reranking, векторні сховища. Підтримка семантичного пошуку і RAG без кастомної інфраструктури. База та індекси стають частиною стандартного стеку.
use Illuminate\Support\Str;
$vector = Str::of('Laravel AI SDK')
->toEmbeddings();
12. Failover і повний набір фейків для тестів. Можна задати кілька провайдерів і безболісно мокати виклики. Це робить тести стабільними та дешевими.
use App\Ai\Agents\SalesCoach;
SalesCoach::fake();
$response = (new SalesCoach)
->prompt('Hello', provider: ['openai', 'anthropic']);
Навіщо це вам
- менше glue-коду;
- більше передбачуваності;
- інтеграція з чергами, подіями та БД з коробки.