Разработка ИИ-агентов для PHP: из пяти моделей задачу решила только одна
Автор протестировал четыре локальных ИИ-агента и один облачный на реальном PHP/Symfony-проекте с мониторингом сайтов, прогнал каждого через функциональные тесты, статический анализ PHPStan и ревью Claude Opus 5, чтобы выяснить, готовы ли локальные модели заменить облачные в повседневной разработке.

Лимиты Claude Code заканчиваются при активной работе, а риск блокировок растёт. Если локальные модели на 128 ГБ памяти DGX Spark справляются с агентным кодингом на существующей кодовой базе, разработчик получает автономный инструмент без подписок и внешних зависимостей.
Большинство сравнений ИИ-моделей для кодинга на YouTube сводятся к «слепи лендинг» или «напиши игру». Но разработка ИИ-агентов для ежедневных задач на живом проекте с десятками файлов, конфигами Symfony, Docker-контейнерами и Redis-кэшированием устроена иначе. Автор эксперимента взял свой сервис мониторинга сайтов overseer.observer и поставил вопрос прямо: может ли локальная модель агентно решить реальную задачу от начала до конца, без участия человека.
Кто участвовал и как оценивали?
В роли ИИ-агента (автономной программы, которая сама читает код, ищет нужные места, вносит правки, запускает тесты и анализ) для локальных моделей использовался Hermes. Модели работали через vLLM на NVIDIA DGX Spark со 128 ГБ унифицированной памяти.
Участники локального забега:
- Qwen 27B (27 миллиардов параметров)
- Qwen 35B (35 миллиардов параметров)
- Ornith
- Laguna
Облачные участники:
- GigaCode от Сбера, облачный агент внутри GigaIDE, на момент теста бесплатный
- Claude Opus 5, вне зачёта, как контрольный ориентир топовой облачной модели и независимый ревьюер
Каждый коммит прогонялся через три проверки: функциональные тесты PHPUnit, статический анализ PHPStan и CS Fixer. Затем Claude Opus 5 писал вердикт. Максимум за раунд составлял 13 баллов по пяти критериям.
Первый раунд показал разрыв сразу
Задача выглядела тривиально: добавить эндпоинт /bot-ip-list.txt, который отдаёт список IP опубликованных локаций с кэшированием в Redis на 5 минут. Правильное решение укладывалось в два-три файла без единой правки конфигов, потому что в проекте уже был настроен пул redis_cache с готовым автовайрингом (автоматическим подключением зависимостей).
Результаты:
- Qwen 27B сошёл с дистанции. Полтора часа на одну задачу, зависание, нерабочий результат. Модель зачем-то вручную зарегистрировала контроллер в
services.yaml, перекрыла автоматическую конфигурацию и убила нужный тег. Контроллер стал недоступен. Дальше в раундах Qwen 27B не участвовал. - Qwen 35B не работает. Импортировал несуществующий класс
Symfony\Component\Cache\CacheInterfaceвместо правильногоSymfony\Contracts\Cache\CacheInterface. Приложение падало на старте. - Ornith не работает, хотя решение было почти правильным. Подвела одна деталь: DQL (язык запросов Doctrine, ORM для PHP) не понимает двойные кавычки в условиях, нужны одинарные.
- Laguna работает. Единственная модель, которая реализовала инвалидацию кэша (сброс устаревших данных) при изменении локации через отдельный слушатель. Минус: слушатель ловил изменение и удаление, но не создание новой локации.
- GigaCode формально работает.
Инфраструктура добавила сложности
Проект поднимался локально через docker compose внутри WSL (подсистемы Linux для Windows). Hermes и Claude Code установлены прямо в WSL и работают с Docker без проблем.
GigaCode жил на хосте Windows и не мог напрямую обращаться к контейнерам. Пришлось писать и вручную скармливать отдельный навык exec-in-docker, чтобы агент вообще мог проверить свой код. Без этого навыка GigaCode в первых раундах просто угадывал формат команд, падал на попытке экранировать кавычки и сдавался без самопроверки.
Это важный практический момент для тех, кто планирует разработку ИИ-агентов под свой стек: агент хорош настолько, насколько ему доступна среда исполнения. Нет доступа к Docker, нет самопроверки, нет рабочего результата.
Вторые шансы и усиленные промпты
Некоторым моделям в поздних раундах давался повторный заход на ту же задачу с усиленным промптом (промпт, это текстовая инструкция для модели): явное требование написать тесты, прогнать phpunit, PHPStan и CS Fixer и поправить замечания. Это показывает, насколько результат зависит от точности формулировки задания, а не только от «ума» модели.
Промпт для раунда 1 (упрощённо):
Добавь эндпоинт /bot-ip-list.txt, который отдаёт список IP
опубликованных локаций, по одному на строку,
Content-Type: text/plain, с кэшированием в Redis на 5 минут
через LocationRepository.
Laguna: создала контроллер, сервис кэширования и слушатель LocationCacheInvalidator. Функциональные тесты прошли, PHPStan чисто. Claude Opus 5 в ревью отметил неполную инвалидацию при создании новой локации.
Qwen 27B: потратил полтора часа, сломал конфигурацию автовайринга, контроллер не вызывался. Ноль баллов.
Что делать с этим прямо сейчас?
PHP-разработчику: Laguna на 128 ГБ памяти справляется с типовыми задачами на Symfony-проекте. Но ожидать уровня Claude Opus 5 пока рано. Локальная разработка ИИ-агентов имеет смысл как запасной вариант, когда лимиты облака закончились или нужна автономность.
Автору Дзена, который пишет про код: формат «модель против задачи с метриками» собирает вовлечение лучше, чем абстрактные обзоры. Возьмите реальный проект, покажите баллы, ошибки, время.
Предпринимателю в РФ: GigaCode от Сбера на момент теста бесплатен и работает без VPN. Но требует ручной настройки навыков для Docker-окружения. Для команды, которая не готова ковырять инфраструктуру, это барьер.
Запускать локальные модели на 16 ГБ видеопамяти и ждать агентного кодинга. По результатам теста, модели на таком объёме справляются с суммаризацией текста или коротким фрагментом кода, но не с автономной работой на кодовой базе проекта. Qwen 27B на DGX Spark с 128 ГБ и то не справился.
Не давать агенту доступ к среде исполнения. GigaCode без навыка exec-in-docker просто гадал команды и сдавался. Проверьте, что агент может запустить тесты и увидеть результат, прежде чем доверять ему задачу.
Надеяться на результат без точного промпта. Усиленный промпт с явным требованием «напиши тесты, прогони PHPUnit, поправь замечания» давал заметно лучший результат, чем общая формулировка.
Эксперимент честно показывает: локальные модели для агентного кодинга из категории «когда-нибудь» перешли в категорию «уже можно, но с оговорками». Laguna на 128 ГБ справляется с CRUD-задачами на Symfony. Но DGX Spark стоит как подержанный автомобиль, и это не то оборудование, которое стоит у каждого разработчика дома.
Я бы рекомендовал держать Claude Code как основной инструмент, а локальный агент через Hermes использовать как подстраховку на случай исчерпания лимитов. GigaCode интересен тем, что бесплатен и доступен в РФ без обходных путей, но ему пока не хватает зрелости в работе с контейнерами.
Честная оговорка: тест проведён на одном проекте, одним разработчиком, на конкретном железе. Результаты Qwen 27B и 35B на другом проекте или с другим агентом могут отличаться.
Напишите свой первый промпт для ИИ-агента
Разобрали базовые приёмы промпт-инжиниринга для авторов и разработчиков в бесплатном гайде dzen.guru
Получить гайдРазработка ИИ-агентов для PHP перестала быть экспериментом для энтузиастов с топовыми GPU. Но «перестала быть экспериментом» не значит «готова к продакшену». Попробуйте Hermes с Laguna на своём проекте, прогоните через тесты, и через час у вас будет собственный ответ, а не чужой бенчмарк.

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».
Читайте также

Что такое ИИ-агент, который сам договаривается с другими: открытый agents-party за 5 минут
Представьте: у вас открыты три агентские сессии одновременно, и одна из них меняет код, на который опирается вторая, а вы вручную копируете контекст между…

DLSS 5 после волны критики: Nvidia добавила маски по объектам и три сменные нейросети
Nvidia четвёртого месяца после провального анонса вернулась на SIGGRAPH и раскрыла устройство DLSS 5, показав три сменные нейросети, маски по объектам и…

Генерация лица нейросетью: поэтапная сборка портрета точнее одного промпта
Команда Singularis собрала локальный пайплайн (конвейер обработки, где каждый шаг передаёт результат следующему) для генерации лица нейросетью с управлением…
Комментарии