Привет, Хабр! В последнем обновлении Explyt мы добавили AI-агента для написания кода. В этой статье расскажем, что он умеет и как мы сами его используем.

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

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

Более безопасное применение AI‑агентов — в задачах, где нужно разобраться в незнакомом проекте, подебажить проблему. Иногда именно тебе приходится разбираться в ошибке, когда твоя фича использует новый компонент или, как обычно бывает, когда просто некому еще. Например, однажды агент по детальному описанию проблемы помог найти ошибку в конфиге сборки. О том, что этот конфиг вообще влияет на работу приложения, я не знал.
Еще, по нашему опыту, безопасно применять агентов, когда нужно сделать локальное изменение в проекте, которое ты понимаешь, как сделать в коде. Соответственно, можешь сформулировать задачку не абстрактно («gpt4o, сделай, чтобы была кнопка, при нажатии на которую моделька улучшает пользовательский промпт»), а на уровне конкретных деталей реализации («в таком-то контроллере добавь такой‑то класс...»).
Удобно и наоборот, когда не ты промптишь LLM, а LLM промптит тебя, задавая уточняющие вопросы. Такой подход хорошо работает с нашей фичей с кликабельными кнопками (см. пример выше).
Даже с учётом этих рекомендаций агенты не гарантируют ускорения работы. Если изменение небольшое — быстрее сделать самому, чем описывать задачу агенту и ревьюить результат. Если это глобальный рефакторинг — потом …
Стол сломаешь
… все это рефакторить и править. Поэтому при использовании агента надо искать баланс между ограниченностью задачи и реальным ускорением разработки.
Много отрицательных впечатлений возникает из‑за misuse агентов. Мы в будущем будем форсировать на уровне UI/UX best practices, чтобы сделать плохо было все сложнее и сложнее. Например, уже работаем над компонентом, который позволит индексировать и отдавать агенту не только текущую кодовую базу, но и используемые библиотеки с их документацией. Так агент будет «знать» про эти компоненты, меньше ошибаться и лучше кодить.
Спасибо, что долистали. Пользуйтесь AI‑агентами с удовольствием, но с оглядкой на их особенности. Можете поделиться своим опытом успеха или неудачи в комментах, мы их читаем, и возможно сможем поддержать именно ваш сложный и нестандартный кейс.
Если хочется попробовать самому
В Explyt 4.0, кроме AI-агента, добавлены генерация тестов по исполнению и спецификации, расширенная поддержка Testcontainers и @DataJpaTest (инструкция по установке плагина). Фича пока в бете: мы продолжаем улучшать стабильность и будем рады вашей обратной связи.
Выбрав OpenAI‑compatible провайдер в настройках плагина, вы можете попробовать Explyt с новыми моделями, например Qwen3-Coder на OpenRouter или Together.ai, а также развернуть и использовать модель локально.
Для этого рекомендуем llama.cpp и LM Studio. Помните, что для моделей меньше 30B параметров хороших результатов скорее всего не будет. Для запуска больших моделей рекомендуем использовать vLLM и другие high‑performance фреймворки.
Каналы для багрепортов и фичереквестов: GitHub Issues и чат с командой плагина.