Kotlin logo

Kotlin

A concise multiplatform language developed by JetBrains

Kotlin AI 技术栈:使用 Koog 构建 AI 智能体,使用 Junie 更智能地编码,等等

Read this post in other languages:

AI 正在改变我们构建软件的方式,而 Kotlin 已准备好迎接这一变革 ,它既能助力开发者打造 AI 赋能的应用,又能通过基于 AI 的工具提升开发者体验。

本文将从两个角度展开探讨:一方面是来自 JetBrains 和社区的用于开发 AI 赋能应用的工具;另一方面是 Kotlin 如何通过整合 AI 工具实现演进,从而提升开发效率。

亮点

使用 Kotlin 开发 AI 赋能的应用

Kotlin 不仅非常适合 AI,早已在大规模 AI 系统中投入应用。 例如,Deutsche Telekom 就使用 Kotlin 构建了欧洲最大的由 LLM 赋能的聊天机器人之一。 而在 JetBrains 内部,我们也完全依赖 Kotlin 来构建整个 AI 技术栈。 我们 IDE 中的 JunieAI Assistant、用于开发智能体的 Koog,以及用于无代码应用创建的 Kineto,均使用 Kotlin 编写。

Kotlin 之所以非常适合 AI 开发,在于它能自然支持从低级模型访问到结构化、多步骤智能体逻辑的各类需求。 我们来看看这在实践中是如何实现的。 

1. 从简单入手:通过 SDK 调用 AI 模型

要在 Kotlin 应用中集成 AI,最简单的方式之一是使用 OpenAI 或 Anthropic 的 Java SDK,而这两款 SDK 的底层均使用 Kotlin 编写。 借助这种方式,您能实现对模型的低级访问,并且可以完全控制提示、参数和数据处理。

这种方式非常适合开展实验,或构建简易 AI 功能,例如快速聊天机器人、总结工具或代码生成器。

以下是一些可供探索的示例:

OpenAI SDK

Anthropic SDK 

2. 进阶提升:使用 Spring AI 等高级库

当您希望超越原始 API 调用时,Spring AI 能为 Kotlin 用户提供流畅体验。

使用这个库,您可以:

  • 以最小工作量切换模型提供商。
  • 将 Kotlin 函数注册为 AI 工具。
  • 将结构化 AI 交互直接嵌入到应用程序逻辑中。

这样一来,您能更轻松地开发实用功能,无需在基础架构细节上耗费过多精力。 

Spring AI

如果您想了解其实际应用,可以查看 Kotlin-AI-Examples 仓库中的这些资源:

还有 LangChain4j 等其他选择,您可以在同一个仓库中找到基于 Kotlin 的 LangChain4j Spring Boot 示例

3. 标准化:通过 Model Context Protocol (MCP) 公开工具

随着您的 AI 工具愈发实用,您可能希望跨智能体、团队甚至应用共享工具。 但如何确保这些工具可供获取、一致且易于接入呢?

Model Context Protocol (MCP) 正是为此而生,并且有官方的 MCP Kotlin SDK 帮助您实现这一协议。 MCP 是一项标准,它定义了智能体如何在不使用自定义集成或粘合代码的情况下发现和使用工具。 借助 MCP Kotlin SDK,您可以通过一种能与任何兼容智能体无缝协作的方式公开工具。 这是让您的 Kotlin 代码融入更大规模互联 AI 系统的简便方式。

Kotlin MCP SDK

了解详情:

4. 使用 Koog:在 Kotlin 中构建和运行 AI 智能体

概括来讲,您可以创建智能体,即具备推理、适应能力并能使用工具的系统。

JetBrains 已开源 Koog,它是 JVM 上最先进的 AI 框架,也是首个能将完整规模的智能体化流程引入后端、Android 和 iOS 的框架。 借助 Koog,您可以构建具备可观测性、可测试性的智能体,并且这些智能体能够部署在任何运行 Kotlin 的环境中。

 

