Работа с ADK: полное руководство по Google Agent Development Kit

Команда adk web завершается ошибкой ModuleNotFoundError или агент не отвечает в веб-интерфейсе — типичная ситуация при первом запуске Agent Development Kit от Google, и чаще всего причина кроется в неправильной структуре проекта или отсутствующем API-ключе. ADK — это открытый фреймворк для создания ИИ-агентов, который Google представил как инструмент для разработки, тестирования и развёртывания агентных систем на базе моделей Gemini и других LLM.

В этом руководстве разберём работу с ADK по шагам: от установки пакета до запуска многоагентной системы. Материал ориентирован на Python-версию фреймворка, так как именно она получила наибольшее распространение; для Java-версии часть шагов будет отличаться, и её стоит сверять с официальной документацией.

Что такое ADK и для каких задач он нужен

Agent Development Kit — это фреймворк с открытым исходным кодом, который позволяет описывать поведение агента в коде: какую модель использовать, какие инструменты подключить и как агенты взаимодействуют между собой. В отличие от простых обёрток над API, ADK даёт готовую инфраструктуру: сессии, память, оркестрацию и веб-интерфейс для отладки.

Типичные сценарии применения:

  • 🤖 Создание чат-ботов с доступом к внешним инструментам — поиск, калькулятор, собственные функции.
  • 🔗 Построение многоагентных систем, где один агент координирует работу других.
  • 🧪 Прототипирование агентной логики с визуальной отладкой через встроенный веб-интерфейс.
  • 🚀 Развёртывание агентов в облачной среде, например на Vertex AI.

Важно понимать: ADK — это инструмент для разработчиков, а не готовое приложение. Для работы потребуются базовые знания Python и доступ к API модели — например, ключ Google AI Studio или проект в Google Cloud.

Установка ADK и подготовка окружения

Перед установкой убедитесь, что у вас установлена поддерживаемая версия Python — актуальные требования указаны в официальной документации фреймворка, и они могут меняться от релиза к релизу. Настоятельно советуем работать в виртуальном окружении, чтобы зависимости ADK не конфликтовали с другими проектами.

python -m venv .venv

source .venv/bin/activate # Linux/macOS

.venv\Scripts\activate # Windows

pip install google-adk

После установки проверьте, что пакет доступен: выполните pip show google-adk. Если команда возвращает информацию о версии — установка прошла успешно. Если pip сообщает, что пакет не найден, проверьте, активировано ли виртуальное окружение в текущем терминале: это самая частая причина «пропавшей» установки.

⚠️ Внимание: не устанавливайте ADK в глобальное окружение Python вместе с другими ML-библиотеками. Конфликты версий зависимостей — источник труднодиагностируемых ошибок при запуске агентов.

Далее потребуется ключ API. Для работы с моделями Gemini через Google AI Studio ключ создаётся в личном кабинете сервиса и передаётся через переменную окружения GOOGLE_API_KEY. Точное имя переменной и способ аутентификации зависят от выбранного бэкенда модели — сверяйтесь с документацией на момент настройки.

Создание первого агента

Структура проекта в ADK строгая: каждый агент — это отдельная папка с файлом agent.py, внутри которого определяется объект агента. Если назвать файл или переменную иначе, чем ожидает фреймворк, команда запуска не найдёт агента и выдаст ошибку загрузки.

Минимальный агент выглядит примерно так: вы импортируете класс Agent из пакета, указываете имя, модель и инструкцию — текст, описывающий роль и поведение агента. Инструкция (instruction) — главный рычаг управления поведением агента: именно она определяет, как он отвечает и когда вызывает инструменты.

from google.adk.agents import Agent

root_agent = Agent(

name="assistant",

model="gemini-2.0-flash",

instruction="Ты — помощник, отвечай кратко и по делу."

)

Обратите внимание: имя переменной root_agent и модель в примере приведены для иллюстрации — доступные идентификаторы моделей меняются, поэтому актуальное название берите из официальной документации или списка моделей вашего API-тарифа. Указание несуществующей модели приведёт к ошибке на этапе первого запроса агента.

📊 Для какой задачи вы планируете использовать ADK?
Чат-бот с инструментами
Многоагентная система
Прототипирование и эксперименты
Интеграция в рабочий продукт

Запуск и отладка через веб-интерфейс

Для локальной отладки ADK предоставляет встроенный веб-интерфейс. Он запускается командой из родительской директории проекта:

adk web

После запуска в терминале появится локальный адрес — откройте его в браузере. В интерфейсе можно выбрать агента, отправлять сообщения и просматривать трассировку: какие вызовы инструментов выполнял агент, какие промпты уходили в модель и что вернулось в ответ. Это главный инструмент диагностики, когда агент ведёт себя не так, как ожидалось.

