The JetBrains Blog

KotlinLLM is Going Open Source

8.5内容质量

TL;DR · AI 摘要

JetBrains开源KotlinLLM插件,通过显式代码生成实现LLM运行时逻辑委托,解决性能与可维护性问题。

核心要点

  • KotlinLLM通过Smart macros实现显式LLM委托,生成代码可持久化存储
  • asLlm函数支持运行时将非结构化数据转换为类型安全的Kotlin值
  • 生成的代码无需插件即可独立运行,消除LLM调用的延迟和成本

结构提纲

按章节快速跳转。

  1. 宣布KotlinLLM插件正式开源及其核心价值主张

  2. 通过Smart macros实现LLM代码生成与运行时逻辑委托

  3. 对比现有LLM运行时方案的性能与可维护性缺陷

  4. 生成代码的持久化存储与独立运行机制

  5. 基于Kotlin项目验证代码生成效果与性能提升

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • KotlinLLM开源
    • 核心特性
      • 显式委托
      • 代码持久化
      • 可移植运行
    • 解决痛点
      • 运行时性能问题
      • 代码可维护性
      • 静态类型支持缺失
    • 应用场景
      • 数据解析
      • 接口模拟
      • 测试用例生成

金句 / Highlights

值得收藏与分享的关键句。

#Kotlin#LLM#JetBrains#开源
打开原文

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 IDEAKotlin/JVM 项目插件。它添加了一种我们称为智能宏的语言特性。智能宏是一种普通 Kotlin 函数调用,其主体是生成的 Kotlin 代码。公共 API 提供了以下两个智能宏:

  • asLlm<F, T>(from, hint) 将类型为 F 的输入转换为类型 T 的值(数据类、枚举、列表或原始类型)。用于在运行时将非结构化或半结构化数据解析为类型化的 Kotlin 值。
  • mockLlm<T>() 生成接口 T 的有状态实现。其行为取决于调用的方法,因此可以作为无需手动编写的测试桩使用。
code
// 抽象层级更高:描述意图,让 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

研究原型

  • 分享
  • Facebook
  • Twitter
  • Linkedin

上一篇

Kotlin 15周年:庆祝Kotlin效应