0.5.0
Published 2 Oct 2025
Major Features
- Full Agent-to-Agent (A2A) Protocol Support:
- Multiplatform Kotlin A2A SDK: Including server and client with JSON-RPC HTTP support.
- A2A Agent Feature: seamlessly integrate A2A in your Koog agents
- Non-Graph API for Strategies: Introduced non-graph API for creating AI Agent strategies as Kotlin extension functions with most of Koog's features supported (#560)
- Agent Persistence and Checkpointing:
- Roll back Tool Side-Effects: Add
RollbackToolRegistry
in thePersistence
feature in order to roll back tool calls with side effects when checkpointing. - State-Machine Persistence / Message History Switch: Support switching between full state-machine persistence and message history persistence (#856)
- Roll back Tool Side-Effects: Add
- Tool API Improvements:
subgraphWithTask
Simplification: Get rid of requiredfinishTool
and support tools as functions insubgraphWithTask
, deduce final step automatically by data class (#791)AIAgentService
Introduced: MakeAIAgent
state-manageable and single-run explicitly, introduceAIAgentService
to manage multiple uniform running agents.- New components:
Improvements
- Make Koog-based tools exportable via MCP server (KG-388)
- Add
additionalProperties
to LLM clients in order to support custom LLM configurations (#836) - Allow adjusting context window sizes for Ollama dynamically (#883)
- Refactor streaming api to support tool calls (#747)
- Provide an ability to collect and send a list of nodes and edges out of
AIAgentStrategy
to the client when running an agent (KG-160) - Add
excludedProperties
to inlinecreateJsonStructure
too, update KDocs (#826) - Refactor binary attachment handling and introduce Base64 serializer (#838)
- In
JsonStructuredData.defaultJson
instance rename class discriminator from#type
tokind
to align with common practices (#772, KG-384) - Make standard json generator default when creating
JsonStructuredData
(it was basic before) (#772, KG-384) - Add default audio configuration and modalities (#817)
- Add
GptAudio
model in OpenAI client (#818) - Allow re-running of finished agents that have
Persistence
feature installed (#828, KG-193) - Allow ideomatic node transformations with
.transform { ...}
lambda function (#684) - Add ability to filter messages for every agent feature (KG-376)
- Add support for trace-level attributes in Langfuse integration (#860, KG-427)
- Keep all system messages when compressing message history of the agent(#857)
- Add support for Anthropic's Sonnet 4.5 model in Anthropic/Bedrock providers (#885)
- Refactored LLM client auto-configuration in Spring Boot integration, to modular provider-specific classes with improved validation and security (#886)
- Add LLM Streaming agent events (KG-148)
Bug Fixes
- Fix broken Anthropic models support via Amazon Bedrock (#789)
- Make
AIAgentStorageKey
in agent storage actually unique by removingdata
modifier (#825) - Fix rerun for agents with Persistence (#828, KG-193)
- Update mcp version to
0.7.2
with fix for Android target (#835) - Do not include an empty system message in Anthropic request (#887, KG-317)
- Use
maxTokens
from params in Google models (#734) - Fix finishReason nullability (#771)
Deprecations
- Rename agent interceptors in
EventHandler
and related feature events (KG-376) - Deprecate concurrent unsafe
AIAgent.asTool
in favor ofAIAgentService.createAgentTool
(#873) - Rename
Persistency
toPersistence
everywhere (#896) - Add
agentId
argument to allPersistence
methods instead ofpersistencyId
class field (#904)