Если агент не появился в списке веб-интерфейса, проверьте три вещи: запущена ли команда из правильной директории, называется ли файл именно agent.py и нет ли синтаксических ошибок в коде — они выводятся в терминал при старте.

☑️ Проверка перед запуском агента

Выполнено: 0 / 5

Подключение инструментов к агенту

Инструменты — это функции, которые агент может вызывать для выполнения действий: поиска информации, вычислений, обращения к внешним сервисам. В ADK обычная Python-функция становится инструментом, если передать её агенту в параметре tools. Модель получает описание функции и решает, когда её вызвать, основываясь на контексте диалога.

Чтобы модель корректно понимала назначение функции, пишите понятные docstring-описания и используйте аннотации типов для аргументов. Функция без документации или с неочевидными именами параметров часто вызывается моделью неправильно либо игнорируется вовсе.

  • 🛠️ Давайте функциям говорящие имена: get_weather вместо func1.
  • 📝 Описывайте в docstring, что функция делает и что возвращает.
  • 🔢 Аннотируйте типы аргументов и возвращаемого значения.
  • ⚡ Держите функции быстрыми: долгий инструмент блокирует ответ агента.
⚠️ Внимание: инструменты выполняются с правами вашего Python-процесса. Не передавайте агенту функции, которые удаляют файлы или отправляют данные во внешние системы, без дополнительных проверок — модель может вызвать их в неподходящий момент.
Как модель решает, когда вызвать инструмент

При каждом запросе ADK передаёт модели описания всех доступных инструментов вместе с историей диалога. Модель может вернуть вместо текста специальный вызов функции — фреймворк выполняет её, а результат подставляет обратно в контекст, после чего модель формулирует финальный ответ пользователю. Этот цикл виден в трассировке веб-интерфейса.

Многоагентные системы и оркестрация

Одна из сильных сторон ADK — поддержка иерархий агентов. Вы можете создать координатора, который делегирует задачи специализированным суб-агентам: один отвечает за поиск, другой — за анализ данных, третий — за форматирование результата. Такое разделение упрощает инструкции каждого агента и делает систему предсказуемее.

При проектировании многоагентной системы начинайте с одного агента и добавляйте новых только тогда, когда инструкция стала слишком размытой или агент путается между задачами. Избыточное дробление на старте усложняет отладку: трассировка расползается по нескольким агентам, и найти источник ошибки становится труднее.

Типичные ошибки при работе с ADK

Большинство проблем на старте связано не с самим фреймворком, а с окружением и конфигурацией. Ниже — таблица частых симптомов и способов проверки.

СимптомВозможная причинаЧто проверить
Агент не виден в adk webНеверная структура папок или имя файлаФайл должен называться agent.py, команда запущена из родительской папки
Ошибка аутентификацииНе задан или недействителен API-ключПеременная окружения с ключом, срок действия ключа
ModuleNotFoundErrorПакет установлен в другое окружениеАктивировано ли то же venv, куда ставился пакет
Модель не вызывает инструментНепонятное описание функцииDocstring, аннотации типов, имя функции
Ошибка «модель не найдена»Устаревший или неверный идентификатор моделиАктуальный список моделей в документации API

Если ни одна из проверок не помогла, смотрите полный текст ошибки в терминале: ADK выводит стектрейс Python, и последние строки обычно указывают на конкретный модуль или параметр, вызвавший сбой.

FAQ: частые вопросы о работе с ADK

Можно ли использовать ADK с моделями не от Google?

Да, фреймворк поддерживает подключение сторонних моделей через интеграции, однако набор поддерживаемых провайдеров и способ настройки зависят от версии пакета. Актуальный перечень смотрите в официальной документации ADK.

Нужен ли платный тариф для работы с ADK?

Сам фреймворк бесплатен и распространяется с открытым кодом. Затраты связаны с вызовами API модели: условия зависят от выбранного сервиса и тарифа, например от квот Google AI Studio или биллинга Google Cloud.

Чем ADK отличается от LangChain?

ADK ориентирован именно на агентные сценарии и предлагает встроенные средства оркестрации, сессий и веб-отладки из коробки, тогда как LangChain — более универсальный набор компонентов для работы с LLM. Выбор зависит от задачи: для быстрого прототипа агента ADK обычно требует меньше кода.

Можно ли развернуть агента ADK в продакшене?

Да, фреймворк предусматривает варианты развёртывания, включая облачные среды вроде Vertex AI. Конкретная процедура деплоя зависит от целевой платформы, поэтому перед публикацией изучите соответствующий раздел официальной документации и протестируйте агента под нагрузкой.

Где искать примеры кода для ADK?

Официальный репозиторий проекта и документация содержат примеры агентов разной сложности — от простого ассистента до многоагентных систем. Начинать лучше с минимального примера, постепенно добавляя инструменты и суб-агентов.