Чем больше строишь AI-агентов, тем острее чувствуешь одну проблему: LLM-вызовы — это чёрный ящик. Что-то пошло не так, токены улетели, инструмент вызвался не туда — а ты смотришь в логи и гадаешь. Стандартные инструменты observability для этого не приспособлены: они не понимают ни структуру агентов, ни tool-вызовы, ни что вообще происходит между запросами к модели.
JetBrains выпустили 🐱 Tracy — open-source Kotlin-библиотеку, которая закрывает именно этот пробел. Под капотом OpenTelemetry, так что данные уходят в любой совместимый бэкенд.
Что она умеет:
1️⃣ Трейсинг LLM-клиентов —
instrument(client) одной строкой, и все вызовы к OpenAI, Anthropic, Gemini автоматически трейсятся. По умолчанию только метаданные, входные/выходные данные включаются отдельно — разумно для продакшна2️⃣ Трейсинг кода —
withSpan { } оборачивает любой блок, всё внутри становится дочерними спанами. Видно, откуда вызов, сколько занял, что происходило рядом3️⃣
@Trace на интерфейсах — аннотируешь один раз интерфейс Tool, и все реализации трейсятся автоматически. Новые инструменты не потеряютсяИнтегрируется с OkHttp и Ktor-клиентами, экспортирует в Jaeger, Langfuse, W&B Weave и любой OpenTelemetry-бэкенд.
Аудитория у библиотеки конкретная — те, кто пишет AI-агентов и бэкенд-сервисы с LLM на Kotlin. Не Android, не KMP — именно серверная история. Если вы экспериментируете с агентами на Kotlin или уже катите что-то в продакшн, Tracy выглядит как недостающий кусок пазла.
🔗 Источник: Kotlin Blog
#Kotlin #AI