8.1.2 用 Kotlin 开发 AI 驱动的应用

原文链接: https://kotlinlang.org/docs/kotlin-ai-apps-development-overview.html

8.1.2 用 Kotlin 开发 AI 驱动的应用

了解 Koog 如何帮助你用 Kotlin 构建 AI 驱动的应用。

Kotlin 为构建 AI 驱动的应用提供了现代而务实的基础。它可以跨平台使用,能很好地与成熟的 AI 框架集成,并支持常见的 AI 开发模式。

Koog

Koog 是 JetBrains 推出的开源框架,用于构建从简单到复杂的 AI 代理。它提供多平台支持、Spring Boot 与 Ktor 集成、符合语言习惯的 DSL,以及开箱即用的生产级特性。

几行代码创建一个简单的代理

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
fun main() {
    runBlocking {
        val agent = AIAgent(
            // 使用 Anthropic、Google、OpenRouter 或任何其他提供商
            executor = simpleOpenAIExecutor(System.getenv("OPENAI_API_KEY")),
            systemPrompt = "You are a helpful assistant. Answer user questions concisely.",
            llmModel = OpenAIModels.Chat.GPT4o
        )

        val result = agent.run("Hello! How can you help me?")
        println(result)
    }
}

Koog 入门

主要特性

  • 支持多平台开发。多平台支持让代理式应用的开发可以面向 JVM、JavaScript、WebAssembly、Android 和 iOS。
  • 可靠性与容错。借助内置的重试机制,Koog 让开发者能够处理超时或工具错误等失败情况。代理持久化使得可以恢复完整的代理状态机,而不仅仅是聊天消息。
  • 面向长上下文的内置历史压缩技术。Koog 自带高级策略,无需额外设置即可压缩和管理长时间运行的对话。
  • 企业级集成。Koog 可与 Spring Boot 和 Ktor 这类流行的 JVM 框架集成。
  • 通过 OpenTelemetry 导出器实现可观测性。Koog 提供了与 W&B Weave、Langfuse 等流行可观测性提供商的即用型集成,用于监控和调试 AI 应用。
  • 切换 LLM 并平滑适配历史记录。Koog 允许在任意时刻带着新的工具集切换到另一个 LLM,而不会丢失已有的对话历史。它还支持在多个 LLM 提供商之间重新路由,包括 OpenAI、Anthropic、Google 等。通过 Koog 与 Ollama 的集成,你还可以用本地模型在本地运行代理。
  • 与 JVM 和 Kotlin 应用集成。Koog 为 JVM 和 Kotlin 开发者提供了符合语言习惯、类型安全的 DSL。
  • Model Context Protocol (MCP) 集成。Koog 支持在代理中使用 MCP 工具。
  • 知识检索与记忆。通过嵌入、排序文档存储和共享代理记忆,Koog 自身能够在多轮对话之间主动保留知识。
  • 流式能力。Koog 通过流式支持和并行工具调用,让开发者可以实时处理响应。

从哪里开始

Model Context Protocol (MCP) Kotlin SDK

MCP Kotlin SDK 是 Model Context Protocol 的 Kotlin Multiplatform 实现。该 SDK 让开发者可以用 Kotlin 构建 AI 驱动的应用,并在 JVM、WebAssembly 和 iOS 上接入各类 LLM 界面。

使用 MCP Kotlin SDK,你可以:

  • 通过把上下文处理与 LLM 交互分离,以结构化、标准化的方式为 LLM 提供上下文。
  • 构建消费现有服务器资源的 MCP 客户端。
  • 创建向 LLM 暴露提示、工具和资源的 MCP 服务器。
  • 使用 stdio、SSE 和 WebSocket 这类标准通信传输方式。
  • 处理所有 MCP 协议消息和生命周期事件。

探索其他 AI 驱动的应用场景

得益于无缝的 Java 互操作性和 Kotlin Multiplatform,你可以把 Kotlin 与成熟的 AI SDK 和框架结合,构建后端以及桌面/移动端 UI,并采用 RAG 和基于代理的工作流等模式。

你可以在 Kotlin-AI-Examples 仓库中探索并运行示例。每个项目都是自包含的。你可以把每个项目用作构建基于 Kotlin 的 AI 应用的参考或模板。

接入主流模型提供商

用 Kotlin 接入 OpenAI、Anthropic、Google 等主流模型提供商:

  • OpenAI —— OpenAI API 的官方 Java SDK。它涵盖 responses 与 chats、图像和音频。
  • Anthropic (Claude) —— Claude Messages API 的官方 Java SDK。它包含用于 Vertex AI 和 Bedrock 集成的模块。
  • Google AI (Gemini / Vertex AI) —— 官方 Java SDK,用一个客户端即可在 Gemini API 与 Vertex AI 之间切换。
  • Azure OpenAI —— Azure OpenAI 服务的官方 Java 客户端。它支持聊天补全和嵌入。
  • AWS Bedrock —— 用于调用基础模型的官方 SDK。它包含面向 Bedrock 和 Bedrock Runtime 的 Kotlin SDK 与 Java SDK。

创建 RAG 流水线与基于代理的应用

  • Spring AI —— 面向提示、聊天、嵌入、工具与函数调用以及向量存储的多提供商抽象。
  • LangChain4j —— JVM 工具包,提供用于提示、工具、检索增强生成(RAG)流水线和代理的 Kotlin 扩展。

接下来学什么