Koog 入门教程:基于 JVM 和 Kotlin 的 LLM 应用开发框架

Koog 是什么?

KoogJetBrains开源的一个用于LLM集成的框架。与langchain4jspring-ai类似,但是Koog专为 JVM 和 Kotlin 开发人员设计, 可以使用模块化功能系统自定义代理功能,并使用 Kotlin Multiplatform 部署到 JVM、JS、WasmJS、Android 和 iOS 目标平台。

本文将带你快速上手 Koog,展示如何在 Java 或 Kotlin 项目中 集成 OpenAI API ,并介绍如何使用 Koog Agents 构建智能代理。

Koog 快速开始:环境配置简单尝试

环境

Java17+

Gradle 或 Maven

LLM提供的API密钥

依赖

dependencies {
    implementation("ai.koog:koog-agents:0.5.0")
}

示例 1:直接调用 OpenAI GPT-4o

下面是一个最简单的 Koog 调用示例。我们将使用 OpenAI 的 GPT-4o 模型。首先,你需要配置 Gradle 依赖,然后通过 simpleOpenAIExecutor 快速创建一个 AI 代理。这个示例展示了 Koog 极其简洁的 API 设计。

import ai.koog.agents.core.agent.AIAgent
import ai.koog.prompt.executor.clients.openai.OpenAIModels
import ai.koog.prompt.executor.llms.all.simpleOpenAIExecutor
import kotlinx.coroutines.runBlocking
​
fun main() = runBlocking {
    // 从环境变量获取 API 密钥
    val apiKey = System.getenv("OPENAI_API_KEY")
        ?: error("The API key is not set.")
​
    // 创建 agent
    val agent = AIAgent(
        promptExecutor = simpleOpenAIExecutor(apiKey),
        llmModel = OpenAIModels.Chat.GPT4o
    )
​
    // 运行 agent 并打印结果
    val result = agent.run("say hello lhDream!")
    println(result)
}

示例 2:自定义 Base URL (兼容其他 LLM)

如果你需要使用国内的大模型(如智谱 GLM、DeepSeek 等)或第三方中转服务,可以通过自定义 Base URL 的方式来实现。Koog 提供了 OpenAILLMClient 来完美支持兼容 OpenAI 协议的接口。

下面的示例展示了如何配置 LLModel,包括设置支持 JSON Schema、函数调用 以及 Temperature 等高级功能:

常见问题与技巧

Koog 与 Spring AI 或 LangChain4j 有什么区别?

Koog 的最大优势在于其对 Kotlin Multiplatform 的原生支持。如果你需要跨平台开发(例如同时在 Android 和后端共享 LLM 逻辑),Koog 是比基于 Java 的框架更合适的选择。

## 参考资料与扩展阅读

更多关于 Koog 的高级用法和模块化功能,请查阅官方文档:

* Koog 官方文档: https://docs.koog.ai