⚡ 猫叔的AI资讯雷达
开源Agent

JetBrains 开源 KotlinLLM:运行时生成代码

JetBrains Research 以 Apache 2.0 开源 KotlinLLM:IntelliJ 插件在运行时生成 Kotlin 函数体,失败即凭断点数据重写并热加载。

函数体交给模型在运行时写

7月31日,JetBrains Research 发布 KotlinLLM,一款以 Apache 2.0 协议开源的 IntelliJ IDEA 插件:开发者只声明 Kotlin 函数,实现留给运行时的大模型生成。核心是两个 API——asLlm<F, T>(from, hint) 负责类型间转换,mockLlm<T>() 按需生成接口实现。

机制颇为特别。插件先扫描项目中的宏调用点,生成引导代码,再让程序在 Java Debug Interface 下运行。当生成的逻辑处理不了真实场景时,运行时断点会捕获当下的实际取值,由 LLM 智能体据此重写代码,随后通过 JVM 类重定义完成重新编译与热加载,再次尝试执行。

成本只在首次场景付出

由于这套循环产出的是真实 Kotlin 源码,最终交付的就是普通代码,运行时不依赖模型。已覆盖过的场景不会再触发模型调用,走过的路径上没有额外延迟与 token 开销——这与每次调用都问一遍模型的智能体设计明显不同。在 Spring Petclinic 示例项目上,JetBrains 称 24 个场景全部通过,热加载成功率 100%。团队将其定位为研究原型,明确不建议作为生产运行时使用。

为什么值得关注

目前多数编码智能体工具都工作在程序运行之前:读仓库、给 diff、等测试结果。KotlinLLM 反其道而行,把运行时状态当作规格说明,绕开代码生成最难的一环——从静态上下文里猜意图——直接从调试器拿到事实。这一范式能否推广到 JVM 之外(其热加载与调试能力本就格外好)尚无定论,但作为 Kotlin 缔造者放出的 Apache 协议参考实现,它给智能体基础设施圈提供了一个可以拿来挑战“改 diff 加跑测试”主流路线的具体样本。

信源