- PVSM.RU - https://www.pvsm.ru -
Привет! В последнем обновлении Explyt мы добавили AI-агента для написания кода. В этой статье расскажем, что он умеет и как мы сами его используем.

Пару месяцев назад в нашем плагине не было AI‑агента, а был только ассистент для генерации тестов. И пока агент не появился, в работе мы использовали другие известные плагины. Лично мне очень нравился Copilot, из‑за своего минималистичного интерфейса и контроля за контекстом. Однако фичи копайлота в первую очередь доезжали до VSCode, а пользователю IntelliJ IDEA приходилось дожидаться их месяцами. Поэтому для прототипирования и скаффолдинга, написания бойлерплейтного кода с помощью AI‑агентов мне приходилось переключаться между любимой средой разработки и IntelliJ, что было несколько неудобно.
С появлением своего AI‑агента пошло легче: можно было нажаловаться тимлиду Серёже, который затем осознанно и вдумчиво хакал очередной юзкейс. Со временем отладили настолько, что использовать внешние инструменты не приходится, свой стал работать достаточно хорошо. Дальше покажем, что он может, расскажем о приятных фишках, которые мы сделали для себя, чуть‑чуть о реальном опыте работы с ассистентом.

Агент может выполнять произвольную задачу по запросу в чате.
Например, на видео выше показано, как по запросу агент решает следующую задачу: посылать пользователю письмо с сообщением «Пароль был успешно изменен!» после изменения пользователем пароля. Агент читает существующий код, шаблоны и тесты и добавляет нужную функциональность:
новый код в сервисы
шаблон письма, которое будет отправлено пользователю
необходимые строки в файлы ресурсов (постоянно пользуюсь)
интеграционные тесты на новую функциональность
Приложение на демо дает возможность студентам просматривать обучающие видеокурсы. На видео показано, как агент по спецификации создаёт новый сервис, позволяющий студенту управлять избранными страницами, например, добавить курс в избранное и посмотреть список избранных курсов. Агент добавляет:
необходимые DTO для избранного
сервис управления избранными курсами и его реализацию
репозиторий для управления избранными курсами
контроллер для управления избранными курсами
Агент читает код репозитория и добавляет docstring-комментарий к каждому методу требуемого сервиса.
Агент читает код репозитория и добавляет документацию по требуемому сервису:
его ключевые ответственности
описание основных методов
как производится валидация данных и управление ошибками
как производится взаимодействие с базой данных
как происходит кэширование
какие есть регулярные запланированные задачи
как устроено логирование
какая у сервиса ответственность по части безопасности
какие у сервиса есть зависимости
использовать инструменты для редактирования кода
использовать средства для исследования проекта
выполнять команды в терминале
анализировать проект на наличие ошибок компиляции
Агент видит и может модифицировать все файлы в данном проекте, в частности: код, тесты, шаблоны, ресурсы, документацию, конфигурации сборки. Агент может добавлять новые файлы любых типов при необходимости.
Пользователь:
проверяет изменения, внесённые агентом, может любое из них принять или отменить
может разрешить или запретить агенту использовать некоторые инструменты, например, вызов консольных команд
Агент рисует кликабельные кнопки
Взаимодействие с LLM через кнопки позволяют на короткое время почувствовать себя zero‑coder'ом:) На видео по промпту создается новая фича для AI‑ассистента:
Агент формирует интерактивные чеклисты
Целевого применения для чеклистов мы еще не придумали, самое подходящее на мой взгляд — интерактивный список действий для дебага/запуска приложения.
Если наблюдать за успешными кейсами применения вайбкодинга, может появиться иллюзия масштабируемости без увеличения команды.
Однако в процессе пользования сгенерированным кодом может оказаться, что поддерживать его очень дорого; не хватает как раз тех вещей, от которых удалось убежать раньше: продуманного API, тестов и ответственного за фичу программиста, к которому можно пойти с вопросами.
Иначе (реальная история) на вопросы про фичу кодовнер будет отвечать:
Я не помню что там делал
AI‑агенты, как иногда кажется, стремятся исполнить главное и самое сокровенное желание разработчика — избавить его от необходимости писать код. Но в реальности получается, что «жар» все‑таки «загребается», но уже чужими руками, и на перспективу человеческая экспертность, ценность комментов, тестов и документации выше, чем ценность самого кода.
Вышедшая недавно на Хабре статья про вайбкодинг [1] подчеркивает эти мысли, в целом повторяет наш опыт разработки с агентами. Если вам интересны более ясные размышления на эту тему, советую заглянуть.

