Скажите «ИИ» в комнате, полной разработчиков, и в ней тут же выстроится своя иерархия. Python сидит на вершине, JavaScript получает место, потому что кто-то должен рендерить окно чата, а PHP достается сочувственный взгляд — из тех, что говорят: «может быть, ты поймаешь следующую волну».

Теперь сопоставьте это с одной цифрой. По состоянию на август 2026 года W3Techs сообщает, что PHP стоит за  70.5% всех веб-сайтов, язык бэкенда которых ей удается определить. JavaScript, предполагаемый фаворит в гонке ИИ, занимает 7%. Язык, который якобы наблюдает за бумом со стороны, обслуживает бо́льшую часть веба, до которой этот бум пытается дотянуться.

Какое-то время оба утверждения были верны одновременно. Не так давно вызов LLM из PHP означал использование клиентского API сообщества или написанных вручную HTTP-запросов, в то время как разработчики на Python получали LangChain, LlamaIndex и новый фреймворк для агентов каждый второй вторник. Разрыв был реален, и отрицать это было бы самообманом.

Я бы сказал, что он больше не реален: он тихо исчез, и большинство людей за пределами мира Laravel этого еще не заметили. В собственном блоге Laravel теперь публикуются статьи с заголовками вроде «Создание ИИ-агентов на Laravel: Python не требуется». Когда маркетинг фреймворка столь прямолинеен, лежащие в его основе инструменты обычно уже прибыли к финишу.

ИИ-функция — это по большей части не ИИ

Снимите брендинг с любой «функции на базе ИИ» и посмотрите, что делает код. Где-то посередине находится один HTTPS-запрос к провайдеру модели. Все, что обернуто вокруг него, — это ПО, которое вы и так умеете создавать: аутентификация, валидация, ограничение частоты запросов (rate limiting), очереди, повторные попытки, биллинг, персистентность и интерфейс, который не прыгает при прибытии токенов.

Сама модель никогда не запускается в вашем приложении. Она работает в дата-центре, принадлежащем Anthropic, OpenAI или Google, и понятия не имеет, какой язык ее вызвал. С точки зрения провайдера, запрос, отправленный воркером очереди Laravel, неотличим от запроса, отправленного сервисом на FastAPI.

На этом переосмыслении и строится весь данный аргумент:  Python был нужен для создания модели, а не для создания того, что ею пользуется. Обучение модели и создание продукта вокруг нее — это разные задачи, которые выполняются разными людьми с помощью разных инструментов. Смешивание этих понятий — это ровно то, как разработчики на PHP сами убедили себя отказаться от собственной территории, ведь слой приложения — это по большей части и есть то, чем «ИИ-приложение» на самом деле является.

Стек, который появился тихим сапом

Вот с чем предстоит работать разработчику на PHP в 2026 году. Я хочу быть точен в отношении каждого компонента, поскольку они не являются пятью вариациями одного и того же.

 Prism — это унифицированный слой провайдеров для сообщества: единый текучий (fluent) API поверх OpenAI, Anthropic, Mistral и остальных, благодаря которому смена вендора сводится к изменению конфигурации, а не к переписыванию кода.

 Официальный Laravel AI SDKlaravel/ai ) — это главный игрок. Первый класс (first-party), от той же команды, которая поддерживает Eloquent и систему очередей, анонсированный в феврале 2026 года и в настоящее время находящийся в бета-версии. Агенты представляют собой обычные PHP-классы, структурированный вывод задается через интерфейс, а встраивания (embeddings) привязаны к классу  Str . Он взаимодействует с 14 провайдерами, осуществляет отказоустойчивое переключение между ними при сбоях и поставляется с полноценным фейковым слоем для тестов.

 Neuron AI охватывает более тяжелый агентский сегмент. Вы расширяете класс  Agent  и получаете память, вызовы инструментов, RAG-компоненты и воркфлоу с шагами с участием человека (human-in-the-loop), а также наблюдаемость (observability) через Inspector. Он не привязан к конкретному фреймворку, работает на PHP 8.1+ и поддерживает более 15 провайдеров.

 LLPhant — это специалист по поиску: абстракции в стиле LangChain, ответы на вопросы с реранкингом и памятью чата, а также длинный список интеграций с векторными хранилищами. Он также не зависит от фреймворка, что делает его естественным выбором для Symfony.

 Laravel Boost — белая ворона в этом списке. Он не добавляет ИИ в ваше приложение; он помещает ваше приложение перед лицом ИИ. Это MCP-сервер, который предоставляет вашему агенту по написанию кода (Claude Code, Cursor или любому другому, который вы используете) инструменты инспекции для вашего приложения, а также специфичные для Laravel рекомендации и документацию, благодаря чему сгенерированный код соответствует той версии фреймворка, которая у вас реально установлена.

