Koog 智能体框架
用 Kotlin 和 Java 构建可恢复、可观测的跨平台 AI 智能体。
- Star 数
- ★ 4.6k
- 最近更新
- 今天
- License
- Apache-2.0
- 主语言
- Kotlin
- FA 评分
- 27/100 · 缺口较多
30 秒速览
- 可在哪里用
- 通用 · 跨平台OpenAI API · Claude API
- 开始前需要
- 典型场景
- Kotlin 后端团队需要在 JVM 服务中通过 AIAgent 调用 OpenAI、Anthropic 或其他已列出的模型提供商。
- 主要局限
- JVM 使用明确要求 JDK 17+;现有项目还需显式满足 Kotlin 2.3.10+。
这个 Agent 能做什么,适合哪些场景?
Koog 是 JetBrains 提供的 Kotlin AI 智能体框架,也提供 Java API,面向 JVM、JS、WasmJS、Android 和 iOS 目标。开发者可通过类型安全的 Kotlin DSL、AIAgent 和图式工作流组织模型调用、工具交互与复杂流程。框架支持 OpenAI、Anthropic、Google、DeepSeek、OpenRouter、Ollama 和 Bedrock,并可在执行中切换或路由 LLM,同时适配已有会话历史。它提供重试、在执行点恢复状态的持久化、历史压缩、流式响应与并行工具调用等运行能力。对于生产服务,Koog 还列出 Spring Boot、Ktor、MCP、ACP、向量嵌入/RAG,以及 W&B Weave 和 Langfuse 的 OpenTelemetry 可观测性集成。
应用创建 AIAgent,配置 promptExecutor、systemPrompt 和 llmModel;README 示例使用 MultiLLMPromptExecutor(OpenAILLMClient(apiKey)) 与 OpenAIModels.Chat.GPT4o。随后调用 agent.run("Hello! How can you help me?"),获得结果并用 println 输出。框架可让智能体与工具交互、运行图式工作流,并支持 MCP 工具和 ACP 合规智能体通信;长会话可使用内置历史压缩,失败场景可用重试和持久化恢复执行状态。
- Kotlin 后端团队需要在 JVM 服务中通过 AIAgent 调用 OpenAI、Anthropic 或其他已列出的模型提供商。
- Android、iOS 与 Web 团队希望以 Kotlin Multiplatform 为 JVM、JS、WasmJS 和 iOS 目标共享智能体实现。
- Spring Boot 或 Ktor 应用需要把工具调用、图式流程和流式模型响应嵌入现有服务。
- 需要在故障后通过重试与 agent persistence 恢复特定执行点的长流程应用。
- 已经提供 MCP 工具或需要构建 ACP-compliant agent、与标准化客户端通信的集成团队。
- 需要以向量嵌入和 RAG 在多轮对话间保留、检索知识的产品团队。
如何安装或部署这个 Agent?
在 JVM 项目中使用 JDK 17 或更高版本;现有项目应显式使用 Kotlin 2.3.10 或更高版本,并配置 mavenCentral()。Gradle Kotlin DSL:dependencies { implementation("ai.koog:koog-agents:1.1.1"); implementation("ai.koog:koog-agents-additions:1.1.1-beta") }。Maven 可使用 ai.koog:koog-agents-jvm:1.1.1 和 ai.koog:koog-agents-additions-jvm:1.1.1-beta。
如何使用这个 Agent?
先为所选提供商设置 API 密钥环境变量;示例读取 OPENAI_API_KEY。创建 AIAgent(promptExecutor = MultiLLMPromptExecutor(OpenAILLMClient(apiKey)), systemPrompt = "You are a helpful assistant. Answer user questions concisely.", llmModel = OpenAIModels.Chat.GPT4o),然后在 runBlocking 中调用 agent.run("Hello! How can you help me?") 并输出返回值。若改用 README 列出的其他提供商,需要相应的客户端、模型配置和凭据;仓库未给出这些配置的完整代码。
这个 Agent 有哪些优点和局限?
- Kotlin Multiplatform 覆盖 JVM、JS、WasmJS、Android 和 iOS,适合跨端共享智能体逻辑。
- 内置重试、执行状态持久化恢复和历史压缩,直接针对长运行与故障场景。
- 支持多个 LLM 提供商,并明确支持执行中切换模型或在提供商间路由且适配既有历史。
- 同时提供 MCP、ACP、Spring Boot、Ktor、RAG 和可观测性集成,便于接入 JVM 应用生态。
- JVM 使用明确要求 JDK 17+;现有项目还需显式满足 Kotlin 2.3.10+。
- 调用云端模型需要相应提供商的 API 密钥,README 未说明费用、配额或凭据管理方案。
- README 给出的完整入门代码只展示 OpenAI;其他已列提供商的具体客户端与模型配置未在该示例中展开。
- 可观测性仅明确列出 W&B Weave 和 Langfuse,其他后端或具体部署配置没有在提供材料中说明。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|
| Koog 智能体框架 当前 | 27 · 缺口较多 | ★ 4.6k | 今天 | Kotlin | OpenAI API · Claude API |
| ai4j — Java AI Agentic 开发套件 | 52 · 缺口较多 | ★ 429 | 4 天前 | HTML | OpenAI API · Claude API |
| Oh My Pi | 54 · 缺口较多 | ★ 33k | 今天 | TypeScript | Codex · OpenAI API · Claude API |
| Embabel Agent Framework | 0 · 缺口较多 | ★ 4.5k | 今天 | Kotlin | OpenAI API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:仓库未提供权限模型、用户确认机制、数据流透明性、敏感数据处理、依赖安全审计、外部影响控制、回滚机制或来源归属的说明。所有信任相关标准均未得到支持,因此得分为0。
证据显示:README声称支持多平台和可靠性特性,但未提供具体实现细节或测试证据。依赖可用性方面,声明了Maven Central和Gradle依赖,但未提供版本锁定或依赖验证。失败消息方面,未提供错误处理或用户反馈机制。因此,自我一致性得分为1(部分声明),依赖可用性得分为1(部分声明),失败消息得分为0。
证据显示:README明确了目标受众(JVM/Kotlin开发者)和多种使用场景(后端、Android、iOS等),得分为2。能力边界方面,列出了支持的LLM提供商和平台,但未明确限制或边界,得分为1。触发精度方面,未提供任何触发机制或精确控制,得分为0。环境适配方面,提供了JVM、JS、WasmJS、Android、iOS等目标平台,得分为2。
证据显示:README提供了清晰的信息架构(概述、特性、快速开始、使用指南),得分为2。安装说明详细(Gradle、Maven),得分为2。命名稳定性方面,提到了语义化版本,但未提供具体版本历史,得分为1。示例和FAQ方面,提供了快速开始示例,但无FAQ,得分为2。已知限制方面,未提及任何限制,得分为0。许可证为Apache-2.0,得分为2。版本控制和变更日志方面,提到了VERSIONING.md,但未提供具体内容,得分为1。维护责任方面,提供了Slack和YouTrack支持,但未明确维护者,得分为1。
证据显示:输出可用性方面,提供了API参考和文档,但未提供实际输出示例,得分为1。边际价值方面,提供了多种特性(如多平台、可靠性、历史压缩等),得分为2。成本效益方面,未提供性能或资源消耗数据,得分为1。
证据显示:声明可追溯性方面,README中的声明未提供具体实现或测试证据,得分为1。跨来源佐证方面,提供了CI状态和测试工作流,但未提供独立验证,得分为1。事实与推断分离方面,未区分事实和推断,得分为0。
- 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 源码中未见:来源归属可核验从官方仓库或包源安装,核对发布者和仓库地址,避免同名仿冒包。
- 该仓库未提供任何安全或权限相关的文档,使用前需自行评估风险。
- README中的声明缺乏实现细节和测试证据,建议查看源代码和测试以验证。
- 未提及已知限制,可能隐藏潜在问题。