8.1.2 用 Kotlin 开发 AI 驱动的应用
4 分钟阅读
原文链接: 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,以及开箱即用的生产级特性。
几行代码创建一个简单的代理
| |
主要特性
- 支持多平台开发。多平台支持让代理式应用的开发可以面向 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 扩展。
接下来学什么
- 完成创建一个用 Spring AI 回答问题的 Kotlin 应用教程,进一步了解如何在 IntelliJ IDEA 中把 Spring AI 与 Kotlin 结合使用
- 加入 Kotlin 社区,与其他用 Kotlin 构建 AI 应用的开发者交流
- 了解