Mapowanie ekosystemu AI w Laravel: Prism, LarAgent, Neuron AI i Boost
Od zwykłych wywołań LLM do pełnych agentów w Laravel: co robią Prism, LarAgent, Neuron AI, AI SDK oraz Boost, wraz z przykładem RAG do pytań dotyczących polityki HR.
Źródła: From Calling an LLM to Building an Autonomous Agent: Mapping Laravel’s AI Ecosystem in 2026
Wyszukaj w Packagist „laravel ai” – lista jest przytłaczająca. W ciągu ostatniego roku pojawiło się dziesiątki pakietów, z których każdy twierdzi, że jest najprostszą drogą do agentów AI w Laravel. Nazwy się mieszają, a pliki README brzmią przekonująco, ale po zainstalowaniu kilku okazuje się, że rozwiązują one zupełnie inne problemy.
Wielu programistów ucierpiało z powodu tego. Ktoś chce prostą funkcję podsumowania tekstu i w rezultacie musi zainstalować całe frameworki agentów z zarządzaniem pamięcią, wywoływaniem narzędzi i wieloetapową orkiestracją, których ta funkcja w ogóle nie wymaga. Rezultatem jest stos kodu szablonowego oraz konfiguracja, która zajmuje więcej czasu niż sama funkcja.
Następnie omówiono trzech głównych graczy w ekosystemie agentów Laravel: Prism, LarAgent oraz Neuron AI. Wyjaśniono również dwa nazwy, które są często mylone – Laravel AI SDK i Laravel Boost – a na koniec przedstawiono praktyczny przykład: asystenta, który odpowiada na pytania z wewnętrznych dokumentów firmy.
Od prostych wywołań API do ekosystemu
Kilka lat temu dodanie funkcji AI do aplikacji Laravel odbywało się w jeden sposób: używano klienta HTTP, ręcznie wysyłano żądania do endpointu OpenAI i samodzielnie parsowano pliki JSON. Przejście na Anthropic następnego dnia oznaczało konieczność przepisania całego tego kodu.
Zdjęcie jest teraz inne. Zgodnie z doniesieniami, zespół odpowiedzialny za Laravel wydał oficjalne SDK do AI na początku 2026 roku, włączając w siebie wsparcie dla Boost i MCP jako część szerszego zestawu Laravel AI. Większy wybór powoduje zmęczenie decyzyjne, dlatego ważny jest jasny model myślowy: kiedy potrzebny jest framework agentów, a kiedy wystarczy najprostszy narzędzie?
Ekosystem również rozwija się szybko. Pakiet popularny w tym miesiącu może stać się nieaktywny po sześciu miesiącach, podczas gdy inny stanie się ulubionym narzędziem społeczności. Zamiast zapamiętywać nazwy, należy poznać kategorię problemów, które rozwiązuje każde narzędzie. Jeśli dobrze określisz kategorię, wybór narzędzia będzie łatwy, nawet jeśli w przyszłym miesiącu pojawi się coś nowego.
Wywoływanie LLM w porównaniu z agentem
Większość zamieszania zaczyna się właśnie tutaj. Wielu programistów zakłada, że korzystanie z AI oznacza korzystanie z agenta, jednak oba te rozwiązania znajdują się na zupełnie różnych poziomach złożoności.
- Wywoływanie LLM jest proste: jeden prompt wejściowy, jedna odpowiedź wyjściowa. Można to porównać do tworzenia opisu produktu lub streszczania artykułu w trzech zdaniach. Komunikacja odbywa się w jednym kierunku, a po drodze nie podejmowanych jest żadnych decyzji.
- Agent rozważa kilka kroków. Decyduje, kiedy wywołać narzędzie, kiedy zada dodatkowe pytanie, kiedy pobrać dane z bazy danych przed udzieleniem odpowiedzi oraz kiedy zadanie jest zakończone. Istnieje pętla decyzyjna, a nie pojedynczy cykl żądanie-odpowiedź.
Jeśli potrzeba należy do pierwszego typu, użycie frameworku dla agentów jest jak wypożyczenie kontenera transportowego do przenoszenia zakupów na tydzień. To działa, ale to marnotrawstwo wysiłku, i właśnie w tym przypadku ma sens Prism.
Prism: warstwa podstawowa do komunikacji z LLM
Prism jest najlżejszy z tych trzech. Jest to czysto warstwa abstrakcji. Piszesz kod raz, a następnie zmieniasz dostawców – czy to OpenAI, Anthropic, Gemini, Mistral, Ollama czy inni – bez konieczności modyfikowania struktury kodu. Podstawowa generacja tekstu wygląda w ten sposób:
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;
Jego zaletą jest spójna interfejs użytkownika we wszystkich dostawcach. Przejście z Anthropic na OpenAI oznacza jedynie zmianę wywołania using(), nic więcej. Obejmuje on również strukturyzowany wynik, podstawowe wywoływanie narzędzi oraz wprowadzanie obrazów i dokumentów.
Należy jednak pamiętać o jego ograniczeniach. Prism nie jest przeznaczony do zarządzania długotrwałym stanem ani autonomicznymi, wieloetapowymi procesami. Jeśli szukasz sztucznej inteligencji, która sprawia wrażenie żywej, posiada pamięć i zdolność do podejmowania decyzji w ciągu serii działań, sam Prism tego nie zapewni. Wtedy właśnie przydaje się LarAgent.
LarAgent: agenci budowani jak modele Eloquent
LarAgent stosuje podejście, które od razu brzmi znajomo deweloperom Laravel: agent definiuje się w podobny sposób jak model Eloquent. Istnieje polecenie artisan, struktura klas oraz konfiguracja o wyraźnym charakterze 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';
}
}
Następnie można wezwać agenta dla konkretnego użytkownika, a historia rozmów jest automatycznie przechowywana:
use App\AiAgents\SupportAgent;
SupportAgent::forUser(auth()->user())->respond($userMessage);
Porównaj to z Prism. Tutaj narzędzie jest rejestrowane za pomocą atrybutu #[Tool], a sam agent decyduje, kiedy je wywołać, na podstawie tego, co mówi użytkownik. To właśnie opisane wcześniej zachowanie agenta – warstwa decyzyjna poniżej, a nie pojedyncza wymiana informacji.
LarAgent jest doskonałym rozwiązaniem, gdy agent potrzebuje wyraźnej tożsamości powiązanej z konkretną funkcją, taką jak obsługa klienta, asystent do wprowadzania danych lub wewnętrzny pomocnik, do którego ten sam użytkownik wielokrotnie się zwraca, a kontekst musi być zachowywany. Historia jest przechowywana indywidualnie dla każdego użytkownika, więc nie trzeba projektować specjalnego schematu. Wybierasz mechanizm przechowywania historii, np. pamięć lub cache, a LarAgent zajmuje się resztą. Dla małych zespołów, które muszą szybko wdrożyć funkcję agenta bez dużych konfiguracji, to prawdziwa przewaga.
Neuron AI: do pracy wykraczającej poza pojedynczego agenta
Gdy projekt rozwija się do tego stopnia, że potrzebuje rozwiązania RAG o poziomie produkcyjnym, kilku agentów działających wspólnie lub szczegółowej widoczności każdego kroku podejmowanego przez agenta, Neuron AI jest opcją, którą warto rozważyć.
Nie jest specyficzny dla Laravel. To czysta ramowa struktura agentów w PHP, która bez problemów pasuje do projektu Laravel. Jego architektura przypomina prawdziwą ramową strukturę: obiekt SystemPrompt, który nadaje kształt komunikatom, RAG obsługiwane przez klasę RAG, magazyny wektorowe od prostego rozwiązania w pamięci operacyjnej po Pinecone i Elasticsearch, oraz narzędzie Inspector do monitorowania, które pokazuje żywy przebieg działań agenta. Podstawowa definicja agenta:
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.',
],
);
}
}
Zobacz, o ile bardziej wyraźny jest ten rozwiązanie w porównaniu z LarAgentem. Instrukcja systemowa jasno oddziela background, steps oraz output, i to jest celowe. Neuron AI przeznaczony jest do sytuacji, gdy złożoność już wzrosła i potrzebna jest jasna struktura, aby agent nie zboczył z kursu w trakcie procesu.
Laravel AI SDK i Laravel Boost: powszechny błąd
Wielu programistów traktuje je jako dwa nazwy tego samego produktu. Rozwiązują one zupełnie różne problemy, a zespół Laravela rzekomo opublikował specjalny post właśnie po to, by rozwiać to zamieszanie.
- The Laravel AI SDK (
laravel/ai) to oficjalne SDK stworzone przez zespół główny. Jego zadaniem jest włączenie funkcji sztucznej inteligencji do Twojej aplikacji, przy użyciu jednolitej API obsługującej tekst, strukturyzowane wyniki, obrazy, dźwięk oraz embeddingi. Działa na bazie Prism, więc osoby przyzwyczajone do Prism łatwo się z nim oswoją. Ponadto oficjalny pakiet zawiera elementy symulacyjne do testowania, zadania w tle w kolejce oraz automatyczne przechodzenie na alternatywnego dostawcę usług. - Laravel Boost to coś zupełnie innego. Jest to serwer MCP działający w Twoim środowisku rozwojowym, który pomaga asystentom kodowym opartym na sztucznej inteligencji, takim jak Claude Code czy Cursor, w tworzeniu kodu w Laravel, który lepiej przestrzega konwencji tego frameworku. Boost w żaden sposób nie wpływa na aplikację produkcyjną. Jest to zależność przeznaczona wyłącznie do celów rozwojowych, aktywna podczas pisania kodu, i nie stanowi części żadnej funkcji sztucznej inteligencji, z którą mają do czynienia końcowi użytkownicy.
Proście mówiąc, SDK AI pomaga w tworzeniu funkcji opartych na sztucznej inteligencji, natomiast Boost ułatwia pisanie lepszego kodu w Laravel dzięki pomocy AI. Działają one równolegle i żadne z nich nie zastępuje drugiego.
Przypadek studium: odpowiadanie na pytania z dokumentów wewnętrznych
Oto typowe żądanie w środowisku pracy. Zespół HR ma już dość odpowiadania na te same pytania dotyczące polityki urlopów i chce chatbota, który będzie odpowiadał na podstawie istniejących już dokumentów polityki. To klasyczny przypadek zastosowania RAG, czyli odpowiedzi oparte na własnych dokumentach firmy, a nie tylko na tym, co model poznał podczas szkolenia.
Wymagane jest magazyn wektorów, embeddingi oraz automatyczne wyszukiwanie, co sprawia, że Neuron AI jest idealnym rozwiązaniem:
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
}
}
Przebieg procesu, w przybliżeniu:
- Dokumenty polityki HR, w formacie PDF lub tekstu prostego, są dzielone na mniejsze fragmenty, przekształcane w embeddingi i zapisywane w bazie wektorowej.
- Gdy pracownik pyta, ile niewykorzystanych dni urlopu rocznego przechodzi na następny rok, to pytanie również jest przekształcane w embedding.
- Neuron AI szuka fragmentów o najbliższym znaczeniu, nie tylko na podstawie słów kluczowych, i wprowadza je jako dodatkowy kontekst dla LLM.
- LLM odpowiada na podstawie tych konkretnych fragmentów, zamiast zgadywać na podstawie ogólnej wiedzy.
Rezultatem jest chatbot, którego odpowiedzi odnoszą się do rzeczywistej polityki firmy, a nie do ogólnej odpowiedzi, która może być po prostu błędna. Można wymusić użycie LarAgent za pomocą narzędzi ręcznych w celu osiągnięcia tego samego efektu, ale wtedy trzeba samodzielnie stworzyć logikę wyszukiwania, dzielenia na fragmenty oraz analizy podobieństwa. Neuron AI dostarcza te elementy jako gotowe komponenty.
Zaledwie kilka plików z zasadami wystarcza w przykładzie MemoryVectorStore, ponieważ przechowuje embeddingi w pamięci na czas sesji. Gdy zbiór dokumentów się powiększy i będzie musiał funkcjonować podczas różnych implementacji, należy zastąpić implementację vectorStore() prawdziwą bazą danych wektorowych, taką jak Pinecone lub Elasticsearch, bez konieczności zmiany logiki agenta. Czysta abstrakcja umożliwia rozpoczęcie od małych rozmiarów i późniejszą skalowanie, unikając konieczności ustalania ostatecznej architektury od samego początku.
Częstym błędem w tego typu projektach RAG jest umieszczanie całego dokumentu bez jego podziału na fragmenty. Długa polityka HR przekazana jako jeden, nieskładowy blok utrudnia wyszukiwanie podobieństw, ponieważ system nie potrafi określić, która część odpowiada na pytanie. Podział na tematy lub po kilka akapitów na raz pomaga znaleźć właściwą sekcję.
Który wybrać
- Prism: prawdziwa jedna prośba i odpowiedź, np. generowanie tekstu, streszczeń lub opisów, gdzie chcesz bez problemów zmieniać dostawców.
- Laravel AI SDK: oficjalna opcja wspierana przez zespół twórców, oferująca symulacje testowe, zadania w tle oraz przełączanie się na alternatywnych dostawców, szczególnie przy projektach, które twój zespół będzie utrzymywał przez lata.
- LarAgent: agent o wyraźnej tożsamości, do którego ten sam użytkownik korzysta wielokrotnie, zapewniający doświadczenie programistyczne przypominające Eloquent oraz narzędzia deklarowane za pomocą prostych atrybutów.
- Neuron AI: projekt przewyższył możliwości prostych agentów i wymaga zaawansowanego RAG, kilku współpracujących agentów, dokładnego śledzenia lub procesu pracy składającego się z wzajemnie powiązanych kroków.
Żaden z pakietów tutaj nie jest po prostu najlepszy – tylko ten, który odpowiada rzeczywistej złożoności problemu, z którym się mierzysz. Zacznij od najprostszej opcji i przechodź do bardziej zaawansowanych tylko wtedy, gdy tego wymaga problem. Najlepszy kod to nie ten najsprytniejszy, lecz ten, który pasuje do danego problemu.