Выпуск паспорта
Заполните форму — паспорт соберётся прямо в браузере, на сервер ничего не отправляется. Скачайте файл и положите на свой сайт. Без подписи это уровень К2, с подписью — К3.

{}
Как разместить
- Положите файл на сайт по адресу
/.well-known/agent-passport.json— на том домене, что указан в поле «Сайт оператора». - Проверьте, что сервер отдаёт его с типом
application/jsonи разрешает чтение с других сайтов (CORS) — так паспорт прочитают агенты из браузера. - Откройте проверку и введите имя своего сайта.
- Если всё в порядке — внесите паспорт в реестр.
Папка .well-known начинается с точки — некоторые программы загрузки её скрывают. Включите показ скрытых файлов.
<Files "agent-passport.json"> ForceType application/json Header set Access-Control-Allow-Origin "*" </Files>
location = /.well-known/agent-passport.json {
default_type application/json;
add_header Access-Control-Allow-Origin *;
}
Подпись: уровень К3
Подпись делается у вас на компьютере. Закрытый ключ никуда не отправляется — ни на этот сайт, ни на ваш сервер.
- Скачайте sign-passport.py и установите пакет
cryptography. - Создайте ключ один раз и храните файл ключа в надёжном месте.
- Подпишите паспорт: скрипт добавит открытый ключ в
keys[]и подпись вsignatures[]. - Положите подписанный файл на сайт и проверьте.
Что подписывается: каноническая форма паспорта без поля signatures (RFC 8785), алгоритм EdDSA (Ed25519), подпись JWS с отделённым содержимым — так же, как у карточки агента A2A.
После любой правки паспорта подпишите его заново: иначе проверка покажет, что файл изменён после подписи.
# 1. один раз pip install cryptography # 2. ключ (файл .pem — секретный) python3 sign-passport.py keygen --kid key-2026 # 3. подпись python3 sign-passport.py sign agent-passport.json \ --key agent-passport-private.pem --kid key-2026 # 4. проверка у себя python3 sign-passport.py verify agent-passport.signed.json
Не государственный документ. Паспорт публикует сам оператор, реестр подтверждает только соответствие формату и подпись на дату проверки.
О проекте