⌨️Создание AI-агентов на Kotlin
Часть 1: минимальный кодовый агент
Строить агентов - странная штука. Ты пишешь не код, который сам что-то делает. Ты пишешь код, который даёт LLM возможность что-то делать, а что именно делать - решает уже сама модель.
К этому сдвигу мышления нужно привыкнуть. Ты даёшь агенту возможность читать файлы - и он сам решает, какие файлы читать и когда. Ты ожидаешь, что он начнёт с main-файла. А он вместо этого сначала читает три тестовых файла, чтобы понять паттерны. Ты его об этом не просил. Он просто так сделал.
https://blog.jetbrains.com/ai/2025/11/building-ai-agents-in-kotlin-part-1-a-minimal-coding-agent/
Часть 2: более глубокое погружение в инструменты
В предыдущей статье мы увидели, как собрать базового coding-агента с возможностями list, read, write и edit. Сегодня разберём, как расширять возможности агента, создавая дополнительные инструменты (tools) в рамках фреймворка Koog. В качестве примера мы сделаем ExecuteShellCommandTool - научим агента запускать код и замкнём “feedback loop”, на котором держится реальная инженерия: запускать код, наблюдать падения и улучшать код на основе реального вывода.
https://blog.jetbrains.com/ai/2025/11/building-ai-agents-in-kotlin-part-2-a-deeper-dive-into-tools/
Часть 3: под наблюдением
Две статьи позади - и наш coding-агент уже умеет немало. Он может исследовать проекты, читать и писать код, выполнять shell-команды и гонять тесты. Добавление “definition of done” (DoD) в прошлой статье дало ему нужный контур обратной связи: теперь агент итеративно улучшает решение, пока не пройдут все тесты, а не пока он сам “решит”, что закончил.
https://blog.jetbrains.com/ai/2025/12/building-ai-agents-in-kotlin-part-3-under-observation/
Часть 4: делегирование и субагенты
В прошлой части мы настроили трассировку (tracing), и это приводит к двум новым вопросам: какие эксперименты стоит проводить, опираясь на информацию, которую даёт этот инструмент? И какие части агента можно улучшить, используя его наблюдения?
https://blog.jetbrains.com/ai/2026/01/building-ai-agents-in-kotlin-part-4-delegation-and-sub-agents/
Часть 5: учим агентов забывать
Мы запускали GPT-5 Codex начиная с части 1. Он набирает 0.58 на SWE-bench Verified. Затем мы попробовали Claude Sonnet 4.5 - он показал 0.6 и работал быстрее на большинстве задач. Но на сложных задачах Claude быстрее упирался в своё контекстное окно 200K.
Скорее всего, ты тоже будешь переключать модели: ради лучшей производительности, меньшей стоимости или чтобы запускать локально. Иногда это означает более маленькие контекстные окна - особенно у локальных моделей, где “память” ограничена дорогими ресурсами. Но даже самые большие контекстные окна ломаются на сложных и длинных задачах. Нельзя просто бесконечно “покупать ещё контекста”.
https://blog.jetbrains.com/ai/2026/01/building-ai-agents-in-kotlin-part-5-teaching-agents-to-forget/
✍️