Koog 提供以下功能:

  • 持久性和检查点,使智能体可以从上次中断的地方恢复。
  • 通过 OpenTelemetry 与 Langfuse 和 W&B Weave 实现可观测性。
  • 结构化输出和类型化流式处理,实现可预测的结果和实时 UI。
  • 在工作流和客户端层面均具备智能重试和强大的错误处理能力。
  • 直接与 Spring Boot 集成,并提供全新的 Ktor 插件。
  • 多模型灵活性,支持在 LLM 间切换或路由任务,且不丢失上下文。
  • MCP 工具支持、RAG、内存以及基于图的可重用策略(用于设计高级智能体逻辑)。

由于 Koog 基于 Kotlin Multiplatform,您的智能体不仅能在 JVM 上运行,还可以在 Android、JS/WasmJS 和 iOS 上运行。 无论您是要设计一个简单智能体的原型,还是构建带有工具和内存功能的更复杂系统,Koog 都能为您提供足够的灵活性,让您从小处着手,随项目发展逐步拓展。

试用 Koog 

在 Kotlin 生态系统中,其他智能体框架也在不断涌现,其中包括:

  • Arc – 由 Deutsche Telekom 开发的自定义智能体框架,用于其 LLM 赋能的聊天机器人。
  • Embable – 基于 Spring 和 LangChain4j 构建的开源 Kotlin 框架。
  • Spring AI Alibaba – Spring AI 的扩展项目,聚焦于 LLM 工具编排。

这些方案各有不同的理念与集成,体现出使用 Kotlin 构建智能体正受到越来越多的关注。

适用于 Kotlin 的 AI 工具

尽管 Kotlin 本身是构建 AI 系统的强大语言,但目前也有各类基于 AI 的工具对其形成补充,旨在让您的开发工作流更高效、体验更愉悦。 为帮助您专注于开发并掌控过程,我们正将这些 AI 工具集成到您的 IDE 体验中。

Junie:JetBrains IDE 中的 AI 编码智能体

Junie 是 JetBrains 推出的全新 AI 编码智能体。 它能够处理您的日常任务、更新项目中的复杂部分,甚至能完全接管部分工作,让您有更多时间专注于编码中有趣且富有创造性的环节。 并且,它与 Kotlin 搭配使用的效果尤为出色。

不同于普通的自动补全工具,Junie 可以处理结构化任务,具体包括:

  • 端到端构建完整功能(例如,为 KotlinConf 应用开发随机对话生成器)。
  • 计划架构更改。
  • 执行测试。
  • 提出改进建议。

JetBrains 还在提升 Junie 向开源项目贡献代码的能力。 目前,它已作为抢先体验计划的一部分在 GitHub 中提供,能够分析问题、提出修正建议以及创建拉取请求。 加入等候名单,免费试用该功能。

Mellum:现已开源

为 Junie 提供支持的是 Mellum,这是 JetBrains 内部的代码专用 LLM,已投入生产,目前已开源。 它为 JetBrains IDE 中的代码补全提供支持,并且有一个专门针对 Kotlin 微调的版本。 

这意味着 Kotlin 社区现在可以基于 Mellum 进行实验、贡献代码以及构建自定义工具。

为什么选择 Kotlin?

简而言之,Kotlin 之所以天然适合 AI 开发与 AI 支持,具体原因如下:

  • 具备现代语言功能 ,能确保代码清晰、安全且简洁。
  • 支持与 Java 无缝互操作,可以访问现有的 AI SDK 和库。
  • 提供多平台支持,可以在服务器端、移动端与 Web 应用程序之间共享逻辑。
  • Kotlin 原生 AI 库与框架生态系统持续壮大,涵盖 Koog、MCP Kotlin SDK 和 Spring AI 集成。
  • 借助 JetBrains AI Assistant 与 Junie 实现 AI 赋能的开发体验,二者已集成到 IntelliJ IDEA 中,也可以通过插件在 Android Studio 中使用。

其他可供阅读与观看的资源

本博文英文原作者:

Alyona Chernyaeva

Alyona Chernyaeva

image description

Discover more