An AI Agent framework by JetBrains for the JVM ecosystem, featuring multi-platform deployment, graph-based workflow orchestration, multi-LLM adaptation, and enterprise-grade observability.
Koog is an AI Agent framework developed by JetBrains, built with Kotlin (97.1%) and supporting cross-platform deployment via Kotlin Multiplatform (JVM, JS, WasmJS, iOS; Android unconfirmed). The framework provides four agent types—Basic, Functional, Graph-based, and Planner—covering scenarios from simple conversations to complex multi-step planning.
Reliability & Fault Tolerance
- Built-in retry mechanisms and agent persistence, enabling state save and recovery at any point during execution
- Intelligent history compression optimizes token usage while preserving context integrity
- Built-in LLM content moderation
Workflow & Strategy
- Agent behavior driven by directed strategy graphs supporting sub-graph nesting, parallel node execution, and inter-node data passing
- Planner agents support GOAP (Goal-Oriented Action Planning) and LLM-based strategies
- Modular feature system extends agent capabilities through composable patterns (History Compression, Chat Memory, Long-term Memory, Agent Persistence, Tracing, etc.)
Protocols & Interoperability
- Integrates three major protocols: MCP (Model Context Protocol), ACP (Agent Client Protocol, scope TBD), and A2A (Agent-to-Agent)
- Supports 7 LLM providers: Google, OpenAI, Anthropic, DeepSeek, OpenRouter, Ollama, Amazon Bedrock (incl. Vertex AI), with seamless switching without losing conversation history
- Knowledge retrieval via vector embeddings, RAG, shared memory, and long-term memory
Framework Integration & Observability
- Native integration with Spring Boot (
koog-spring-boot-starter) and Ktor (koog-ktor), reusing Spring AI's VectorStore and ChatMemoryRepository - Built-in OpenTelemetry exporter with support for W&B Weave, Langfuse, DataDog
- Streaming API, JSON Schema structured output, Amazon Bedrock prompt caching
Module Structure
Core modules include agents (agent implementations), prompt (prompt & LLM clients), tools (tool registration & execution), rag, embeddings, a2a, http-client (decoupled from Ktor), serialization (library-agnostic serialization API), and more.
Quick Start Requirements: JDK 17+, Kotlin 2.3.10+, core deps kotlinx-coroutines 1.10.2, kotlinx-serialization 1.10.0, kotlinx-datetime 0.7.1.
dependencies {
implementation("ai.koog:koog-agents:0.7.3")
}
fun main() = runBlocking {
val apiKey = System.getenv("OPENAI_API_KEY")
val agent = AIAgent(
promptExecutor = simpleOpenAIExecutor(apiKey),
systemPrompt = "You are a helpful assistant. Answer user questions concisely.",
llmModel = OpenAIModels.Chat.GPT4o
)
val result = agent.run("Hello! How can you help me?")
println(result)
}
The project is currently in Beta, latest version 0.8.0 (2026-04-10), with README referencing stable dependency 0.7.3. Licensed under Apache-2.0. Unconfirmed: initial release date, Slack channel URL, ACP implementation scope, actual availability of Android and iOS targets.