A2A REGISTRYреестр ИИ-агентов

Для разработчиков

Как опубликовать паспорт ИИ-агента и карточку A2A, подать заявку и подключить поиск по реестру к своему агенту: обязательные поля, примеры на Python и JavaScript, проверка перед заявкой.

Для разработчиков

1. Опубликуйте паспорт ИИ-агента

Файл /.well-known/agent-passport.json на домене оператора. Формат 0.1, схема, генератор и скрипт подписи — на паспорт-агента.рф; проверка — там же. В поле operator.responsible_contact укажите рабочую почту: на неё придёт код подтверждения записи. Чтобы реестр нашёл карточку A2A, добавьте её адрес в agent.a2a_agent_card.

2. По желанию — карточку A2A

Файл /.well-known/agent-card.json (A2A 1.0; старый путь /.well-known/agent.json реестр тоже проверяет). Обязательные поля для реестра: name, url (адрес по HTTPS), version, skills с id и name у каждого навыка. Поле provider.organization сверяется с оператором из паспорта.

{ "name": "Помощник закупок ООО «Пример»", "description": "Ищет товары в каталоге, считает смету, готовит заказ на подтверждение", "url": "https://example.ru/a2a", "version": "1.0.0", "protocolVersion": "1.0", "provider": { "organization": "ООО «Пример»", "url": "https://example.ru" }, "capabilities": { "streaming": false, "pushNotifications": false }, "defaultInputModes": ["text/plain", "application/json"], "defaultOutputModes": ["text/plain", "application/json"], "skills": [ { "id": "search-catalog", "name": "Поиск по каталогу", "description": "Поиск товаров по описанию и параметрам", "tags": ["search", "catalog"] }, { "id": "quote", "name": "Расчёт сметы", "description": "Смета по списку позиций", "tags": ["quote"] } ] }

Полная спецификация и примеры транспортов — a2adocs.ru; протокол и Agent Card по-русски — a2aprotocol.ru. Реестр хранит слепок карточки и показывает последнее известное состояние, если агент временно недоступен.

3. Подайте заявку

Страница Добавить агента: адрес сайта, при желании адрес карточки. Сервер проверит паспорт и карточку и отправит код на почту владельца. Если запись о вашем агенте уже есть «по открытым данным», та же заявка переведёт её в статус «подтверждён владельцем».

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

Два запроса без ключа. Лимит 60 запросов в минуту с адреса, у проверки по адресу — 10. Полный список параметров — в описании API и OpenAPI.

Python

import requests # 1. найти агентов, которые умеют считать смету, у компаний с подтверждённой записью r = requests.get("https://a2aregistry.ru/api/v1/agents", params={"skill": "quote", "status": "active"}, timeout=10) for a in r.json()["items"]: print(a["name"], a["owner"]["name"], a["endpoint"], a["passport"]["number"]) # 2. убедиться, что агент настоящий, прежде чем обращаться к нему v = requests.get("https://a2aregistry.ru/api/v1/verify", params={"url": "example.ru"}, timeout=40).json() ok = v["ok"] and v["endpoint"]["online"] and v["passport"]["status"] in ("confirmed", "published") print("можно обращаться" if ok else "лучше не надо", v["passport"]["note"])

JavaScript

const base = "https://a2aregistry.ru/api/v1"; const agents = await (await fetch(`${base}/agents?skill=verify&interface=api`)).json(); const check = await (await fetch(`${base}/verify?url=` + encodeURIComponent("agentreadyscan.ru"))).json(); console.log(agents.count, check.passport.status, check.registry && check.registry.status);

Из агента через MCP или A2A

Собственного MCP-сервера у реестра нет: достаточно обычного HTTP-инструмента с двумя адресами выше. Описание для языковых моделей — llms.txt и AGENTS.md; Markdown-версия любой страницы по ?format=md или заголовку Accept: text/markdown.

5. Что проверить у себя перед заявкой

  • curl -sI https://ваш-сайт/.well-known/agent-passport.json — ответ 200 и content-type: application/json;
  • паспорт проходит проверку без ошибок;
  • адрес из поля url карточки отвечает по HTTPS с валидным сертификатом;
  • почта из responsible_contact принимает письма с robot@a2aprotocol.ru (письмо с кодом уходит с этого ящика).