Skip to content

cloud-ru-tech/a2a-adk-mcp-example

Repository files navigation

AI Agent Project with Google ADK, A2A Protocol and MCP Integration

Этот проект представляет собой реализацию AI агента с интеграцией Google ADK (Agent Development Kit), поддерживающего A2A (Agent-to-Agent) протокол для взаимодействия с другими агентами и расширяемого через MCP (Model Context Protocol) серверы. Проект включает в себя готовую инфраструктуру для разработки, тестирования и развертывания AI агентов с мониторингом и трейсингом.

Подробная документация по A2A протоколу: документация и Postman-коллекция

🎯 Особенности

  • Google ADK Integration - Использование передового SDK для разработки агентов
  • MCP Tools Support - Интеграция с Model Context Protocol для расширяемых инструментов
  • LiteLLM - Поддержка различных LLM моделей через единый интерфейс
  • Phoenix Monitoring - Опциональный мониторинг и трейсинг выполнения
  • Docker Ready - Полная контейнеризация с автоматической настройкой
  • A2A Protocol - Agent-to-Agent коммуникация
  • Flexible Configuration - Настройка через переменные окружения

📁 Структура проекта

a2a-adk-mcp-example/
├── agent/                  # Директория агента
│   ├── app/                # Основной код приложения
│   │   ├── __main__.py     # Точка входа с Click CLI
│   │   ├── agent.py        # Класс AgentEvolution
│   │   └── agent_executor.py  # Исполнитель агента
│   ├── .env.example        # Пример файла конфигурации
│   ├── pyproject.toml      # Конфигурация проекта и зависимости
│   └── README.md           # Документация агента
├── mcp-weather/            # MCP сервер погоды
│   ├── server.py           # Основной сервер
│   ├── Dockerfile          # Docker конфигурация
│   └── README.md           # Документация MCP сервера
├── nginx/                  # Nginx конфигурация
├── docker-compose.phoenix.yml  # Конфигурация с Phoenix
├── docker-compose.yml      # Основная конфигурация Docker Compose
├── Makefile                # Автоматизация команд
└── .gitignore              # Игнорируемые файлы

🛠 Установка и быстрый старт

Быстрый старт с Docker (рекомендуется)

# Сборка образов
make build

# Запуск основных сервисов
make up

# Агент будет доступен на http://localhost:10002
# MCP сервер будет доступен на http://localhost:8001

Использование Makefile

# Просмотр всех доступных команд
make help

# Запуск основных сервисов
make up

# Запуск с Phoenix мониторингом
make phoenix

# Режим разработки
make dev

# Просмотр логов
make logs

# Остановка всех сервисов
make down

⚙️ Конфигурация

Создание файла окружения

# Создание .env файла из примера
make env

# Или вручную
cp agent/.env.example .env

Основные переменные окружения

В файле .env можно настроить следующие параметры:

# Основные настройки агента
AGENT_NAME=jira_mcp_agent
AGENT_DESCRIPTION="Jira MCP агент для управления проектами, задачами, спринтами и agile-процессами"
AGENT_VERSION=1.0.0

# Конфигурация модели
LLM_MODEL="evolution_inference/model-for-agent-space-test"
LLM_API_BASE="https://your-model-api-base-url/v1"

# MCP Configuration
MCP_URL=http://mcp-weather:8001/sse

# Phoenix мониторинг (опционально)
PHOENIX_PROJECT_NAME="ip_agent_adk"
PHOENIX_ENDPOINT="http://phoenix:6006/v1/traces"

# Серверные настройки
HOST="0.0.0.0"
PORT="10002"

# Мониторинг
ENABLE_PHOENIX="false"
ENABLE_MONITORING="true"

🚀 Использование

Запуск агента

# Запуск основных сервисов
make up

# Агент будет доступен на http://localhost:10002

Режим разработки

# Запуск в режиме разработки с live reload
make dev

# Запуск с Phoenix мониторингом для отладки
make dev-phoenix

Проверка состояния

# Статус всех сервисов
make status

# Проверка здоровья
make health

# Просмотр логов
make logs

🧩 Компоненты проекта

Агент (agent/)

Основной компонент проекта - AI агент на базе Google ADK с поддержкой MCP инструментов. Агент реализует A2A Protocol для взаимодействия с другими агентами.

API Endpoints

  • GET / - Информация об агенте (Agent Card)
  • POST /tasks - Создание новой задачи
  • GET /tasks/{task_id} - Получение статуса задачи
  • GET /tasks/{task_id}/stream - SSE поток выполнения задачи

MCP Сервер погоды (mcp-weather/)

Сервер предоставляет инструменты для получения данных о погоде через MCP протокол. Использует бесплатное Open-Meteo API.

Инструменты

  • get_today_weather(city: str) - Получает актуальную погоду на сегодня для указанного города
  • get_weekly_forecast(city: str) - Получает прогноз погоды на неделю для указанного города

Endpoints

  • SSE: http://localhost:8001/sse
  • Messages: http://localhost:8001/messages/

📊 Мониторинг

Phoenix Tracing

Для включения Phoenix мониторинга установите переменную окружения:

ENABLE_PHOENIX=true

Запустите с Phoenix:

make phoenix

Phoenix Dashboard будет доступен на http://localhost:6006

🐳 Docker команды

# Основные команды
make build          # Сборка образов
make up            # Запуск сервисов
make down          # Остановка сервисов
make restart       # Перезапуск
make logs          # Просмотр логов

# Phoenix мониторинг
make phoenix       # Запуск с мониторингом
make phoenix-down  # Остановка Phoenix

# Утилиты
make shell         # Вход в контейнер агента
make clean         # Очистка Docker ресурсов

📋 Требования

  • Docker: Для контейнеризации
  • Make: Для автоматизации команд
  • MCP Server: Для инструментов (опционально)

📄 Лицензия

Этот проект распространяется под лицензией MIT. См. файл LICENSE для подробностей (если имеется).

🔗 Полезные ссылки

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published