Карта екосистеми штучного інтелекту Laravel: Prism, LarAgent, Neuron AI та Boost
Від простих викликів LLM до повноцінних агентів у Laravel: що роблять Prism, LarAgent, Neuron AI, AI SDK та Boost, з прикладом RAG для запитань щодо політики кадрів.
Джерела: From Calling an LLM to Building an Autonomous Agent: Mapping Laravel’s AI Ecosystem in 2026
Якщо пошукати у Packagist запитом „laravel ai“, результати приголомшують. За останній рік з’явилося десятки пакетів, кожен з яких пропонує себе як найпростіший шлях до створення AI-агентів у Laravel. Назви цих пакетів зливаються в одну масу, а інструкції до них здаються переконливими, але після встановлення кількох з них виявляється, що вони вирішують зовсім інші проблеми.
Багато розробників постраждали від цього. Хтось хоче просту функцію створення текстового резюме, але в результаті використовує цілий фреймворк для агентів із функціями керування пам’яттю, виклику інструментів та багатоетапної оркестрації, які зовсім не потрібні для цієї функції. У підсумку утворюється купа зайвого коду, а процес налаштування займає більше часу, ніж сама функція.
У наступному описано трьох основних учасників екосистеми агентів Laravel: Prism, LarAgent та Neuron AI. Також роз’яснюються два часто плутаних терміни – Laravel AI SDK та Laravel Boost – а на завершення наведений практичний приклад: асистент, який відповідає на запитання з внутрішніх корпоративних документів.
Від простих викликів API до екосистеми
Кілька років тому для додавання ШІ до додатку Laravel існував лише один спосіб – потрібно було використовувати HTTP-клієнт, вручну надсилати запити на сервер OpenAI та самостійно обробляти JSON-дані. Перехід на Anthropic вже наступного дня вимагав переписування цього коду.
Зараз ситуація з зображенням інша. За повідомленнями, команда Laravel Core випустила офіційний SDK для ШІ на початку 2026 року, який постачається разом із підтримкою Boost та MCP як частина більш широкого набору Laravel AI. Більше варіантів призводить до втоми від прийняття рішень, тому важливо мати чітку когнітивну модель: коли потрібна фреймворк-система агентів, а коли підійде найпростіший інструмент?
Екосистема також розвивається швидко. Пакет, який є популярним цього місяця, через шість місяців може залишитися недієвим, тоді як інший стане улюбленим серед спільноти. Замість того, щоб запам’ятовувати назви, вивчіть категорію проблем, які вирішує кожен інструмент. Якщо ви правильно визначите категорію, вибір інструменту буде простим, навіть якщо наступного місяця з’явиться щось нове.
Виклик LLM проти використання агента
Більшість плутанини починається саме тут. Багато розробників вважають, що використання ШІ означає використання агента, проте ці два підходи знаходяться на зовсім різних рівнях складності.
- Виклик LLM є простим: один запит — одна відповідь. Уявіть собі створення опису продукту або узагальнення статті у трьох реченнях. Обмін відбувається в один бік, і протягом цього процесу нічого не вирішується.
- Агент діє крок за кроком. Він вирішує, коли викликати інструмент, коли поставити додаткове запитання, коли отримати дані з бази даних перед відповіддю та коли завдання завершено. Це цикл прийняття рішень, а не просто цикл запит-відповідь.
Якщо потреба належить до першого типу, використання фреймворку агента схоже на оренду контейнера для транспортування продуктів на тиждень. Це працює, але є марною тратою зусиль, і саме тут стає зрозумілим значення Prism.
Prism: базовий шар для взаємодії з LLM
Prism — найлегший з трьох. Це суто шар абстракції. Ви пишете код один раз, а потім змінюєте постачальників — чи то OpenAI, Anthropic, Gemini, Mistral, Ollama чи інші — без змін у структурі вашого коду. Основна процедура генерації тексту виглядає так:
use Prism\Prism\Facades\Prism;
use Prism\Prism\Enums\Provider;
$response = Prism::text()
->using(Provider::Anthropic, 'claude-3-7-sonnet-latest')
->withSystemPrompt('You are an assistant who explains technical terms in plain language.')
->withPrompt('Explain what dependency injection is.')
->asText();
echo $response->text;
Його перевагою є єдина інтерфейсна схема серед різних постачальників. Перехід від Anthropic до OpenAI означає зміну лише виклику using(), більше нічого. Він також підтримує структурований вихід, базові виклики інструментів, а також вхід зображень та документів.
Проте треба пам’ятати про його обмеження. Prism не призначений для керування довготривалим станом чи автономними багатокроковими процесами. Якщо ви хочете ШІ, яке виглядає живим, має пам’ять та здатність діяти в рамках ланцюга рішень, сам Prism цього не зробить. Саме тут на сцену виходить LarAgent.
LarAgent: агенти, створені за принципом моделей Eloquent
LarAgent використовує підхід, який одразу здається знайомим розробникам Laravel: ви визначаєте агента майже так само, як визначаєте модель Eloquent. Існує команда artisan, структура класів та конфігурація з чітко вираженим стилем Laravel.
namespace App\AiAgents;
use LarAgent\Agent;
use LarAgent\Attributes\Tool;
class SupportAgent extends Agent
{
protected $model = 'gpt-4o';
protected $history = 'in_memory';
protected $provider = 'default';
public function instructions()
{
return 'You are a support agent that helps users track their order status.';
}
#[Tool('Get order status by invoice number')]
public function getOrderStatus($invoiceNumber)
{
return Order::where('invoice', $invoiceNumber)->first()?->status ?? 'Order not found';
}
}
Після цього можна звернутися до агента щодо конкретного користувача, причому історія розмов зберігається автоматично:
use App\AiAgents\SupportAgent;
SupportAgent::forUser(auth()->user())->respond($userMessage);
Порівняйте це з Prism. Тут інструмент реєструється за допомогою атрибута #[Tool], і сам агент вирішує, коли його викликати, на основі того, що каже користувач. Це саме та поведінка агента, про яку йшлося раніше — шар прийняття рішень, а не одинарна заміна.
LarAgent є гарним варіантом, коли агенту потрібна чітка ідентичність, пов’язана з певною функцією, такою як підтримка клієнтів, асистент для введення даних чи внутрішній помічник, до якого один і той самий користувач постійно звертається з контекстом, який має зберігатися. Історія операцій обробляється окремо для кожного користувача, тому не потрібно розробляти спеціальну схему для неї. Ви обираєте механізм зберігання історії, наприклад пам’ять чи кеш, а LarAgent робить решту. Для невеликих команд, які мають швидко запустити функцію агента без значної налаштуваності, це справжня перевага.
Neuron AI: для роботи за межами одного агента
Коли проект розвивається до такого рівня, що потрібен RAG промислового рівня, кілька агентів, які працюють разом, або детальний огляд кожного кроку, який виконує агент, Neuron AI є варіантом для розгляду.
Він не є специфічним для Laravel. Це чиста фреймворк-структура для агентів на PHP, яка легко інтегрується в проект Laravel без проблем. Його архітектура нагадує справжній фреймворк: об’єкт SystemPrompt, який надає форму запитам, RAG, який обробляється класом RAG, сховища векторів, що можуть бути від простого внутрішнього сховища до Pinecone та Elasticsearch, а також інструмент Inspector для моніторингу, який відображає живу часову шкалу дій агента. Основне визначення агента:
namespace App\Neuron;
use NeuronAI\Agent;
use NeuronAI\SystemPrompt;
use NeuronAI\Providers\AIProviderInterface;
use NeuronAI\Providers\Anthropic\Anthropic;
class DataAnalystAgent extends Agent
{
protected function provider(): AIProviderInterface
{
return new Anthropic(
key: env('ANTHROPIC_API_KEY'),
model: 'claude-3-7-sonnet-latest',
);
}
public function instructions(): string
{
return (string) new SystemPrompt(
background: ['You are a data analyst helping the marketing team understand sales trends.'],
steps: [
'Fetch sales data using the available tool.',
'Analyze the trends and patterns that emerge.',
'Communicate the insight in plain, easy-to-understand language.',
],
);
}
}
Побачте, наскільки це більш чітке порівняно з LarAgent. Системний запит чітко розділяє фон, кроки та результат, і це робиться навмисно. Neuron AI призначений для ситуацій, коли складність вже зросла, і потрібна чітка структура, щоб агент не збився з курсу під час виконання завдання.
Laravel AI SDK та Laravel Boost: поширена плутанина
Багато розробників вважають їх двома назвами одного й того самого продукту. Вони вирішують абсолютно різні проблеми, і, за повідомленнями, команда Laravel опублікувала окрему статтю саме для того, щоб розвіяти цю плутанину.
- The Laravel AI SDK (
laravel/ai) — це офіційний SDK від основної команди. Його завдання — інтегрувати функції ШІ у ваш додаток за допомогою єдиної API, яка підтримує обробку тексту, структурований вихід, зображення, аудіо та ембеддинги. Він базується на Prism, тому тим, хто знайомий із Prism, буде легко перейти на нього. Крім того, офіційний пакет містить фейкові дані для тестування, можливість виконання завдань у фоновому режимі та автоматичний перехід між постачальниками послуг. - Laravel Boost — це зовсім інше. Це сервер MCP, який працює у вашому середовищі розробки та допомагає асистентам з кодування на основі ШІ, таким як Claude Code чи Cursor, створювати код на Laravel, який краще відповідає стандартам цієї фреймворк-системи. Boost ніколи не впливає на продакшн-додаток. Це залежність лише для розробників, яка активна під час написання коду, і не є частиною функцій ШІ, які бачать кінцеві користувачі.
Простіше кажучи, AI SDK допомагає вам створювати функції штучного інтелекту, а Boost допомагає штучному інтелекту допомагати вам писати кращий код на Laravel. Вони працюють паралельно, і жоден з них не замінює інший.
Кейс дослідження: відповіді на запитання з внутрішніх документів
Ось поширена вимога на робочому місці. Команда з управління персоналом втомилася відповідати на однакові запитання щодо політики відпусток та хоче чат-бота, який би відповідав на них, посилаючись на вже існуючі документи з цієї політики. Це класичний приклад використання технології RAG, тобто відповіді ґрунтуються на власних документах компанії, а не лише на тому, що модель засвоїла під час навчання.
Для цього потрібен магазин векторів, ембеддинги та автоматичне пошукове функціонування, що робить Neuron AI ідеальним вибором:
namespace App\Neuron;
use NeuronAI\Providers\AIProviderInterface;
use NeuronAI\Providers\Anthropic\Anthropic;
use NeuronAI\RAG\RAG;
use NeuronAI\RAG\Embeddings\EmbeddingsProviderInterface;
use NeuronAI\RAG\VectorStore\VectorStoreInterface;
use NeuronAI\RAG\VectorStore\MemoryVectorStore;
class HrPolicyAgent extends RAG
{
protected function provider(): AIProviderInterface
{
return new Anthropic(
key: env('ANTHROPIC_API_KEY'),
model: 'claude-3-7-sonnet-latest',
);
}
protected function vectorStore(): VectorStoreInterface
{
return new MemoryVectorStore();
}
protected function embeddings(): EmbeddingsProviderInterface
{
// your preferred embeddings provider, e.g. OpenAI or Voyage
}
}
Поетапний процес приблизно такий:
- Документи з правилами кадрової політики у форматі PDF або простого тексту діляться на менші фрагменти, перетворюються на ембеддинги та зберігаються у векторному сховищі.
- Коли співробітник запитує, скільки днів невикористаної щорічної відпустки переходить у наступний рік, цей запит також перетворюється на ембеддинг.
- Neuron AI шукає фрагменти з найбільш схожим змістом, а не лише за ключовими словами, та використовує їх як додатковий контекст для LLM.
- LLM відповідає на основі цих конкретних фрагментів, а не припускає, спираючись на загальні знання.
Результатом є чат-бот, чиї відповіді ґрунтуються на реальних правилах компанії, а не на універсальних відповідях, які можуть бути просто неправильними. Ви можете змусити LarAgent працювати за допомогою ручних інструментів для досягнення того ж ефекту, але тоді доведеться створювати власну логіку пошуку, розділення на фрагменти та порівняння схожості. Neuron AI постачає ці компоненти вже готовими.
За наявності лише кількох файлів з правилами у прикладі достатньо MemoryVectorStore, оскільки він зберігає ембеддинги в пам’яті протягом сесії. Коли набір документів зростає та потрібно забезпечити його функціонування під час розгортання, можна замінити реалізацію vectorStore() на справжню базу даних векторів, таку як Pinecone чи Elasticsearch, не змінюючи логіку агента. Чітка абстракція дозволяє почати з мінімуму та поступово масштабуватися, уникаючи необхідності фіксування остаточної архітектури вже з самого початку.
Частою помилкою у роботі з RAG є завантаження всього документа цілим, без розділення на частини. Довге положення про кадри, надане як один неперервний блок, ускладнює пошук схожості, оскільки система не може визначити, яка частина відповідає на запитання. Розділення документа за темами чи кількома абзацами допомагає знаходити потрібну частину.
Який вибрати
- Prism: справжній одиничний запит та відповідь, наприклад генерація тексту, резюме чи описів, де ви хочете без проблем змінювати постачальників.
- Laravel AI SDK: офіційний варіант, підтримуваний основною командою, з тестовими даними, фоновими завданнями та механізмом аварійного переходу на іншого постачальника, особливо підходить для проектів, якими ваша команда буде керувати роками.
- LarAgent: агент із чітко визначеною ідентичністю, до якого один і той самий користувач звертається знову та знову, з інтерфейсом для розробників, схожим на Eloquent, та інструментами, які оголошуються за допомогою простих атрибутів.
- Neuron AI: проект вийшов за межі простих агентів та потребує складних рішень типу RAG, кількох взаємодіючих агентів, детального відстеження чи робочого процесу, складеного з взаємозалежних кроків.
Жоден з цих пакетів не є абсолютно найкращим — лише той, який підходить до складності завдань, з якими ви справді стикаєтесь. Почніть з найпростішого варіанту та переходьте до складніших лише тоді, коли це необхідно. Найкращий код — це не найрозумніший, а той, який підходить саме до конкретної проблеми.