Слово «официальный» в этом списке играет вполне реальную роль. Когда поддержка ИИ поставляется как пакет первого класса с миграциями, генераторами Artisan и готовым подходом к тестированию, она перестает быть хобби-интеграцией и становится частью контракта фреймворка. Тот факт, что  Embeddings::fake()  вообще существует, говорит о том, насколько серьезно команда Laravel отнеслась к этому: кто-то спроектировал опыт тестирования еще до того, как выпустить основной сценарий (happy path).

Как мало кода это теперь занимает

Слова дешевы, поэтому вот код. Допустим, отзывы о продукте попадают в вашу базу данных, и вы хотите получать однострочную сводку рядом с каждой записью. С Prism вся фича выглядит так:

 use Prism\Prism\Enums\Provider;
use Prism\Prism\Facades\Prism;

$response = Prism::text()
    ->using(Provider::Anthropic, 'claude-haiku-4-5-20251001')
    ->withSystemPrompt('You write one-sentence summaries of customer feedback.')
    ->withPrompt($feedback->body)
    ->asText();

$feedback->update(['summary' => $response->text]);
 

Измените перечисление провайдера и строку модели — и вы сменили вендора. Вот и вся миграция.  $response->usage  также выдает количество токенов, потому что на второй месяц обязательно кто-нибудь спросит про счет.

Официальный SDK делает шаг вперед, предлагая типизированный вывод. Представьте, что вы проводите триаж (первичную обработку) тикетов техподдержки:

  app/Ai/Agents/TicketTriage.php 

 <?php

namespace App\Ai\Agents;

use Illuminate\Contracts\JsonSchema\JsonSchema;
use Laravel\Ai\Contracts\Agent;
use Laravel\Ai\Contracts\HasStructuredOutput;
use Laravel\Ai\Promptable;
use Stringable;

class TicketTriage implements Agent, HasStructuredOutput
{
    use Promptable;

    public function instructions(): Stringable|string
    {
        return 'You triage customer support tickets. '
            .'Summarize the issue and score its urgency.';
    }

    public function schema(JsonSchema $schema): array
    {
        return [
            'summary' => $schema->string()->required(),
            'urgency' => $schema->integer()->min(1)->max(5)->required(),
        ];
    }
}
 

Использование читается как любой другой класс Laravel:

 $response = (new TicketTriage)->prompt($ticket->body);

$ticket->update([
    'summary' => $response['summary'],
    'urgency' => $response['urgency'],
]);
 

Никаких уговоров вроде «пожалуйста, ответь валидным JSON» в промпте. Никаких блоков try/catch вокруг  json_decode . Схема ограничивает вывод, а к ответу можно обращаться как к массиву в том формате, который вы объявили. Если вам доводилось нянчиться со скриптом, который парсил вывод LLM с помощью регулярных выражений, то это именно тот момент, когда вы начинаете тихо завидовать.

Встраивания (embeddings) делаются в одну строку на классе, которым вы и так пользуетесь каждый день:

 use Illuminate\Support\Str;

$embeddings = Str::of($ticket->body)->toEmbeddings();
 

А для RAG не требуется разворачивать новый сервис в вашем docker-compose. Инструмент  SimilaritySearch  из SDK подключается к моделям Eloquent на базе pgvector, причем векторная математика обрабатывается построителем запросов (query builder). Стриминг в браузер оформляется как  (new TicketTriage)->stream($question) , возвращаемый прямо из роута в виде серверных событий (SSE), а долгоиграющие задачи отправляются в очередь, как и любая другая задача Laravel.

Сложите вместе всё, что охватывают эти фрагменты кода: абстракцию провайдеров, типизированный вывод, семантический поиск, стриминг, фоновую обработку. Раньше это было презентацией отдельного микросервиса на Python. Теперь это пара часов работы в кодовой базе, которую ваша команда уже умеет деплоить, мониторить и откатывать. И если вы смотрите на агентов так, как я утверждал ранее, — как на программные воркфлоу с инструментами, — то фреймворк, построенный вокруг воркфлоу, является естественным местом для их запуска.

Где место PHP и где его не будет никогда

Вот часть, которая удерживает эту статью от превращения в банальные речёвки.

Место PHP — на уровне приложения: в той части, которая вызывает модель, владеет бизнес-воркфлоу, хранит аутентификацию, данные, доменные правила, биллинг и ориентированный на пользователя продукт. Этот уровень определяет, является ли ваша ИИ-функция демо-версией или бизнесом, и это ровно тот уровень, который Laravel потратил десятилетие на то, чтобы сделать скучным в лучшем смысле этого слова — с очередями, политиками, валидацией и деплоем, из-за которого не приходится терять сон.