Более безопасное применение AI‑агентов — в задачах, где нужно разобраться в незнакомом проекте, подебажить проблему. Иногда именно тебе приходится разбираться в ошибке, когда твоя фича использует новый компонент или, как обычно бывает, когда просто некому еще. Например, однажды агент по детальному описанию проблемы помог найти ошибку в конфиге сборки. О том, что этот конфиг вообще влияет на работу приложения, я не знал.
Еще, по нашему опыту, безопасно применять агентов, когда нужно сделать локальное изменение в проекте, которое ты понимаешь, как сделать в коде. Соответственно, можешь сформулировать задачку не абстрактно («gpt4o, сделай, чтобы была кнопка, при нажатии на которую моделька улучшает пользовательский промпт»), а на уровне конкретных деталей реализации («в таком-то контроллере добавь такой‑то класс...»).
Удобно и наоборот, когда не ты промптишь LLM, а LLM промптит тебя, задавая уточняющие вопросы. Такой подход хорошо работает с нашей фичей с кликабельными кнопками (см. пример выше).
Даже с учётом этих рекомендаций агенты не гарантируют ускорения работы. Если изменение небольшое — быстрее сделать самому, чем описывать задачу агенту и ревьюить результат. Если это глобальный рефакторинг — потом …
Стол сломаешь
… все это рефакторить и править. Поэтому при использовании агента надо искать баланс между ограниченностью задачи и реальным ускорением разработки.
Много отрицательных впечатлений возникает из‑за misuse агентов. Мы в будущем будем форсировать на уровне UI/UX best practices, чтобы сделать плохо было все сложнее и сложнее. Например, уже работаем над компонентом, который позволит индексировать и отдавать агенту не только текущую кодовую базу, но и используемые библиотеки с их документацией. Так агент будет «знать» про эти компоненты, меньше ошибаться и лучше кодить.
Спасибо, что долистали. Пользуйтесь AI‑агентами с удовольствием, но с оглядкой на их особенности. Можете поделиться своим опытом успеха или неудачи в комментах, мы их читаем, и возможно сможем поддержать именно ваш сложный и нестандартный кейс.
В Explyt 4.0, кроме AI-агента, добавлены генерация тестов по исполнению и спецификации, расширенная поддержка Testcontainers и @DataJpaTest (инструкция по установке плагина [2]). Фича пока в бете: мы продолжаем улучшать стабильность и будем рады вашей обратной связи.
Выбрав OpenAI‑compatible провайдер в настройках плагина, вы можете попробовать Explyt с новыми моделями, например Qwen3-Coder на OpenRouter или Together.ai [3], а также развернуть и использовать модель локально.
Для этого рекомендуем llama.cpp и LM Studio. Помните, что для моделей меньше 30B параметров хороших результатов скорее всего не будет. Для запуска больших моделей рекомендуем использовать vLLM и другие high‑performance фреймворки.
Каналы для багрепортов и фичереквестов: GitHub Issues [4] и чат [5] с командой плагина.
Автор: mrga
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/ai/428047
Ссылки в тексте:
[1] статья про вайбкодинг: https://habr.com/ru/articles/932442/
[2] инструкция по установке плагина: https://explyt.ai/ru/download?utm_source=article&utm_medium=habr&utm_campaign=agent_post
[3] Together.ai: http://Together.ai
[4] GitHub Issues: https://github.com/explyt/explyt-test/issues/new/choose
[5] чат: https://t.me/explyttest
[6] Источник: https://habr.com/ru/companies/explyt/articles/936992/?utm_campaign=936992&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.