lhDream - Blog

JetBrains 开源 LLM 框架 Koog:专为 Kotlin 开发者设计的 AI 集成利器

2026/01/14
8
0

概览

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

简单尝试

环境

Java17+

Gradle 或 Maven

LLM提供的API密钥

依赖

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

最简调用Demo

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)
}

OpenAI兼容方式调用

import ai.koog.agents.core.agent.AIAgent
import ai.koog.prompt.executor.clients.openai.OpenAIClientSettings
import ai.koog.prompt.executor.clients.openai.OpenAILLMClient
import ai.koog.prompt.executor.llms.SingleLLMPromptExecutor
import ai.koog.prompt.llm.LLMCapability
import ai.koog.prompt.llm.LLMProvider
import ai.koog.prompt.llm.LLModel
import kotlinx.coroutines.runBlocking
​
fun main() = runBlocking {
    // 从环境变量获取 API 密钥
    val apiKey = System.getenv("OPENAI_API_KEY")
        ?: error("The API key is not set.")
    // 从环境变量获取 base URL
    val baseUrl = System.getenv("BASE_URL")
        ?: error("The base URL is not set.")
​
    val llmModel = LLModel(
        provider = LLMProvider.OpenAI,
        id = "GLM-4.7",
        capabilities = listOf(
            LLMCapability.Temperature,
            LLMCapability.Schema.JSON.Standard,
            LLMCapability.Tools,
            LLMCapability.Completion,
            LLMCapability.OpenAIEndpoint.Completions,
        ),
        contextLength = 128_000,
        maxOutputTokens = 128_000,
    )
​
    // 创建 agent
    val agent = AIAgent(
        promptExecutor = SingleLLMPromptExecutor(
            OpenAILLMClient(
                apiKey = apiKey,
                settings = OpenAIClientSettings(
                    baseUrl = baseUrl
                )
            )
        ),
        llmModel = llmModel
    )
​
    // 运行 agent 并打印结果
    val result = agent.run("say hello lhDream!")
    println(result)
}

参考资料

https://docs.koog.ai