инструменты 1 мин

JetBrains открыл KotlinLLM: плагин для IDEA, который генерирует код на лету и хот-релоадит через JDI

JetBrains Research выпустил KotlinLLM — экспериментальный плагин для IntelliJ IDEA, который добавляет умные макросы: вызовы функций, чьё тело генерируется LLM во время работы программы. Если сгенерированный код не подходит, плагин останавливает выполнение, запрашивает у модели обновлённую версию и перезагружает класс через JDI. На тестах PetClinic: 24 из 24 сценариев отработали, хот-релоад прошёл со 100% успехом, оверхед около 1%. Работает только с Kotlin/JVM, требует IDEA 2025.2.x и JDK 21.

Это первый публичный инструмент, который объединяет LLM-генерацию кода с runtime hot-reload в типобезопасном языке. Если подход окажется стабильным, это сократит время на интеграции и адаптацию к меняющимся API на порядок.

Что произошло

JetBrains Research открыл исходный код KotlinLLM — плагина для IntelliJ IDEA, который вводит понятие умных макросов (Smart macros). Это обычные вызовы функций на Kotlin, чьё тело генерирует большая языковая модель во время выполнения программы.

API состоит из двух примитивов: asLlm<F, T>(from, hint) преобразует входные данные типа F в типизированное значение T (data class, enum, список, примитив), а mockLlm<T>() создаёт имплементацию интерфейса T, поведение которой зависит от вызовов методов.

Когда проект запускается через run-конфигурацию KotlinLLM, плагин сканирует вызовы макросов, генерирует bootstrap-файлы, запускает приложение под отладчиком JDI и расставляет брейкпоинты на хуках регенерации. Если сгенерированная логика не справляется с runtime-сценарием, выполнение останавливается на хуке, плагин захватывает данные из фрейма, LLM-агент отправляет обновлённый код, плагин компилирует его и переопределяет загруженный класс через JDI, после чего повторяет вызов.

На адаптированном Spring PetClinic (18 call-сайтов) все 24 сценария завершились успешно, хот-релоад сработал в 100% случаев, оверхед на компиляцию и переопределение составил около 1%. Синтетический проект для парсинга GitHub Issues обработал 20 репозиториев и 30 тысяч задач с recall около 0.89 на ground-truth метках.

Требования: IntelliJ IDEA 2025.2.x, JDK 21, OpenAI API-ключ в файле .kotlinllm. Лицензия Apache 2.0. JetBrains явно называет это research prototype, но сгенерированный код — обычный Kotlin, который можно коммитить и деплоить без зависимости от модели.

JetBrainsKotlincode-generationhot-reloaddeveloper-tools

Автор: Павел Заславский · Источник: marktechpost.com

Разработчикам. Плагин добавляет runtime-генерацию типизированного кода из грязных данных и автомок интерфейсов. Один раз отработавший сценарий больше не стоит LLM-вызовов, а код попадает в репозиторий. Работает только на Kotlin/JVM из-за переопределения классов через JDI. Полезно для парсинга API с изменчивыми схемами и тестовых заглушек, которые эволюционируют под реальные данные.

Бизнесу. Для команд на Kotlin/JVM это сокращает время на адаптацию к меняющимся API сторонних сервисов и упрощает работу с полуструктурированными данными. Подходит для финтеха, платформенных команд и стартапов, готовых экспериментировать. В проде требует code review сгенерированных файлов — как обычного кода.

Инвесторам. JetBrains движется в сторону AI-assisted разработки, но пока это исследовательский проект. Если подход покажет стабильность, это может стать частью основного продукта и усилить конкурентное преимущество IDEA. Для венчура интереснее смежные инструменты — слой генерации кода с гарантией типобезопасности востребован в enterprise-сегменте на JVM.

Хайп45
Реальная польза60
Заработать55
  • Строить адаптеры к legacy API с динамическими схемами: один раз отработавший парсер сохраняется в коде и больше не требует LLM-вызовов.
  • Создать SaaS для автогенерации тестовых моков и фикстур на основе реальных production-логов — для Kotlin/JVM команд.
  • Интегрировать подход в CI/CD-пайплайны для автопатчинга интеграционных адаптеров при обновлении внешних сервисов.
  • Форкнуть KotlinLLM и адаптировать под другие JVM-языки (Java, Scala) или собрать аналог для TypeScript с hot-reload через debugger API.
  • Предложить финтех-компаниям инструмент для нормализации данных из разнородных источников (банковские выписки, платёжные провайдеры) в типизированные структуры.
  • Прототип требует IDEA 2025.2.x, что ограничивает аудиторию — большинство команд на стабильных релизах.
  • Зависимость от OpenAI API создаёт вендор-локин и потенциальные проблемы с latency/cost при масштабировании.
  • JetBrains явно маркирует это как research prototype — нет гарантий поддержки и обратной совместимости.
  • Хот-релоад через JDI может создавать неочевидные баги в сложных runtime-сценариях, особенно при многопоточности и hot-code-replacement ограничениях JVM.

KotlinLLM — это как hot-reload на стероидах: не просто подменить файл, а дописать логику через LLM и сразу вкатить в running JVM. Идея красивая, но реальность такая: чтобы это работало, нужна свежая IDEA, JDK 21, OpenAI ключ и толерантность к экспериментам. На тестах всё прошло чисто, но это контролируемая среда. В проде столкнётесь с многопоточностью, сложными фреймворками и непредсказуемыми данными — и тогда будет весело.

Что реально ценно: сгенерированный код сохраняется в репозиторий и дальше работает без модели. Это не магия в рантайме, а автокодген с человеческим review. Для финтеха и больших Kotlin-проектов с грязными API это может быть полезно, но как research tool, а не production dependency. Если хотите экспериментировать — форкайте и адаптируйте под свои нужды. Если нужна стабильность — подождите, пока JetBrains сам решит, куда это двигать.

Ещё по теме

Комментарии