🚀 Мультиагентные системы: как решить проблему изоляции LLM с помощью инструментов ADK
🤔 Зачем агентам нужны инструменты?
Проблема:
Без инструментов знания агента ограничены данными обучения — он не знает свежих новостей, инвентаря компании или внешних API. LLM изолирован и не может выполнять действия.
Решение:
Инструменты превращают LLM в функционального агента. В этой статье вы узнаете:
- Как превратить функции Python в инструменты агента
- Как создать агента и использовать его как инструмент в другом агенте
- Как построить мультиинструментального агента
- Обзор всех типов инструментов в Agent Development Kit (ADK)
📖 Начало работы с Python и ADK
1. Установите зависимости
pip install google-adk
2. Получите ключ API Gemini
- Перейдите в Google AI Studio
- Создайте API-ключ
- Сохраните его в переменной окружения:
import os os.environ["GOOGLE_API_KEY"] = "ваш_ключ"
3. Проверка аутентификации
import os try: api_key = os.environ["GOOGLE_API_KEY"] print("API key loaded successfully.") except KeyError: print("Error: Set GOOGLE_API_KEY environment variable.")
⚙ Раздел 1: Настройка среды
1.1 Импорт компонентов ADK
from google.genaiimport types from google.adk.agentsimportLlmAgentfrom google.adk.models.google_llmimportGeminifrom google.adk.runnersimportInMemoryRunnerfrom google.adk.sessionsimportInMemorySessionServicefrom google.adk.toolsimport google_search, AgentTool, ToolContextfrom google.adk.code_executorsimportBuiltInCodeExecutorprint("ADK components imported successfully.")
1.2 Параметры повторных попыток
Для обработки временных ошибок (429, 500, 503, 504):
🤖 Раздел 2: Пользовательские инструменты
Пользовательские инструменты — это ваш код и бизнес-логика. Встроенные (как Google Search) универсальны, но не покрывают уникальные нужды компании.
2.1 Пример: Агент конвертации валют
Два инструмента:
- Поиск комиссии
- Курс обменаЗатем — точный расчёт
Рекомендации ADK для создания инструментов
- Возврат: {"status": "success", "data": ...} или {"status": "error", "error_message": ...}
- Чёткие docstrings — LLM использует их для понимания инструмента
- Type hints — для корректной генерации схем
- Обработка ошибок — структурированные ответы
Инструмент 1: Комиссия за платёж
Инструмент 2: Курс обмена
Создание валютного агента
⚙ Как выглядит архитектура агента ADK
Повышение надёжности с помощью кода
LLM ошибается в математике. Даже простые расчёты могут быть неточными.
Решение: Делегировать вычисления коду, а не полагаться на LLM.
3.1 Агент-калькулятор с BuiltInCodeExecutor
3.2 Улучшенный валютный агент
Результат: Код генерируется → выполняется в sandbox → точный ответ.
🧩 Интерактивная схема взаимодействия агентов
Инструменты vs Субагенты
В нашем случае — инструмент, потому что нужен контроль.
Раздел 4: Полное руководство по типам инструментов ADK
1. Пользовательские инструменты
2. Встроенные инструменты
🧭 Пример архитектуры с несколькими агентами
✅ Итоги
ADK позволяет создавать агентов, которые:
- 🔧 используют Python-функции как инструменты;
- 🧠 делегируют задачи другим агентам;
- 💻 выполняют код для точных расчетов;
- 🌐 подключаются к API и внешним сервисам.