JetBrains open-source KotlinLLM : des macros intelligentes qui génèrent du code source Kotlin à l'exécution et le rechargent à chaud via JDI

JetBrains Research a mis en open source KotlinLLM, un plugin pour IntelliJ IDEA destiné aux projets Kotlin/JVM qui introduit une nouvelle fonctionnalité de langage baptisée « smart macros ». Concrètement, il s'agit d'appels de fonction Kotlin classiques dont le corps est généré par du code Kotlin produit à la volée. L'API publique se limite à deux primitives : asLlm<F, T>(from, hint), qui convertit une entrée de type F en une valeur typée T (data class, énumération, liste ou type primitif), et mockLlm<T>(), qui génère une implémentation avec état d'une interface T dont le comportement dépend des méthodes appelées. Lorsqu'un projet est lancé via la configuration d'exécution KotlinLLM, le plugin scanne les appels à asLlm et mockLlm, met à jour des fichiers générés (bootstrap, provider, parser, mock), lance l'exécution sous le débogueur JDI et pose des points d'arrêt sur des hooks de régénération. Si la logique générée ne correspond pas à un scénario d'exécution rencontré, le plugin capture les valeurs et types de la frame suspendue, transmet ces informations à un agent LLM qui propose une mise à jour du code, puis compile et redéfinit la classe chargée à chaud avant de relancer l'appel initial. Sur un projet Spring Petclinic adapté en Kotlin comportant 18 points d'appel asLlm, les 24 scénarios applicatifs testés ont abouti après évolution des smart macros, avec un taux de succès de 100 % en rechargement à chaud et un surcoût d'exécution d'environ 1 % lié à la compilation et à la redéfinition de classes. Un second test synthétique, baptisé « GitHub Beginner Issue Radar », a analysé plus de 30 000 issues réelles sur 20 dépôts, atteignant environ 0,89 de rappel sur les étiquettes de référence identifiant les issues adaptées aux débutants.
L'intérêt principal de KotlinLLM tient à sa capacité à limiter les appels au LLM aux seuls scénarios inédits. Une fois qu'un comportement a été généré et validé, le projet cible peut ensuite compiler et exécuter ce code sans nouvelle sollicitation du modèle, ce qui évite d'ajouter de la latence ou des coûts d'inférence pour les cas déjà couverts. Le code produit est du Kotlin ordinaire, versionnable et relisable, et non une dépendance à un modèle. Cette approche cible des usages concrets comme la normalisation de réponses d'API semi-structurées, la création de doublons de test évolutifs, l'adaptation à la dérive de schémas côté fournisseur, ou encore la classification de texte bruité. Elle peut intéresser les équipes R&D, les équipes plateforme d'entreprises Kotlin/JVM de taille moyenne à grande, ainsi que les start-up tolérantes aux outils encore expérimentaux, notamment dans la fintech, la banque, l'e-commerce, la logistique ou l'outillage pour développeurs.
JetBrains présente néanmoins clairement KotlinLLM comme un prototype de recherche, pas comme un outil prêt pour la production. Le plugin nécessite IntelliJ IDEA 2025.2.x, JDK 21 et une clé d'API OpenAI stockée dans un fichier .kotlinllm du projet cible, configurable via le menu Tools de l'IDE. Il est distribué sous licence Apache 2.0, accompagné d'exemples exécutables, du mémoire de thèse à l'origine du projet et de l'enregistrement d'une présentation donnée à KotlinConf 2026. Pour les entreprises soumises à des exigences réglementaires, JetBrains recommande de traiter le code généré comme n'importe quel code source à relire et auditer, ce qui correspond précisément à la manière dont le plugin le stocke.
Les equipes de developpement Kotlin/JVM en France et en UE peuvent evaluer cet outil experimental, JetBrains etant une entreprise europeenne basee a Prague.
Dans nos dossiers
Vu une erreur factuelle dans cet article ? Signalez-la. Toutes les corrections valides sont publiées sur /corrections.




