Галоўная / Артыкулы

Апрацоўка экасістэмы AI у Laravel: Prism, LarAgent, Neuron AI і Boost

Адзінамі вызовам LLM да цэлым агентам у Laravel: што робяць Prism, LarAgent, Neuron AI, AI SDK і Boost, з прыкладам RAG для запытанняў па правілах кадровай політыкі.

Выдавец: REACTAPP.TOP9 хв чытання2160 слоў

Крыніцы: 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 да экасістэмы

Каля калькі лет тыму, каб дадаць AI у дапыт Laravel, існаваў толькі адны спосаб: вы вжывалі HTTP-кліент, ручна адправлялі запыты на канец OpenAI і самі парасканавалі JSON-даныя. Пераход на Anthropic наступнага дня значыў перапісваць весь гэты код.

Зараз звычайны ліст выглядае інакшэ. Па поведамленнях, каманда Laravel core выдала офіцыйны SDK для AI на пачатку 2026 года, які ўключае падтрымку Boost і MCP як частку шырэйшага пакета Laravel AI. Большы выбар прыносіць большую вяласць у прыняцці рашэнняў, таму важліва чыстая ментальная мадэль: калі патрэбна парадка агента, а калі падыйдзе простэйшы інструмент?

Экасістэма таксама развіваецца быстра. Пакет, які ўзяў популярнасць за гэты месцы, можа застацца някраным за шасць месцаў, а іншы стане улюбленым сярод спяльноты. Уместа таго, каб запамятаваць назвы, трэба вучыцца катэгорыю проблемы, якую рашае кожны інструмент. Калі правільна выбрана катэгорыя, выбір інструмента будзе просты, нават калі наступнага месцы з’явіцца новы.

Выкліканне LLM проты наявнасці агента

Большая частка плутання почынаецца самэль тут. Багато распрацоўшчыкаў выражаюць думку, што вікорыстоўванне AI значыць вікорыстоўванне агента, пры тым як гэтыя два элементы знаходзяцца на аблічна разных рэвэлях складнасці.

  • Выклік 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 не прызначаны для керавання дзейнамым станам або автонамнымі багатыядэрнымі працэсамі. Калі вы хочаце AI, які будзе «жывым», з памяцю і можлівасцю дзеяць у рамках ланцуга рашэнняў, сам 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 ніколі не вплывае на аплікацыю, якая працуе у працэсе. Гэта залежнасць, якая актыўна толькі пад час разработкі, і яе няма ў функцыях ШЫ, якія бачаюць канечныя корыстувачы.

Простаючы, SDK для AI дапамагае ствараць функцыі на базе штучнага інтэлекту, а 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
    }
}

Этапы, прыблізна:

  1. Дакументы палітакі кадровай справы, у фармаце PDF або простага тэксту, дзеляцца на меншыя часткі, ператвараюцца ў эмбедынгі і зберагаюцца ў базе вектараў.
  2. Калі працавнік спытаецца, сколькі дней невыкарыстанага ўзнагароднага часу пераходзіць у наступны год, гэты запіт таксама ператвараецца ў эмбедынг.
  3. Neuron AI шукае часткі, якія маюць найбольша сэмантычная блізасць, а не толькі за ключовымі словамі, і включае іх як дадатковы кантэкст для LLM.
  4. LLM адпавядае на адповідныя часткі, а не проста спадзяецца на загальныя знанні.

Рэзультатам являецца чат-бот, чыяя адпаведзі натыкаюцца на рэальную палітаку компаніі, а не на загальныя, якія можаць быць проста некорэктнымі. Можна змусіць LarAgent працаваць за дапамою ручных інструментоў, каб досягнуць таго ж, але тады павінна будзе стварыцца саея логіка пошуку, дзеляння на часткі і аналіз сэмантычнай блізасці. Neuron AI прыносіць гэтыя элементы як готовыя компаненты.

За дапамою калькі лікаў правіл, у прыкладзе MemoryVectorStore ўсё, каму трэба, адтолькі ў ён зберагае інтэграцыі ў памяці на час сесіі. Калі набіраецца колькасць дакументаў і ўсё трэба працаваць пад час ўпроваджэнняў, трэба заменіць рэалізацыю vectorStore() на справжню базу дадзеных вектараў, такую як Pinecone або Elasticsearch, не змінюючы логіку агента. Чыстая абстракцыя дазволяе пачаць з малага і пазней расшырваць, а таксама ухіліцца ад неабходнасці фіксаціі гэтай архітэктуры з самага пачатку.

Частаючая памылка ў такай працы з RAG — гэта заванос цэлага дакумента без яго разбівання на часткі. Дзялгі правілы кадровай політыкі, якія перэдаюцца як адны неразбіваны блок, ускладнююць пошук схожасці, адтолькі сістэма не можа візначыць, якая частка адпавядае на запыт. Разбіванне на тэмы або кілька параграфаў за раз дапамагае знайсці правыя даныя.

Калькі выбраць

  • Prism: асалідны адзін запіт і адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпаведна адпавед
  • Laravel Boost: не для функцыяў AI вашага дапытку, а ў тым, каб матыць савастны асістэнта-працоўніка для напісання чыстэйшага коду на Laravel, які будзе адпавядаць стандартам.

Няма жаднага пакета, які бы быў проста найкрашчым — толькі той, які падходзіць да складнасці, з якой вы фактычна сталкнуліся. Пачніце з самага простага варыянта і пераходзіце да сложнейшага толькі тады, калі гэта неабходна. Найкрашчы код — гэта не найхітрэйшы код. Гэта код, які падходзіць да задачы.

Спадневаная літэратура