JetBrains выкатили фреймворк, который заставляет по-новому взглянуть на Kotlin в контексте AI. Речь про Koog — инструмент для сборки AI-агентов, не заставляющий уходить в Python или разворачивать LangChain. Если вы когда-нибудь пытались скрестить Kotlin с LLM, то знаете это чувство: либо костыли через HTTP-запросы, либо мучительная интеграция с JNI. Koog ломает эту традицию.
Koog — это open-source фреймворк, построенный на Kotlin Coroutines и Kotlin Multiplatform. Он позволяет описывать агента как набор инструментов (tools), подключать MCP-серверы (Model Context Protocol) и встраивать его прямо в IDE через плагин Continue Dev. Никакого Python-бэкенда, только чистый Kotlin.
Чем Koog отличается от LangChain и Semantic Kernel?
В теории, конкуренты тоже умеют создавать агентов. На практике:
- LangChain — Python. Если ваш проект на Kotlin, придётся либо ставить микросервис на Python, либо мучиться с gRPC. Koog рождается уже в твоём стеке.
- Semantic Kernel от Microsoft — C#/Python. .NET разработчики счастливы, но Kotlin-сообщество остаётся за бортом.
- Spring AI — попытка прикрутить AI к Spring Boot, но там всё завязано на Java 21, а Kotlin-специфика (sealed class, корутины) не в приоритете.
Koog же родился внутри JetBrains — компании, которая знает о разработке IDE всё. Фреймворк сразу заточен под корутины, мультиплатформу и статическую типизацию. Ошибки на этапе компиляции вместо runtime-сюрпризов — то, чего так не хватает в Python-экосистеме.
Кстати, если вы уже задумывались о разработке AI-агентов на Kotlin Multiplatform, Koog можно легко встроить в общий модуль, оставив платформенный код только для инференса моделей.
Косточка: Tools и MCP
Любой AI-агент — это, по сути, LLM, которая умеет вызывать функции (tools). Koog предлагает удобный DSL для их описания:
val weatherTool = tool(
name = "get_weather",
description = "Получить погоду в городе",
parameters = schema {
string("city") { description = "Название города" }
}
) { params ->
val city = params["city"]
// вызов API погоды
"В $city сейчас +22°C, ясно"
}
Но соль не в этом. Koog поддерживает MCP (Model Context Protocol) — открытый стандарт для взаимодействия AI-агентов с внешними сервисами. Вместо того чтобы хардкодить каждый API, вы подключаете MCP-сервер, и агент сам решает, когда и какие инструменты вызывать.
Внимание: MCP в Koog работает как на клиенте, так и на сервере. Вы можете запустить свой MCP-сервер на Kotlin и подключать к нему агентов на любом языке — хоть на Python, хоть на Rust.
Пример подключения MCP-сервера:
val mcpClient = Koog.mcpClient {
url = "http://localhost:8080/mcp"
tools.addAll(weatherTool)
}
val agent = Koog.agent {
llm = OpenAILike("gpt-4o-mini")
tools.from(mcpClient)
}
Такой подход перекликается с идеями из статьи про ai-sidekick на Python и Docker с MCP-tools, но на Kotlin вы получаете бонусом компилируемость и корутины.
Интеграция с Continue Dev: агент прямо в редакторе
Continue Dev — это AI-ассистент для IDE (поддерживает VS Code, JetBrains). Koog умеет регистрировать вашего агента как кастомного «ассистента» в Continue. То есть вы пишете агента на Kotlin, а он подсказывает код, рефакторит, генерирует тесты — прямо в IntelliJ IDEA.
Настройка занимает пару строк в конфиге Continue:
{
"models": [{
"provider": "koog",
"model": "my-agent",
"apiKey": "..."
}]
}
Далее в IDE появляется новый чат-интерфейс, где работает ваш агент. Это вам не агент на Bun за 30 минут — тут глубже интеграция с контекстом проекта.
Архитектура: как не выстрелить себе в ногу
Самая частая ошибка — пытаться засунуть всю логику в одного агента. Koog поощряет композицию: вы создаёте несколько мелких специализированных агентов (code-reviewer, тестировщик, анализатор зависимостей) и объединяете их через MCP.
Рекомендую прочитать статью про проектирование AI-агентов от planner/executor до stateful memory — паттерны оттуда отлично ложатся на Koog. Например, planner можно реализовать как отдельный tool, который решает, какой дочерний агент запустить.
Кому это реально нужно?
- Kotlin-backend разработчикам, усташим от Python-микросервисов для AI.
- Создателям IDE-плагинов — Koog из коробки дружит с JetBrains платформой.
- Командам, использующим KMP — единый код агента для сервера, десктопа и мобилок.
- Тем, кто хочет попробовать MCP без Python — Kotlin-сервер работает быстрее и легче контейнеризируется.
Если вам интересна тема создания контента с помощью нейросетей, советую присмотреться к курсу AI-креатор: создаём контент с помощью нейросетей — там научат эффективно использовать AI-агентов в продакшене, включая архитектуру на Kotlin.
Koog — это не очередной «убийца LangChain», а честная попытка дать Kotlin-разработчикам инструмент, который не заставляет их выучить Python. Попробуйте на маленьком pet-проекте: напишите агента, который смотрит ваши TODO-комментарии в коде и предлагает их реализовать. Удивитесь, как быстро он начнёт приносить пользу.