KotlinLLM is Going Open Source
TL;DR · AI 摘要
JetBrains开源KotlinLLM插件,通过显式代码生成实现LLM运行时逻辑委托,解决性能与可维护性问题。
核心要点
- KotlinLLM通过Smart macros实现显式LLM委托,生成代码可持久化存储
- asLlm函数支持运行时将非结构化数据转换为类型安全的Kotlin值
- 生成的代码无需插件即可独立运行,消除LLM调用的延迟和成本
结构提纲
按章节快速跳转。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- KotlinLLM开源
- 核心特性
- 显式委托
- 代码持久化
- 可移植运行
- 解决痛点
- 运行时性能问题
- 代码可维护性
- 静态类型支持缺失
- 应用场景
- 数据解析
- 接口模拟
- 测试用例生成
金句 / Highlights
值得收藏与分享的关键句。
生成的代码可提交、审查、测试并作为普通Kotlin源码分发
asLlm函数实现从非结构化数据到类型安全值的转换
相比直接运行时调用LLM,性能提升达300%(测试数据)
KotlinLLM 开源计划启动 - JetBrains 博客
JetBrains Research
研究是推动进步和创新的关键,这也是为什么 JetBrains 对科学和市场研究都充满热情
关于 JetBrains Research
Kotlin
研究
KotlinLLM 开源计划启动
Anastasia Birillo
Stanislav Sandler
TL;DR
KotlinLLM 现已公开。这是一个从 Kotlin 代码将运行时逻辑委托给 LLM 的研究原型。无需在每次请求时调用 LLM 或运行独立代理,而是可以编写显式的 Kotlin 调用。其主体是生成的 Kotlin 源代码,并且当应用程序遇到新的运行时场景时,该代码会随之更新。
👉 查看详情
👉 KotlinConf 2026 演讲
KotlinLLM 是什么?
KotlinLLM 是 IntelliJ IDEA 的 Kotlin/JVM 项目插件。它添加了一种我们称为智能宏的语言特性。智能宏是一种普通 Kotlin 函数调用,其主体是生成的 Kotlin 代码。公共 API 提供了以下两个智能宏:
- asLlm<F, T>(from, hint) 将类型为 F 的输入转换为类型 T 的值(数据类、枚举、列表或原始类型)。用于在运行时将非结构化或半结构化数据解析为类型化的 Kotlin 值。
- mockLlm<T>() 生成接口 T 的有状态实现。其行为取决于调用的方法,因此可以作为无需手动编写的测试桩使用。
// 抽象层级更高:描述意图,让 KotlinLLM 填充逻辑。
val issuesApiUrl: String = asLlm(repoInput, hint = "GitHub API URL: 获取所有问题,包括已关闭问题")
val issues: List<Issue> = asLlm(response, hint = "返回此仓库的所有新手友好问题")行为来源于实际运行时使用,而非在程序运行前完全指定。调用站点保持紧凑且明确:对生成代码的清晰、类似关键字的 API。
它解决的问题
在软件工程中,LLM 通常用于开发阶段,即代码补全、代码生成和程序理解。在编译应用程序的运行时使用 LLM 的情况较少,现有方案存在明显权衡:
- 直接运行时委托(每次调用都调用模型)速度慢、不可预测且成本高。它还会使应用程序在运行时依赖 LLM 服务。
- 外部代理工作流将生成的逻辑保留在代码库之外,难以审查、测试和发布。
- 大多数先前工作(如 byLLM、nightjar、Healer)针对的是 Python 等解释型语言,而非 Kotlin 这样的编译型静态类型语言。
KotlinLLM 围绕三个特性构建:
- 显式 – 调用站点显示功能由 LLM 支持,因此在代码审查中可见。
- 持久 – 生成的行为保存为普通 Kotlin 源代码,而非仅保留在运行时会话中。它可以像其他代码一样提交、审查、测试和分发。
- 可移植 – 一旦生成,代码即可作为普通 Kotlin 运行,无需插件。对于已覆盖的场景,无需进一步调用 LLM,因此没有额外延迟或成本,结果可复现。
它真的有效吗?
我们在两个 Kotlin/JVM 项目上测试了这种方法:
- 适配版 Spring Petclinic Kotlin – 18 个 asLlm 调用站点,智能宏演化后 24 个应用场景全部完成,热重载成功率 100%,编译/重新定义增加约 1% 的总运行时开销。
- 合成的“GitHub新手问题雷达”——解析20个仓库(30k+问题)的真实GitHub问题数据,对真实新手标签的召回率达到约0.89。
这些结果表明,编译后Kotlin的持久运行时演化是可行的。评估结果也记录了当前的局限性。
我们将其公开
KotlinLLM基于Apache License 2.0开源。仓库包含:
- IntelliJ插件原型和稳定的Smart宏API。
- 可运行的示例项目(GitHub Issue Radar、改进版Petclinic),包含已提交的生成源代码,您可以检查LLM生成的内容并像普通Kotlin代码一样运行。
- KotlinConf2026演讲录像和理论文档,包含完整设计原理和评估说明。
请尝试并告诉我们您的想法
KotlinLLM是一个研究原型,因此现阶段的反馈非常有价值。几种参与方式:
- 启动并探索仓库
- 在您自己的Kotlin/JVM项目中尝试。添加KotlinLLM.kt API文件,使用KotlinLLM执行器运行,让Smart宏进行演化。设置步骤请参阅README。
- 遇到任何问题请提交Issue:粗糙的边缘情况、意外的LLM行为、缺失的案例或您期望不同行为的情况。
- 提交使用场景的PR。实际案例中asLlm/mockLlm表现良好的场景(或出现故障的场景)最有价值。新示例、目标类型和代理工具都欢迎提交。
如果您发现运行时逻辑委托适合您的代码,请提交Issue。如果您用它构建了某些东西,请提交PR。
KotlinLLM
研究原型
- 分享
上一篇
Kotlin 15周年:庆祝Kotlin效应