A2A Docs спецификация 1.0.0

Начало / Протокол

Протокол

Привязки, версии и параметры сервиса

Перевод и пересказОснова: Спецификация, разделы 1.3, 3.2.6, 3.6 и 4Сверено 05.10.2026, версия 1.0.0Открыть .md

Протокол описывает, как клиент и агент обмениваются данными. Модель данных и операции сформулированы независимо от транспорта, а на практике вы выбираете одну из привязок и пользуетесь одиннадцатью операциями.

Привязки#

A2A определён в трёх привязках. Все они ДОЛЖНЫ давать функционально эквивалентные представления структур данных.

Привязка Как устроена
JSON-RPC 2.0 Запросы JSON-RPC по HTTP, потоковая передача через Server-Sent Events. Раздел 9 оригинала.
gRPC Службы и вызовы gRPC на основе a2a.proto. Раздел 10 оригинала.
HTTP+JSON/REST Ресурсные адреса и методы HTTP, например POST /message:send. Раздел 11 оригинала.

Для HTTP+JSON/REST зарегистрирован тип содержимого application/a2a+json. Протокол можно переносить и на другие транспорты: см. страницу «Custom Protocol Bindings» оригинальной документации.

Пример запроса в привязке HTTP+JSON:

http
POST /message:send HTTP/1.1
Host: agent.example.com
Content-Type: application/a2a+json
A2A-Version: 1.0
Authorization: Bearer token

{
  "message": {
    "role": "ROLE_USER",
    "parts": [{"text": "Найди рестораны рядом"}],
    "messageId": "msg-uuid"
  }
}

Версионирование#

Версия протокола задаётся элементами Major.Minor версии спецификации, например 1.0. Номера патчей не влияют на совместимость: их НЕ СЛЕДУЕТ указывать в запросах, ответах и Agent Card, и они НЕ ДОЛЖНЫ учитываться, когда клиент и сервер согласуют версию.

Что делает клиент#

  • Клиент ДОЛЖЕН отправлять заголовок A2A-Version с каждым запросом. Это сохраняет совместимость после того, как агент обновится до новой версии протокола. Исключение — клиенты версии 0.3: при пустом заголовке считается, что версия 0.3.
  • Версию МОЖНО передать и параметром запроса A2A-Version=1.0 вместо заголовка.
  • Клиентским агентам, которым нужны новейшие возможности, СЛЕДУЕТ запрашивать конкретные версии и избегать автоматического отката на старые, чтобы незаметно не потерять функциональность.

Что делает сервер#

  • Агент ДОЛЖЕН обрабатывать запрос по семантике запрошенной версии (совпадение Major.Minor). Если интерфейс эту версию не поддерживает, агент ДОЛЖЕН вернуть VersionNotSupportedError.
  • Пустое значение агент ДОЛЖЕН трактовать как версию 0.3.
  • Агент МОЖЕТ открыть несколько интерфейсов одного транспорта с разными версиями, по одному и тому же или по разным адресам.

Инструменты и SDK#

Библиотеки и SDK, которые реализуют A2A, ДОЛЖНЫ помогать клиентам управлять версиями: например, согласовывать транспорт и версию протокола.

Параметры сервиса#

Параметры сервиса — пары «ключ — значение», которые передаются вместе с операциями и применимы ко всем запросам. Ключи не зависят от регистра, значения зависят. Способ передачи определяет привязка: HTTP-заголовки для HTTP-привязок, метаданные для gRPC. Пользовательские привязки ДОЛЖНЫ описать этот способ.

Имя Описание Пример значения
A2A-Extensions Список URI расширений через запятую, которые клиент хочет использовать в запросе. https://example.com/extensions/geolocation/v1
A2A-Version Версия протокола A2A, которую использует клиент. Если версия не поддерживается, агент возвращает VersionNotSupportedError. 1.0

Все параметры сервиса, определённые спецификацией, начинаются с a2a-, чтобы не конфликтовать с параметрами транспорта и инфраструктуры.

Операции#

Одиннадцать операций делятся на четыре группы. Таблица с запросами, ответами и описанием приведена на странице «Методы».

  • Отправка сообщений: SendMessage, SendStreamingMessage.
  • Работа с задачами: GetTask, ListTasks, CancelTask, SubscribeToTask.
  • Push-уведомления: CreateTaskPushNotificationConfig, GetTaskPushNotificationConfig, ListTaskPushNotificationConfigs, DeleteTaskPushNotificationConfig.
  • Agent Card: GetExtendedAgentCard.

Дальше#