Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ jobs:

- name: iosSimulatorArm64Test with Gradle Wrapper
if: matrix.os == 'macos-latest'
run: ./gradlew iosSimulatorArm64Test --continue
run: ./gradlew linkIosSimulatorArm64 iosSimulatorArm64Test --continue

- name: Archive coverage data
if: matrix.os == 'ubuntu-latest'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/push-to-main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@ jobs:
cd ./docs
pip install mkdocs-material
pip install mkdocs-redirects
mkdocs gh-deploy
mkdocs gh-deploy --force
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# 0.4.1

> Published 28 Aug 2025

## Bug Fixes

Fixed iOS target publication

# 0.4.0

> Published 27 Aug 2025
Expand Down
5 changes: 3 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ so do familiarize yourself with the following guidelines.

## Documentation

The documentation is published on https://docs.koog.ai/. To propose changes or improvements to the documentation, go to the https://github.com/JetBrains/koog-docs repository.
The documentation is published on https://docs.koog.ai/, and its sources are in the
[docs](https://github.com/JetBrains/koog/tree/develop/docs) folder in this repository.

## Building

Expand All @@ -56,4 +57,4 @@ to Gradle (in Preferences -> Build, Execution, Deployment -> Build Tools -> Grad

## Running tests

Please find more information in the [TESTING.md](TESTING.md).
Please find more information in the [TESTING.md](TESTING.md).
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ Please check the [libs.versions.toml](gradle/libs.versions.toml) to know more ab

```
dependencies {
implementation("ai.koog:koog-agents:0.4.0")
implementation("ai.koog:koog-agents:0.4.1")
}
```
2. Make sure that you have `mavenCentral()` in the list of repositories.
Expand All @@ -87,7 +87,7 @@ Please check the [libs.versions.toml](gradle/libs.versions.toml) to know more ab

```
dependencies {
implementation 'ai.koog:koog-agents:0.4.0'
implementation 'ai.koog:koog-agents:0.4.1'
}
```
2. Make sure that you have `mavenCentral()` in the list of repositories.
Expand All @@ -99,7 +99,7 @@ Please check the [libs.versions.toml](gradle/libs.versions.toml) to know more ab
<dependency>
<groupId>ai.koog</groupId>
<artifactId>koog-agents-jvm</artifactId>
<version>0.4.0</version>
<version>0.4.1</version>
</dependency>
```
2. Make sure that you have `mavenCentral` in the list of repositories.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package ai.koog.agents.features.opentelemetry

/**
* This class is required for publishing iOS target when there's no commonMain set.
*/
@Suppress("unused")
private class Stub
2 changes: 1 addition & 1 deletion agents/agents-mcp/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ kotlin {
api(project(":prompt:prompt-executor:prompt-executor-llms-all"))

api(libs.mcp)
api(libs.kotlinx.serialization.json)
api(libs.kotlinx.io.core)
api(libs.kotlinx.coroutines.core)
api(libs.kotlinx.serialization.json)
api(libs.ktor.client.cio)
api(libs.ktor.client.sse)
implementation(libs.oshai.kotlin.logging)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package ai.koog.agents.mcp

/**
* This class is required for publishing iOS target when there's no commonMain set.
*/
@Suppress("unused")
private class Stub
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ group = "ai.koog"
version = run {
// our version follows the semver specification

val main = "0.4.0"
val main = "0.4.1"

val feat = run {
val releaseBuild = !System.getenv("BRANCH_KOOG_IS_RELEASING_FROM").isNullOrBlank()
Expand Down
10 changes: 10 additions & 0 deletions buildSrc/src/main/kotlin/ai.kotlin.configuration.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,13 @@ tasks.withType<KotlinJvmCompile>().configureEach {
freeCompilerArgs.add("-Xjvm-default=all")
}
}

configurations.all {
resolutionStrategy {
eachDependency {
if (requested.group == "org.jetbrains.kotlin") {
useVersion("2.1.21")
}
}
}
}
4 changes: 2 additions & 2 deletions docs/docs/examples/Attachments.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Attachments

[:material-github: Open on GitHub](
https://github.com/JetBrains/koog/blob/develop/examples/Attachments.ipynb
https://github.com/JetBrains/koog/blob/develop/examples/notebooks/Attachments.ipynb
){ .md-button .md-button--primary }
[:material-download: Download .ipynb](
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/Attachments.ipynb
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/notebooks/Attachments.ipynb
){ .md-button }

## Setting Up the Environment
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/examples/Banking.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Building an AI Banking Assistant with Koog

[:material-github: Open on GitHub](
https://github.com/JetBrains/koog/blob/develop/examples/Banking.ipynb
https://github.com/JetBrains/koog/blob/develop/examples/notebooks/Banking.ipynb
){ .md-button .md-button--primary }
[:material-download: Download .ipynb](
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/Banking.ipynb
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/notebooks/Banking.ipynb
){ .md-button }

In this tutorial we’ll build a small banking assistant using **Koog** agents in Kotlin.
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/examples/BedrockAgent.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Building AI Agents with AWS Bedrock and Koog Framework

[:material-github: Open on GitHub](
https://github.com/JetBrains/koog/blob/develop/examples/BedrockAgent.ipynb
https://github.com/JetBrains/koog/blob/develop/examples/notebooks/BedrockAgent.ipynb
){ .md-button .md-button--primary }
[:material-download: Download .ipynb](
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/BedrockAgent.ipynb
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/notebooks/BedrockAgent.ipynb
){ .md-button }

Welcome to this comprehensive guide on creating intelligent AI agents using the Koog framework with AWS Bedrock integration. In this notebook, we'll walk through building a functional agent that can control a simple switch device through natural language commands.
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/examples/Calculator.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Building a Tool-Calling Calculator Agent with Koog

[:material-github: Open on GitHub](
https://github.com/JetBrains/koog/blob/develop/examples/Calculator.ipynb
https://github.com/JetBrains/koog/blob/develop/examples/notebooks/Calculator.ipynb
){ .md-button .md-button--primary }
[:material-download: Download .ipynb](
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/Calculator.ipynb
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/notebooks/Calculator.ipynb
){ .md-button }

In this mini-tutorial we’ll build a calculator agent powered by **Koog** tool-calling.
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/examples/Chess.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Building an AI Chess Player with Koog Framework

[:material-github: Open on GitHub](
https://github.com/JetBrains/koog/blob/develop/examples/Chess.ipynb
https://github.com/JetBrains/koog/blob/develop/examples/notebooks/Chess.ipynb
){ .md-button .md-button--primary }
[:material-download: Download .ipynb](
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/Chess.ipynb
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/notebooks/Chess.ipynb
){ .md-button }

This tutorial demonstrates how to build an intelligent chess-playing agent using the Koog framework. We'll explore key concepts including tool integration, agent strategies, memory optimization, and interactive AI decision-making.
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/examples/GoogleMapsMcp.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Google Maps MCP with Koog: From Zero to Elevation in a Kotlin Notebook

[:material-github: Open on GitHub](
https://github.com/JetBrains/koog/blob/develop/examples/GoogleMapsMcp.ipynb
https://github.com/JetBrains/koog/blob/develop/examples/notebooks/GoogleMapsMcp.ipynb
){ .md-button .md-button--primary }
[:material-download: Download .ipynb](
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/GoogleMapsMcp.ipynb
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/notebooks/GoogleMapsMcp.ipynb
){ .md-button }

In this short, blog-style walkthrough, we’ll connect Koog to a Model Context Protocol (MCP) server for Google Maps. We’ll spin up the server with Docker, discover the available tools, and let an AI agent geocode an address and fetch its elevation — all from a Kotlin Notebook.
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/examples/Guesser.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Building a Number‑Guessing Agent with Koog

[:material-github: Open on GitHub](
https://github.com/JetBrains/koog/blob/develop/examples/Guesser.ipynb
https://github.com/JetBrains/koog/blob/develop/examples/notebooks/Guesser.ipynb
){ .md-button .md-button--primary }
[:material-download: Download .ipynb](
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/Guesser.ipynb
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/notebooks/Guesser.ipynb
){ .md-button }

Let’s build a small but fun agent that guesses a number you’re thinking of. We’ll lean on Koog’s tool-calling to ask targeted questions and converge using a classic binary search strategy. The result is an idiomatic Kotlin Notebook that you can drop straight into docs.
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/examples/Langfuse.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Tracing Koog Agents to Langfuse with OpenTelemetry

[:material-github: Open on GitHub](
https://github.com/JetBrains/koog/blob/develop/examples/Langfuse.ipynb
https://github.com/JetBrains/koog/blob/develop/examples/notebooks/Langfuse.ipynb
){ .md-button .md-button--primary }
[:material-download: Download .ipynb](
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/Langfuse.ipynb
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/notebooks/Langfuse.ipynb
){ .md-button }

This notebook shows how to export Koog agent traces to your Langfuse instance using OpenTelemetry. You'll set up environment variables, run a simple agent, and then inspect spans and traces in Langfuse.
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/examples/OpenTelemetry.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# OpenTelemetry with Koog: Tracing your AI agent

[:material-github: Open on GitHub](
https://github.com/JetBrains/koog/blob/develop/examples/OpenTelemetry.ipynb
https://github.com/JetBrains/koog/blob/develop/examples/notebooks/OpenTelemetry.ipynb
){ .md-button .md-button--primary }
[:material-download: Download .ipynb](
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/OpenTelemetry.ipynb
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/notebooks/OpenTelemetry.ipynb
){ .md-button }

This notebook demonstrates how to add OpenTelemetry-based tracing to a Koog AI agent. We will:
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/examples/PlaywrightMcp.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Drive the browser with Playwright MCP and Koog

[:material-github: Open on GitHub](
https://github.com/JetBrains/koog/blob/develop/examples/PlaywrightMcp.ipynb
https://github.com/JetBrains/koog/blob/develop/examples/notebooks/PlaywrightMcp.ipynb
){ .md-button .md-button--primary }
[:material-download: Download .ipynb](
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/PlaywrightMcp.ipynb
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/notebooks/PlaywrightMcp.ipynb
){ .md-button }

In this notebook, you'll connect a Koog agent to Playwright's Model Context Protocol (MCP) server and let it drive a real browser to complete a task: open jetbrains.com, accept cookies, and click the AI section in the toolbar.
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/examples/UnityMcp.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Unity + Koog: Drive your game from a Kotlin Agent

[:material-github: Open on GitHub](
https://github.com/JetBrains/koog/blob/develop/examples/UnityMcp.ipynb
https://github.com/JetBrains/koog/blob/develop/examples/notebooks/UnityMcp.ipynb
){ .md-button .md-button--primary }
[:material-download: Download .ipynb](
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/UnityMcp.ipynb
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/notebooks/UnityMcp.ipynb
){ .md-button }

This notebook walks you through building a Unity-savvy AI agent with Koog using the Model Context Protocol (MCP). We'll connect to a Unity MCP server, discover tools, plan with an LLM, and execute actions against your open scene.
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/examples/VaccumAgent.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Build a Simple Vacuum Cleaner Agent

[:material-github: Open on GitHub](
https://github.com/JetBrains/koog/blob/develop/examples/VaccumAgent.ipynb
https://github.com/JetBrains/koog/blob/develop/examples/notebooks/VaccumAgent.ipynb
){ .md-button .md-button--primary }
[:material-download: Download .ipynb](
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/VaccumAgent.ipynb
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/notebooks/VaccumAgent.ipynb
){ .md-button }

In this notebook, we'll explore how to implement a basic reflex agent using the new Kotlin agents framework.
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/examples/Weave.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Weave tracing for Koog agents

[:material-github: Open on GitHub](
https://github.com/JetBrains/koog/blob/develop/examples/Weave.ipynb
https://github.com/JetBrains/koog/blob/develop/examples/notebooks/Weave.ipynb
){ .md-button .md-button--primary }
[:material-download: Download .ipynb](
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/Weave.ipynb
https://raw.githubusercontent.com/JetBrains/koog/develop/examples/notebooks/Weave.ipynb
){ .md-button }

This notebook demonstrates how to trace Koog agents to W&B Weave using OpenTelemetry (OTLP).
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package ai.koog.integration.tests

/**
* This class is required for publishing iOS target when there's no commonMain set.
*/
@Suppress("unused")
private class Stub
7 changes: 7 additions & 0 deletions koog-agents/src/commonMain/kotlin/ai/koog/agents/Stub.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package ai.koog.agents

/**
* This class is required for publishing iOS target when there's no commonMain set.
*/
@Suppress("unused")
private class Stub
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package ai.koog.prompt.cache.files

/**
* This class is required for publishing iOS target when there's no commonMain set.
*/
@Suppress("unused")
private class Stub
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package ai.koog.prompt.cache.redis

/**
* This class is required for publishing iOS target when there's no commonMain set.
*/
@Suppress("unused")
private class Stub
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package ai.koog.prompt.executor.clients.bedrock

/**
* This class is required for publishing iOS target when there's no commonMain set.
*/
@Suppress("unused")
private class Stub
Loading