PHP не место в обучении моделей, дообучении (fine-tuning) или дата-саенсе, и ему не стоит туда стремиться. Для PHP не существует PyTorch, да он и не нужен. Числовой стек, лежащий в основе современного машинного обучения (NumPy, ядра CUDA, вся башня научных вычислений), накапливался в Python десятилетиями и сросся с исследовательским сообществом, которое публикует работы на нем. Если вашему продукту требуется кастомное дообучение или серьезная работа с данными, этот кусок пирога написан на Python, и точка.

Но обратите внимание, что на самом деле означает это разделение. Модель — это компонент; продукт — это приложение вокруг нее, а приложение — это то место, где живут ваши пользователи, ваши данные и ваша выручка. Вы ведь тоже не писали Postgres, и никто не говорит, что разработчикам на PHP закрыт доступ к базам данных.

Где же на практике проходит граница? Гипотетический пример: ваша команда выпускает юридический SaaS-ассистент для работы с документами. Конвейер поиска (retrieval pipeline), права доступа, определяющие, кто к каким документам может делать запросы, журнал аудита, лимиты запросов, сборка промптов, интерфейс — все это на Laravel, целиком и полностью. Модель встраивания (embedding model), которая превратила пункты договоров в векторы: обучена на Python людьми, с которыми вы никогда не встретитесь, и потребляется через API точно так же, как вы потребляете Stripe. Такое разделение труда — это ровно то, как вы и так строите все остальное.

Шероховатости, если говорить честно

Обратная сторона быстрого догона заключается в том, что большая часть этого инструментария еще молода. Четыре вещи, которые я хотел бы знать, прежде чем ставить на него дорожную карту:

  1.  Официальный SDK находится в бета-версии. Laravel говорит об этом прямо. API все еще могут измениться у вас под ногами, а обновление бета-зависимости в продакшене — это осознанное решение, а не формальность.
  2.  Стриминг работает, но не без шероховатостей. Примитивы на месте: серверные события (SSE) прямо из роута и дата-протокол Vercel AI для сетапов на Livewire и Inertia. Но модель «запрос на один процесс» в PHP делает долгожитящие соединения менее нативными, чем в Node, и здесь есть сюрпризы молодой экосистемы — например, задокументированное предупреждение Prism о том, что Telescope может перехватывать события стрима до того, как их испустит Prism. Это из тех подводных камней, которые стоят вам потраченного вечера, на которые пока нет ответа на Stack Overflow.
  3.  Вам придется читать документацию и исходный код, а не туториалы. Поищите любой паттерн агентов — и первые двадцать результатов будут ориентированы на Python. Материалы по Laravel хороши, но скудны: страница документации, пара постов в блогах, доклады на конференциях, которые еще догоняют тренд. Быть в числе первых означает быть примером для самого себя.
  4.  Пересечения означают выбор. Prism и официальный SDK решают пересекающиеся задачи, а Neuron и LLPhant снова пересекаются со стороны фреймворк-независимых решений. Мое мнение: в приложении на Laravel, стартующем сегодня, используйте официальный SDK и принимайте риски беты; оставайтесь на Prism, если вы уже используете ее или ее набор провайдеров подходит вам лучше; присмотритесь к Neuron или LLPhant, если вы вообще находитесь за пределами Laravel. Что бы вы ни выбрали, оберните это в собственный сервисный класс, чтобы замена стоила дешево.

Ничто из этого не является дисквалифицирующим фактором. Это нормальная фактура экосистемы, которой год-два от роду, а не пять. Стек Python прошел через ту же эпоху; просто все уже забыли, как часто LangChain ломала собственные API во времена версии 0.x.

Так что переверните старый вопрос. Вопрос «LLM на PHP — зачем?» всегда был неправильной рамкой. Правильная звучит так: в какой части ИИ-продукта ваш язык должен быть хорош? Во всем, кроме самой модели, ответ таков: в том, в чем PHP был хорош и раньше — в аутентификации, данных, воркфлоу и продукте, который вы выставляете перед пользователями.

До решения «как» — всего одна команда  composer require laravel/ai . Модель никогда не волновало, какой язык ее вызывает, а начиная с этого года, это не волнует и инструменты.


P.S. Спасибо, что уделили время на чтение этой статьи! Идеи и мнения, выраженные здесь, принадлежат мне. Английский — не мой родной язык, поэтому я использую ИИ, чтобы исправлять грамматику и делать текст более четким и легким для чтения. Если что-то все еще звучит немного неловко, я ценю ваше понимание!

Понравилась статья? Давайте оставаться на связи — я есть в LinkedIn, всегда рад пообщаться, обменяться идеями или просто сказать привет. 👋