Google в начале ноябре выкатили поддержку Golang для Agent Development Kit.
ADK - это фреймворк для разработки AI-агентов. Зачем это нужно и почему просто не сходить в LLM по API?
В фреймворк, помимо API самой модели встроили кучу готовых инструментов, каждый из которых умеет делать какое-то базовое действие. Например тул google_search - ищет информацию в сети; MCP Toolbox умеет ходить в разные БД и вытягивать оттуда информацию, и таких инструментов - множество. Все они под общим интерфейсом, и ADK дает возможность под этим же интерфейсом писать свои тулы, которые могут делать буквально что угодно, например ходить в какой-то сервис и дергать его API.
Помимо этого в ADK есть поддержка протокола А2А, который позволяет одному агенту стать оркестратором и управлять другими агентами.
А еще UI для дебага, рантайм и сервер для запуска агентов, поддержка сессий, памяти и многое другое.
Как и где это юзать? Например, юзкейс: прилетает алерт. Какие действия обычно делает дежурный? Я обычно иду по ссылкам из алерта, смотрю последние деплои, в случае не разового всплеска ошибок тегаю необходимые команды и людей, и, если необходимо, начинаю разбираться по логам, метрикам и дашбордам (порядок действий может меняться 🙂).
ADK позволит, например, запилить бота в слаке, которому любой разработчик в компании может на человеческом языке сказать: покажи последние ошибки сервисе myservice за час и посмотри, не связаны ли они с изменениями в базу myservice2.
После чего агент распарсит запрос через LLM, поймет что нужно дернуть тул, который ходит в логи и системы для обсервабилити, затем другим тулом дернет состояние связанной базы, и затем уже нашими кастомными тулами подтянет ошибки из сервиса с логами, и склеит результаты и выдаст понятный ответ.
Простым языком, ADK-агент это LLM-обвязка, заточенная под то, чтобы говорить на человеческом языке, дергать кучу внешний сервисов/БД/API, работать в кооперации с другими такими же агентами, и при этом жить в продакшене как обычный микросервис. Будто бы общаешься с chatgpt, только тот умеет ходить по нужным тебе сервисам и делать необходимые тебе вещи, а не только искать в сети.
Такое нам нравится.
dev notes | golang digest
Post #325
647