Skip to content

Commit 6a60078

Browse files
0.5.0 release with change log (#914)
0.5.0 release with change log
1 parent 669c56d commit 6a60078

File tree

3 files changed

+171
-32
lines changed

3 files changed

+171
-32
lines changed

CHANGELOG.md

Lines changed: 167 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,121 @@
1+
# 0.5.0
2+
3+
> Published 2 Oct 2025
4+
5+
## Major Features
6+
7+
- **Full Agent-to-Agent (A2A) Protocol Support**:
8+
- **Multiplatform Kotlin A2A SDK**: Including server and client with JSON-RPC HTTP support.
9+
- **A2A Agent Feature**: seamlessly integrate A2A in your Koog agents
10+
- **Non-Graph API for Strategies**: Introduced non-graph API for creating AI Agent strategies as Kotlin extension
11+
functions with most of Koog's features supported (#560)
12+
- **Agent Persistence and Checkpointing**:
13+
- **Roll back Tool Side-Effects**: Add `RollbackToolRegistry` in the `Persistence` feature in order to roll back
14+
tool calls with side effects when checkpointing.
15+
- **State-Machine Persistence / Message History Switch**: Support switching between full state-machine persistence
16+
and message history persistence (#856)
17+
- **Tool API Improvements**:
18+
- Make `ToolDescriptor` auto-generated for class-based tools (#791)
19+
- Get rid of `ToolArgs` and `ToolResult` limitations for `Tool<*, *>` class (#791)
20+
- **`subgraphWithTask` Simplification**: Get rid of required `finishTool` and support tools as functions in
21+
`subgraphWithTask`, deduce final step automatically by data class (#791)
22+
- **`AIAgentService` Introduced**: Make `AIAgent` state-manageable and single-run explicitly, introduce `AIAgentService`
23+
to manage multiple uniform running agents.
24+
- **New components**:
25+
- Add LLM as a Judge component (#866)
26+
- Tool Calling loop with Structured Output strategy (#829)
27+
28+
## Improvements
29+
30+
- Make Koog-based tools exportable via MCP server (KG-388)
31+
- Add `additionalProperties` to LLM clients in order to support custom LLM configurations (#836)
32+
- Allow adjusting context window sizes for Ollama dynamically (#883)
33+
- Refactor streaming api to support tool calls (#747)
34+
- Provide an ability to collect and send a list of nodes and edges out of `AIAgentStrategy` to the client when running
35+
an agent (KG-160)
36+
- Add `excludedProperties` to inline `createJsonStructure` too, update KDocs (#826)
37+
- Refactor binary attachment handling and introduce Base64 serializer (#838)
38+
- In `JsonStructuredData.defaultJson` instance rename class discriminator
39+
from `#type` to `kind` to align with common practices (#772, KG-384)
40+
- Make standard json generator default when creating `JsonStructuredData`
41+
(it was basic before) (#772, KG-384)
42+
- Add default audio configuration and modalities (#817)
43+
- Add `GptAudio` model in OpenAI client (#818)
44+
- Allow re-running of finished agents that have `Persistence` feature installed (#828, KG-193)
45+
- Allow ideomatic node transformations with `.transform { ...}` lambda function (#684)
46+
- Add ability to filter messages for every agent feature (KG-376)
47+
- Add support for trace-level attributes in Langfuse integration (#860, KG-427)
48+
- Keep all system messages when compressing message history of the agent(#857)
49+
- Add support for Anthropic's Sonnet 4.5 model in Anthropic/Bedrock providers (#885)
50+
- Refactored LLM client auto-configuration in Spring Boot integration, to modular provider-specific classes with
51+
improved validation and security (#886)
52+
- Add LLM Streaming agent events (KG-148)
53+
54+
## Bug Fixes
55+
56+
- Fix broken Anthropic models support via Amazon Bedrock (#789)
57+
- Make `AIAgentStorageKey` in agent storage actually unique by removing `data` modifier (#825)
58+
- Fix rerun for agents with Persistence (#828, KG-193)
59+
- Update mcp version to `0.7.2` with fix for Android target (#835)
60+
- Do not include an empty system message in Anthropic request (#887, KG-317)
61+
- Use `maxTokens` from params in Google models (#734)
62+
- Fix finishReason nullability (#771)
63+
64+
## Deprecations
65+
66+
- Rename agent interceptors in `EventHandler` and related feature events (KG-376)
67+
- Deprecate concurrent unsafe `AIAgent.asTool` in favor of `AIAgentService.createAgentTool` (#873)
68+
- Rename `Persistency` to `Persistence` everywhere (#896)
69+
- Add `agentId` argument to all `Persistence` methods instead of `persistencyId` class field (#904)
70+
71+
## Examples
72+
73+
- Add a basic code-agent example (#808, KG-227)
74+
- Add iOS and Web targets for demo-compose-app (#779, #780)
75+
76+
# 0.4.2
77+
78+
> Published 15 Sep 2025
79+
80+
## Improvements
81+
82+
- Make agents‑mcp support KMP targets to run across more platforms (#756).
83+
- Add LLM client retry support to Spring Boot auto‑configuration to improve resilience on transient failures (#748).
84+
- Add Claude Opus 4.1 model support to Anthropic client to unlock latest reasoning capabilities (#730).
85+
- Add Gemini 2.5 Flash Lite model support to Google client to enable lower‑latency, cost‑efficient generations (#769).
86+
- Add Java‑compatible non‑streaming Prompt Executor so Java apps can call Koog without
87+
coroutines ([KG-312](https://youtrack.jetbrains.com/issue/KG-312), #715).
88+
- Support excluding properties in JSON Schema generation to fine‑tune structured outputs (#638).
89+
- Update AWS SDK to latest compatible version for Bedrock integrations.
90+
- Introduce Postgres persistence provider to store agent state and artifacts (#705).
91+
- Update Kotlin to 2.2.10 in dependency configuration for improved performance and language features (#764).
92+
- Refactor executeStreaming to remove suspend for simpler interop and better call sites (#720).
93+
- Add Java‑compatible prompt executor (non‑streaming) wiring and polish across
94+
modules ([KG-312](https://youtrack.jetbrains.com/issue/KG-312), #715).
95+
- Decouple FileSystemEntry from FileSystemProvider to simplify testing and enable alternative providers (#664).
96+
97+
## Bug Fixes
98+
99+
- Add missing tool calling support for Bedrock Nova models so agents can invoke functions when using
100+
Nova ([KG-239](https://youtrack.jetbrains.com/issue/KG-239)).
101+
- Add Android target support and migrate Android app to Kotlin Multiplatform to widen KMP
102+
coverage ([KG-315](https://youtrack.jetbrains.com/issue/KG-315), #728, #767).
103+
- Add Spring Boot Java example to jump‑start integration (#739).
104+
- Add Java Spring auto‑config fixes: correct property binding and make Koog starter work out of the box (#698).
105+
- Fix split package issues in OpenAI LLM clients to avoid classpath/load
106+
errors ([KG-305](https://youtrack.jetbrains.com/issue/KG-305), #694).
107+
- Ensure Anthropic tool schemas include the required "type" field in serialized request bodies to prevent validation
108+
errors during tool calling (#582).
109+
- Fix AbstractOpenAILLMClient to correctly handle plain‑text responses in capabilities flow; add integration tests to
110+
prevent regressions (#564).
111+
- Fix GraalVM native image build failure so projects can compile native binaries again (#774).
112+
- Fix usages in OpenAI‑based data model to align with recent API changes (#688).
113+
- Fix SpringBootStarters initialization and improve `RetryingClient` (#894)
114+
115+
## CI and Build
116+
117+
- Nightly build configuration and dependency submission workflow added (#695, #737).
118+
1119
# 0.4.1
2120

3121
> Published 28 Aug 2025
@@ -13,50 +131,67 @@ Fixed iOS target publication
13131
## Major Features
14132

15133
- **Integration with Observability Tools**:
16-
- **Langfuse Integration**: Span adapters for Langfuse client, including open telemetry and graph visualisation ([KG-217](https://youtrack.jetbrains.com/issue/KG-217), [KG-223](https://youtrack.jetbrains.com/issue/KG-223))
17-
- **W&B Weave Integration**: Span adapters for W&B Weave open telemetry and observability ([KG-217](https://youtrack.jetbrains.com/issue/KG-217), [KG-218](https://youtrack.jetbrains.com/issue/KG-218))
18-
- **Ktor Integration**: First-class Ktor support via the "Koog" Ktor plugin to register and run agents in Ktor applications (#422).
19-
- **iOS Target Support**: Multiplatform expanded with native iOS targets, enabling agents to run on Apple platforms (#512).
20-
- **Upgraded Structured Output**: Refactored structured output API to be more flexible and add built-in/native provider support for OpenAI and Google, reducing prompt boilerplate and improving validation (#443).
21-
- **GPT5 and Custom LLM Parameters Support**: Now GPT5 is available together with custom additional LLM parameters for OpenAI-compatible clients (#631, #517)
134+
- **Langfuse Integration**: Span adapters for Langfuse client, including open telemetry and graph
135+
visualisation ([KG-217](https://youtrack.jetbrains.com/issue/KG-217), [KG-223](https://youtrack.jetbrains.com/issue/KG-223))
136+
- **W&B Weave Integration**: Span adapters for W&B Weave open telemetry and
137+
observability ([KG-217](https://youtrack.jetbrains.com/issue/KG-217), [KG-218](https://youtrack.jetbrains.com/issue/KG-218))
138+
- **Ktor Integration**: First-class Ktor support via the "Koog" Ktor plugin to register and run agents in Ktor
139+
applications (#422).
140+
- **iOS Target Support**: Multiplatform expanded with native iOS targets, enabling agents to run on Apple platforms (
141+
#512).
142+
- **Upgraded Structured Output**: Refactored structured output API to be more flexible and add built-in/native provider
143+
support for OpenAI and Google, reducing prompt boilerplate and improving validation (#443).
144+
- **GPT5 and Custom LLM Parameters Support**: Now GPT5 is available together with custom additional LLM parameters for
145+
OpenAI-compatible clients (#631, #517)
22146
- **Resilience and Retries**:
23-
- **Retryable LLM Clients**: Introduce retry logic for LLM clients with sensible defaults to reduce transient failures (#592)
24-
- **Retry Anything with LLM Feedback**: Add a feedback mechanism to the retry component (`subgraphWithRetry`) to observe and tune behavior (#459).
147+
- **Retryable LLM Clients**: Introduce retry logic for LLM clients with sensible defaults to reduce transient
148+
failures (#592)
149+
- **Retry Anything with LLM Feedback**: Add a feedback mechanism to the retry component (`subgraphWithRetry`) to
150+
observe and tune behavior (#459).
25151

26152
## Improvements
27153

28154
- **OpenTelemetry and Observability**:
29-
- Finish reason and unified attributes for inference/tool/message spans and events; extract event body fields to attributes for better querying ([KG-218](https://youtrack.jetbrains.com/issue/KG-218)).
30-
- Mask sensitive data in events/attributes and introduce a “hidden-by-default” string type to keep secrets safe in logs ([KG-259](https://youtrack.jetbrains.com/issue/KG-259)).
31-
- Include all messages into the inference span and add an index for ChoiceEvent to simplify analysis ([KG-172](https://youtrack.jetbrains.com/issue/KG-172)).
32-
- Add tool arguments to `gen_ai.choice` and `gen_ai.assistant.message` events (#462).
33-
- Allow setting a custom OpenTelemetry SDK instance in Koog ([KG-169](https://youtrack.jetbrains.com/issue/KG-169)).
155+
- Finish reason and unified attributes for inference/tool/message spans and events; extract event body fields to
156+
attributes for better querying ([KG-218](https://youtrack.jetbrains.com/issue/KG-218)).
157+
- Mask sensitive data in events/attributes and introduce a “hidden-by-default” string type to keep secrets safe in
158+
logs ([KG-259](https://youtrack.jetbrains.com/issue/KG-259)).
159+
- Include all messages into the inference span and add an index for ChoiceEvent to simplify
160+
analysis ([KG-172](https://youtrack.jetbrains.com/issue/KG-172)).
161+
- Add tool arguments to `gen_ai.choice` and `gen_ai.assistant.message` events (#462).
162+
- Allow setting a custom OpenTelemetry SDK instance in Koog ([KG-169](https://youtrack.jetbrains.com/issue/KG-169)).
34163
- **LLM and Providers**:
35-
- Support Google’s “thinking” mode in generation config to improve reasoning quality (#414).
36-
- Add responses API support for OpenAI (#645)
37-
- AWS Bedrock: support Inference Profiles for simpler, consistent configuration (#506) and accept `AWS_SESSION_TOKEN` (#456).
38-
- Add `maxTokens` as prompt parameters for finer control over generation length (#579).
39-
- Add `contextLength` and `maxOutputTokens` to `LLModel` (#438, [KG-134](https://youtrack.jetbrains.com/issue/KG-134))
164+
- Support Google’s “thinking” mode in generation config to improve reasoning quality (#414).
165+
- Add responses API support for OpenAI (#645)
166+
- AWS Bedrock: support Inference Profiles for simpler, consistent configuration (#506) and accept
167+
`AWS_SESSION_TOKEN` (#456).
168+
- Add `maxTokens` as prompt parameters for finer control over generation length (#579).
169+
- Add `contextLength` and `maxOutputTokens` to `LLModel` (
170+
#438, [KG-134](https://youtrack.jetbrains.com/issue/KG-134))
40171
- **Agent Engine**:
41-
- Add AIAgentPipeline interceptors to uniformly handle node errors; propagate `NodeExecutionError` across features ([KG-170](https://youtrack.jetbrains.com/issue/KG-170)).
42-
- Include finish node processing in the pipeline to ensure finalizers run reliably (#598).
172+
- Add AIAgentPipeline interceptors to uniformly handle node errors; propagate `NodeExecutionError` across
173+
features ([KG-170](https://youtrack.jetbrains.com/issue/KG-170)).
174+
- Include finish node processing in the pipeline to ensure finalizers run reliably (#598).
43175
- **File Tools and RAG**:
44-
- Reworked FileSystemProvider with API cleanups and better ergonomics; moved blocking/suspendable operations to `Dispatchers.IO` for improved performance and responsiveness (#557, “Move suspendable operations to Dispatchers.IO”).
45-
- Introduce `filterByRoot` helpers and allow custom path filters in `FilteredFileSystemProvider` for safer agent sandboxes (#494, #508).
176+
- Reworked FileSystemProvider with API cleanups and better ergonomics; moved blocking/suspendable operations to
177+
`Dispatchers.IO` for improved performance and responsiveness (#557, “Move suspendable operations to
178+
Dispatchers.IO”).
179+
- Introduce `filterByRoot` helpers and allow custom path filters in `FilteredFileSystemProvider` for safer agent
180+
sandboxes (#494, #508).
46181
- Rename `PathFilter` to `TraversalFilter` and make its methods suspendable to support async checks.
47182
- Rename `fromAbsoluteString` to `fromAbsolutePathString` for clarity (#567).
48183
- Add `ReadFileTool` for reading local file contents where appropriate (#628).
49184
- Update kotlin-mcp dependency to v0.6.0 (#523)
50185

51-
52186
## Bug Fixes
53187

54188
- Make `parts` field nullable in Google responses to handle missing content from Gemini models (#652).
55189
- Fix enum parsing in MCP when type is not mentioned (#601, [KG-49](https://youtrack.jetbrains.com/issue/KG-49))
56190
- Fix function calling for `gemini-2.5-flash` models to correctly route tool invocations (#586).
57191
- Restore OpenAI `responseFormat` option support in requests (#643).
58192
- Correct `o4-mini` vs `gpt-4o-mini` model mix-up in configuration (#573).
59-
- Ensure event body for function calls is valid JSON for telemetry ingestion ([KG-268](https://youtrack.jetbrains.com/issue/KG-268)).
193+
- Ensure event body for function calls is valid JSON for telemetry
194+
ingestion ([KG-268](https://youtrack.jetbrains.com/issue/KG-268)).
60195
- Fix duplicated tool names resolution in `AIAgentSubgraphExt` to prevent conflicts (#493).
61196
- Fix Azure OpenAI client settings to generate valid endpoint URLs (#478).
62197
- Restore `llama3.2:latest` as the default for LLAMA_3_2 to match the provider expectations (#522).
@@ -65,14 +200,17 @@ Fixed iOS target publication
65200

66201
## Removals / Breaking Changes
67202

68-
- Remove Google Gemini 1.5 Flash/Pro variants from the catalog ([KG-216](https://youtrack.jetbrains.com/issue/KG-216), #574).
203+
- Remove Google Gemini 1.5 Flash/Pro variants from the catalog ([KG-216](https://youtrack.jetbrains.com/issue/KG-216),
204+
#574).
69205
- Drop `execute` extensions for `PromptExecutor` in favor of the unified API (#591).
70-
- File system API cleanup: removed deprecated FSProvider interfaces and methods; `PathFilter` renamed to `TraversalFilter` with suspendable operations; `fromAbsoluteString` renamed to `fromAbsolutePathString`.
206+
- File system API cleanup: removed deprecated FSProvider interfaces and methods; `PathFilter` renamed to
207+
`TraversalFilter` with suspendable operations; `fromAbsoluteString` renamed to `fromAbsolutePathString`.
71208

72209
## Examples
73210

74211
- Add a web search agent (from Koog live stream 1) showcasing retrieval + summarization (#575).
75-
- Add a trip planning agent example (from Koog live stream 2) demonstrating tools + planning + composite strategy (#595).
212+
- Add a trip planning agent example (from Koog live stream 2) demonstrating tools + planning + composite strategy (
213+
#595).
76214
- Improve BestJokeAgent sample and fix NumberGuessingAgent example (#503, #445).
77215

78216
# 0.3.0
@@ -86,7 +224,8 @@ Fixed iOS target publication
86224
the latest checkpoint (#305)
87225
- **Vector Document Storage**: Store embeddings and documents in persistent storage for retrieval-augmented generation (
88226
RAG), with in-memory and local file implementations (#272)
89-
- **OpenTelemetry Support**: Native integration with OpenTelemetry for unified tracing logs across AI agents (#369, #401,
227+
- **OpenTelemetry Support**: Native integration with OpenTelemetry for unified tracing logs across AI agents (#369,
228+
#401,
90229
#423, #426)
91230
- **Content Moderation**: Built-in support for moderating models, enabling AI agents to automatically review and filter
92231
outputs for safety and compliance (#395)

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ Currently, the framework supports the JVM, JS, WasmJS and iOS targets.
8787

8888
```
8989
dependencies {
90-
implementation("ai.koog:koog-agents:0.4.2")
90+
implementation("ai.koog:koog-agents:0.5.0")
9191
}
9292
```
9393
2. Make sure that you have `mavenCentral()` in the list of repositories.
@@ -97,7 +97,7 @@ Currently, the framework supports the JVM, JS, WasmJS and iOS targets.
9797
9898
```
9999
dependencies {
100-
implementation 'ai.koog:koog-agents:0.4.2'
100+
implementation 'ai.koog:koog-agents:0.5.0'
101101
}
102102
```
103103
2. Make sure that you have `mavenCentral()` in the list of repositories.
@@ -109,7 +109,7 @@ Currently, the framework supports the JVM, JS, WasmJS and iOS targets.
109109
<dependency>
110110
<groupId>ai.koog</groupId>
111111
<artifactId>koog-agents-jvm</artifactId>
112-
<version>0.4.2</version>
112+
<version>0.5.0</version>
113113
</dependency>
114114
```
115115
2. Make sure that you have `mavenCentral` in the list of repositories.

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ group = "ai.koog"
1818
version = run {
1919
// our version follows the semver specification
2020

21-
val main = "0.4.3"
21+
val main = "0.5.0"
2222

2323
val feat = run {
2424
val releaseBuild = !System.getenv("BRANCH_KOOG_IS_RELEASING_FROM").isNullOrBlank()

0 commit comments

Comments
 (0)