Конспект: Протокол Agent2Agent (A2A) от Google

Конспект: Протокол Agent2Agent (A2A) от Google

Дмитрий Жечков https://t.me/llm_notes

1. Основная концепция A2A 📝

Определение:

  • Открытый протокол для обеспечения взаимодействия между ИИ-агентами
  • Позволяет агентам общаться независимо от базовой платформы или разработчика
  • Ориентирован на выполнение задач и обмен информацией

Ключевое отличие от MCP (Model Context Protocol):

  • MCP (от Anthropic) фокусируется на предоставлении инструментов и контекста для отдельных агентов
  • A2A фокусируется на коммуникации между агентами и координации их действий
  • A2A дополняет MCP, а не конкурирует с ним

2. Архитектура протокола 🏗️

Участники взаимодействия:

  • Пользователь: конечный пользователь (человек или сервис)
  • Клиент: сущность, запрашивающая действие от удаленного агента
  • Удаленный агент (сервер): "черный ящик", выполняющий запрошенные действия

Транспортный уровень:

  • Использует HTTP для обмена данными между клиентом и удаленным агентом
  • Применяет JSON-RPC 2.0 как формат обмена данными
  • Поддерживает SSE (Server-Sent Events) для потоковой передачи обновлений

3. Ключевые возможности A2A 🔑

1. Безопасное сотрудничество:

  • Следует спецификации аутентификации Open API
  • Не передает информацию об идентификации внутри протокола A2A
  • Использует материалы аутентификации (токены) вне полосы передачи
  • Передает требования аутентификации в заголовках HTTP

2. Управление задачами и состояниями:

  • Задачи (Tasks) - основные объекты для совместной работы агентов
  • Поддерживает асинхронные и долгосрочные задачи
  • Отслеживает статус выполнения задач (submitted, working, input-required, completed, canceled, failed)
  • Позволяет клиентам опрашивать агентов для получения обновлений

3. Согласование пользовательского опыта:

  • Агенты могут обмениваться сообщениями (Messages) с различными типами контента
  • Поддерживает различные модальности (текст, файлы, структурированные данные)
  • Позволяет согласовывать формат взаимодействия между агентами

4. Обнаружение возможностей:

  • Использует "Agent Card" в формате JSON для описания возможностей агента
  • Позволяет клиентам идентифицировать наиболее подходящего агента для задачи
  • Включает информацию о навыках, поддерживаемых модальностях и требованиях аутентификации

4. Основные объекты протокола 📦

Task (Задача):

json

{
  "id": "string",
  "sessionId": "string",
  "status": {
    "state": "working",
    "message": { /* Message object */ },
    "timestamp": "ISO datetime"
  },
  "history": [ /* Message objects */ ],
  "artifacts": [ /* Artifact objects */ ],
  "metadata": { /* Custom metadata */ }
}

Artifact (Артефакт):

json

{
  "name": "string",
  "description": "string",
  "parts": [ /* Part objects */ ],
  "metadata": { /* Custom metadata */ },
  "index": 0,
  "append": false,
  "lastChunk": false
}

Message (Сообщение):

json

{
  "role": "user" | "agent",
  "parts": [ /* Part objects */ ],
  "metadata": { /* Custom metadata */ }
}

Part (Часть):

  • TextPart: текстовое содержимое
  • FilePart: файловое содержимое (с поддержкой base64 или URI)
  • DataPart: структурированные данные

5. Уникальные особенности A2A 🌟

Асинхронность:

  • Поддержка как стандартных запрос/ответ паттернов, так и потоковых обновлений
  • Возможность получения push-уведомлений при отключении
  • Поддержка очень длительных задач и участия человека в процессе

Модальная агностичность:

  • Работа не только с текстом, но и с аудио, видео, формами, iframe и др.
  • Возможность согласования поддерживаемых типов контента между агентами

Непрозрачное выполнение:

  • Агенты не обязаны делиться своими мыслями, планами или инструментами
  • Обмен только контекстом, статусом, инструкциями и данными

Корпоративная готовность:

  • Встроенная поддержка корпоративной аутентификации и авторизации
  • Поддержка отслеживания и мониторинга
  • Соответствие требованиям безопасности и конфиденциальности

6. Методы взаимодействия 🔄

Основные методы:

  • tasks/send: отправка новой задачи или продолжение существующей
  • tasks/get: получение информации о задаче и сгенерированных артефактах
  • tasks/cancel: отмена ранее отправленной задачи
  • tasks/pushNotification/set: настройка push-уведомлений для задачи
  • tasks/sendSubscribe: создание задачи с подпиской на потоковые обновления
  • tasks/resubscribe: повторная подписка на обновления задачи

Поддержка многоходовых диалогов:

  • Задача может приостанавливаться, если требуется дополнительный ввод от пользователя
  • Клиент может предоставить дополнительную информацию для возобновления задачи

7. Практические сценарии использования 💼

Подбор кандидатов:

  • Агент менеджера по найму взаимодействует с агентами поиска кандидатов
  • Координация процесса собеседования и проверки биографии
  • Автоматизация всего процесса найма

Другие потенциальные сценарии:

  • Автоматизация заказа оборудования и IT-поддержки
  • Координация между агентами обслуживания клиентов
  • Планирование цепочки поставок
  • Интеграция различных корпоративных систем

8. Сравнение A2A и MCP 🔍

Более подробная информация здесь https://google.github.io/A2A/#/topics/a2a_and_mcp.md

9. Текущий статус и перспективы 🔮

Текущий статус:

Планы развития:

  • Выпуск производственной версии протокола в течение года
  • Расширение функциональности и примеров использования
  • Создание стабильных SDK на основе спецификации

Как присоединиться:

  • Изучение спецификации на GitHub https://github.com/google/A2A
  • Экспериментирование с примерами кода
  • Предложение идей и участие в развитии протокола


Report Page