# Формат паспорта ИИ-агента 0.1 — все поля и пример

Адрес: https://xn----7sbbaom0ddhbmjqf.xn--p1ai/format/

Формат «Паспорт ИИ-агента» 0.1: 19 обязательных полей, пример, несколько агентов на одном сайте, статусы, проверка и подпись.

# Формат 0.1

Паспорт ИИ-агента — один JSON-файл на сайте оператора. Здесь все поля: что обязательно, что нет и на какую статью Конституции агента каждое опирается.

**19** обязательных полей; **35** полей всего; обсуждение до **15.12.2026**; лицензия **CC BY 4.0**

![Раскрытый документ с пронумерованными графами и голографической наклейкой на гербовой бумаге](https://xn----7sbbaom0ddhbmjqf.xn--p1ai/assets/img/pages/format-1400.webp)

1

### Где лежит

`/.well-known/agent-passport.json` на домене из поля `operator.site`. Только HTTPS.

2

### Как предъявляется

Агент сообщает адрес паспорта — в заголовке `Agent-Passport` или первым сообщением.

3

### Как проверяется

По [JSON-схеме](https://xn----7sbbaom0ddhbmjqf.xn--p1ai/shema/), домену, статусу и сроку. Подпись, если есть, — по открытому ключу из паспорта.

## Поля паспорта

Группы идут в том же порядке, что и в файле. Ссылки в последнем столбце ведут на статьи Конституции агента.

[Схема JSON](https://xn----7sbbaom0ddhbmjqf.xn--p1ai/.well-known/agent-passport.schema.json)

| Поле | Обязательно | Что содержит | Статья |
| --- | --- | --- | --- |
| Документ | | | |
| `passport_version` | да | Версия формата: «0.1» строка, например `"0.1"` | — |
| `passport_id` | да | Постоянный адрес паспорта на домене оператора. Если агентов несколько — с #фрагментом адрес, например `"https://example.ru/.well-known/agent-passport.json#zakupki"` | [9](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-9) |
| `status` | да | active — действует, suspended — приостановлен, revoked — отозван одно из трёх, например `"active"` | [16](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-16) |
| `issued_at` | да | Дата выпуска дата ГГГГ-ММ-ДД, например `"2026-11-01"` | — |
| `valid_until` | нет | Срок действия. Без него паспорт действует, пока его не отзовут дата ГГГГ-ММ-ДД, например `"2027-11-01"` | — |
| `revoked_at` | нет | Дата отзыва, если status = revoked дата ГГГГ-ММ-ДД, например `"2027-03-15"` | [16](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-16) |
| Агент | | | |
| `agent.name` | да | Название агента, не короче 2 знаков строка, например `"Агент закупок"` | [9](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-9) |
| `agent.version` | да | Версия агента строка, например `"1.4"` | [9](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-9) |
| `agent.purpose` | да | Назначение одной фразой строка, например `"Подбор и заказ комплектующих"` | [9](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-9) |
| `agent.acts_for` | да | От чьего имени действует: individuals — граждане, companies — организации, operator — сам оператор одно из трёх, например `"companies"` | [9](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-9), [17](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-17) |
| `agent.actions` | да | Что умеет: search, compare, quote, order, pay, sign, message, publish, other список, например `["search", "order"]` | [7](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-7) |
| `agent.a2a_agent_card` | нет | Ссылка на карточку агента A2A адрес, например `"https://example.ru/.well-known/agent-card.json"` | [17](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-17) |
| Оператор | | | |
| `operator.name` | да | Кто запускает агента и отвечает за него строка, например `"ООО «Пример»"` | [32](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-32) |
| `operator.inn` | нет | ИНН — для российских организаций, 10 или 12 цифр строка цифр, например `"7700000000"` | [32](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-32) |
| `operator.ogrn` | нет | ОГРН (13 цифр) или ОГРНИП (15 цифр) строка цифр, например `"1027700000000"` | [32](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-32) |
| `operator.site` | да | Домен оператора. Паспорт должен лежать на этом же домене адрес, например `"https://example.ru"` | [17](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-17) |
| `operator.responsible_contact` | да | Как связаться с ответственным человеком. E-mail удобнее всего: на него придёт код подтверждения реестра строка, например `"agents@example.ru"` | [33](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-33) |
| `operator.stop_endpoint` | да | Адрес, по которому принципал или оператор немедленно останавливает агента адрес, например `"https://example.ru/agent/stop"` | [16](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-16) |
| Разработчик | | | |
| `developer.name` | нет | Разработчик, если это не оператор строка, например `"ООО «Разработчик»"` | — |
| `developer.site` | нет | Сайт разработчика адрес, например `"https://developer.example.ru"` | — |
| Модель ИИ | | | |
| `ai.model_provider` | да | Чья модель ИИ используется. Если модели нет — так и напишите строка, например `"Пример-ИИ"` | [23](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-23) |
| `ai.model` | нет | Название модели строка, например `"модель-1"` | [23](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-23) |
| `ai.data_processing_country` | да | Страна, где обрабатываются данные: код из двух латинских букв код страны, например `"RU"` | [23](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-23) |
| `ai.cross_border_transfer` | да | Передаются ли персональные данные за рубеж true / false, например `false` | [23](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-23) |
| Правила | | | |
| `policy.identifies_as_ai` | да | Агент называет себя агентом. Всегда true true, например `true` | [2](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-2) |
| `policy.irreversible_actions_require_confirmation` | да | Необратимые действия — только с подтверждением человека true / false, например `true` | [12](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-12) |
| `policy.preauthorized_limit` | нет | Сумма, до которой мандат разрешает действовать без отдельного подтверждения: amount и currency объект, например `{"amount": 50000, "currency": "RUB"}` | [12](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-12), [19](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-19) |
| `policy.log_available_to_principal` | да | Принципал видит журнал действий агента true / false, например `true` | [28](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-28) |
| `policy.tamper_evident_log` | нет | Журнал защищён от незаметного изменения true / false, например `true` | [27](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-27) |
| `policy.content_marking` | нет | Материалы для третьих лиц помечаются как созданные ИИ true / false, например `true` | [31](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-31) |
| Конституция агента | | | |
| `constitution.version` | нет | Версия Конституции, к которой присоединился оператор строка, например `"0.1"` | [38](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-38) |
| `constitution.level` | нет | Заявленный уровень: K1–K4 одно из четырёх, например `"K2"` | [38](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-38) |
| `constitution.declaration` | нет | Адрес заявления о присоединении адрес, например `"https://example.ru/.well-known/agent-constitution.json"` | [38](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-38) |
| Ключи и подпись | | | |
| `keys[]` | нет | Открытые ключи агента: kid, kty = OKP, crv = Ed25519, x список, например `[{"kid": "key-2026", "kty": "OKP", "crv": "Ed25519", "x": "…"}]` | [20](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-20), [31](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/tekst/#st-31) |
| `signatures[]` | нет | Подпись паспорта (JWS, как у карточки агента A2A): protected и signature. С версии 1.0 обязательна для К3 список, например `[{"protected": "…", "signature": "…"}]` | — |

## Пример

Паспорт агента закупок условной компании. Подписи нет — это уровень К2.

Чтобы выпустить свой, заполните [форму выпуска](https://xn----7sbbaom0ddhbmjqf.xn--p1ai/vypusk/): она соберёт такой же файл прямо в браузере.

### Несколько агентов на одном сайте

Файл может содержать список: `{"passports": [ … ]}`. У каждого паспорта свой `passport_id` с фрагментом, например `…/agent-passport.json#zakupki` и `…#podderzhka`. Проверка по адресу с фрагментом выбирает один паспорт из списка.

### Статусы и отзыв

- `active` — действует;
- `suspended` — приостановлен, например на время расследования;
- `revoked` — отозван навсегда, с датой в `revoked_at`.

Отозванный паспорт не удаляют: файл остаётся с новым статусом, чтобы контрагенты видели, что агент больше не действует.

```
{
  "passport_version": "0.1",
  "passport_id": "https://example.ru/.well-known/agent-passport.json#zakupki",
  "status": "active",
  "issued_at": "2026-11-01",
  "valid_until": "2027-11-01",
  "agent": {
    "name": "Агент закупок",
    "version": "1.4",
    "purpose": "Подбор и заказ комплектующих по мандату отдела снабжения",
    "acts_for": "companies",
    "actions": [
      "search",
      "compare",
      "quote",
      "order"
    ],
    "a2a_agent_card": "https://example.ru/.well-known/agent-card.json"
  },
  "operator": {
    "name": "ООО «Пример»",
    "inn": "0000000000",
    "ogrn": "0000000000000",
    "site": "https://example.ru",
    "responsible_contact": "agents@example.ru",
    "stop_endpoint": "https://example.ru/agent/stop"
  },
  "ai": {
    "model_provider": "Пример-ИИ",
    "model": "модель-1",
    "data_processing_country": "RU",
    "cross_border_transfer": false
  },
  "policy": {
    "identifies_as_ai": true,
    "irreversible_actions_require_confirmation": true,
    "preauthorized_limit": {
      "amount": 50000,
      "currency": "RUB"
    },
    "log_available_to_principal": true,
    "tamper_evident_log": true
  },
  "constitution": {
    "version": "0.1",
    "level": "K2",
    "declaration": "https://example.ru/.well-known/agent-constitution.json"
  }
}
```

## Предъявление и проверка

По статье 17 Конституции агента:

1. Агент сообщает адрес паспорта, например в заголовке `Agent-Passport`.
2. Контрагент загружает паспорт по HTTPS. Домен паспорта совпадает с `operator.site`, статус `active`, срок не истёк.
3. Нет паспорта или он отозван — участник, присоединившийся к Конституции, сделку не заключает.

Автоматически это делает [проверка](https://xn----7sbbaom0ddhbmjqf.xn--p1ai/proverka/) и [API](https://xn----7sbbaom0ddhbmjqf.xn--p1ai/dlya-razrabotchikov/).

## Подпись

В версии 0.1 ключи `keys[]` (JWK, Ed25519) и подпись `signatures[]` (JWS, как у карточки агента A2A) необязательны. С версии 1.0 подпись обязательна для уровня К3.

Подписывается каноническая форма паспорта без поля `signatures` (JSON Canonicalization Scheme, RFC 8785). В заголовке подписи — `{"alg": "EdDSA", "kid": "…"}`.

[Как подписать паспорт](https://xn----7sbbaom0ddhbmjqf.xn--p1ai/vypusk/#podpis) — готовый скрипт и команды.

## Версии формата

Каждая версия остаётся доступной по постоянной ссылке и не меняется. Схему меняют только вместе с номером версии.

- [0.1](https://xn----7sbbaom0ddhbmjqf.xn--p1ai/format/v0.1/) — 15.10.2026, первая публикация для обсуждения (впервые — в разделе «Паспорт» на сайте Конституции агента).
- 1.0 — февраль 2027, вместе с Конституцией агента 1.0: подпись обязательна для К3.

Предложения к формату принимаются до 15.12.2026: [форма поправок на сайте Конституции](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/obsuzhdenie/) (раздел «Паспорт ИИ-агента») или [info@a2aprotocol.ru](mailto:info@a2aprotocol.ru).

## Термин

Каноническое определение термина «паспорт ИИ-агента» — в словаре Агентономики: [agentonomika.ru/terminy/pasport-ii-agenta](https://agentonomika.ru/terminy/pasport-ii-agenta/). Связанные термины: [мандат агента](https://agentonomika.ru/terminy/mandat-agenta/), [цепочка доверия агентов](https://agentonomika.ru/terminy/cepochka-doveriya-agentov/).

## Частые вопросы

### Это государственный документ?

Нет. Это открытый формат: паспорт публикует сам оператор агента на своём домене. Реестр на этом сайте подтверждает только соответствие формату и подпись на дату проверки, а не качество агента.

### Где должен лежать паспорт?

По адресу /.well-known/agent-passport.json на сайте оператора, который указан в поле operator.site. Так любой может проверить, что паспорт выпустил именно этот оператор.

### Что если у компании несколько агентов?

Положите в файл объект {"passports": [...]} — список паспортов. У каждого свой passport\_id с #фрагментом, например …/agent-passport.json#zakupki. Агент предъявляет адрес вместе с фрагментом.

### Зачем подпись, если файл и так на моём домене?

Без подписи подлинность держится на домене и HTTPS — это уровень К2. Подпись Ed25519 позволяет проверить паспорт, даже если его переслали отдельно от сайта, и сразу показывает подмену. Это уровень К3; с версии 1.0 подпись для К3 обязательна.

### Как отозвать паспорт?

Поставьте status: "revoked" и revoked\_at с датой отзыва. При перепроверке реестр сам переведёт запись в статус «отозван» и оставит её в истории.

### Чем паспорт отличается от карточки агента A2A?

Карточка A2A описывает, что агент умеет и как к нему обратиться. Паспорт отвечает, кто за агентом стоит, в каких пределах он действует и как его остановить. Паспорт ссылается на карточку полем agent.a2a\_agent\_card.

**0.1**

Не государственный документ. Паспорт публикует сам оператор, реестр подтверждает только соответствие формату и подпись на дату проверки.

[О проекте](https://xn----7sbbaom0ddhbmjqf.xn--p1ai/o-proekte/)

[**Конституция агента**правила и уровни К1–К4](https://xn----8sbalkoao1agd1bnbgj5cxk.xn--p1ai/)
[**Сканер готовности**проверить сайт целиком](https://agentreadyscan.ru/check/?url=xn----7sbbaom0ddhbmjqf.xn--p1ai)
[**Agent Firewall**кого сайт пускает к себе](https://agentfirewall.ru/)
[**Агентономика**термин «паспорт ИИ-агента»](https://agentonomika.ru/terminy/pasport-ii-agenta/)

---
Паспорт ИИ-агента — открытый формат, лицензия CC BY 4.0. Оператор: ООО «САРМАТЕХ», ИНН 4725011864, ОГРН 1214700012890. Контакты: info@a2aprotocol.ru, +7 921 782-00-00.
