Koog是JetBrains开源的一个用于LLM集成的框架。与langchain4j和spring-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")
}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)
}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)
}