Зачем#
В сентябре 2026 года сервис персональных агентов Instinct запустил сеть доверенных лиц: агент одного человека напрямую договаривается с агентом другого о времени встречи и передаёт файлы. Работает это по собственному протоколу сервиса, поэтому договориться могут только два агента Instinct (источники).
Такие сети будут у каждого крупного сервиса, и между собой они не будут разговаривать. Расширение предлагает общий язык: агенты любых операторов, которые поддерживают A2A и это расширение, могут договариваться так же.
Пять правил#
- Только по согласию обоих Связь появляется, когда её подтвердили оба человека. Агент не может сам «подружиться» с чужим агентом.
- Доступ по областям Человек выдаёт конкретные области: занятость, встречи, файлы, прибытие. Не «всё или ничего».
- Минимум сведений Агент отвечает «занят с 14 до 16», а не «у врача». Названия, участники и места событий не передаются.
- Не пересылать дальше Что агент узнал от чужого агента, остаётся у его человека и не уходит третьим лицам и другим агентам.
- Отзыв сразу Любой из двух людей отзывает связь одной командой, без согласия второго. Агенты прекращают обмен немедленно.
Как появляется связь#
Персональные агенты не публикуются в каталогах: открытой записи «агент Анны» нет нигде. Поэтому агенты находят друг друга не по каталогу, а по приглашению, которое люди передают друг другу сами.
- Приглашение Агент Анны выдаёт ей одноразовый код приглашения: ссылку или QR-код. Анна передаёт его Борису лично или в мессенджере.
- Запрос Агент Бориса по коду находит адрес агента Анны и отправляет запрос связи
tp.link.requestс нужными областями. - Подтверждение Агент Анны показывает ей, кто просит и какие области. Задача ждёт ответа в состоянии
input-required. - Связь Анна соглашается, агент отвечает
tp.link.acceptс выданными областями и сроком. Оба агента хранят запись связи.
Код приглашения действует один раз и не дольше 72 часов. Адрес агента в нём может быть общим адресом оператора: человека за ним определяет непрозрачный идентификатор, а не имя или телефон.
Области доступа#
| Область | Что разрешает | Что не передаётся никогда |
|---|---|---|
availability | Узнать занятость на интервале: только «свободен» и «занят» по времени | Названия событий, участники, места |
meeting | Предложить встречу и получить ответ. В календарь встреча попадает только после подтверждения человеком | Календарь целиком |
files | Предложить файл: PDF, изображение, таблицу. Получатель видит, от кого и что за файл, до того как откроет его | Файлы без предложения и согласия получателя |
arrival | Сообщить, что человек прибыл в согласованное место | Координаты и маршрут |
По уровням полномочий профиля A2A-RU ответы о занятости — уровень 0, предложение встречи и файла — уровень 1, подтверждение встречи от имени человека — уровень 3 и требует его согласия.
Сообщения#
Расширение не вводит новых операций. Агенты обмениваются обычными сообщениями A2A, а смысл передаётся структурированной частью (data) с полем kind. Клиент включает расширение заголовком A2A-Extensions: https://a2aprotocol.ru/ext/trusted-persons/v0.1.
kind | Кто отправляет | Главные поля |
|---|---|---|
tp.link.request | Агент, получивший приглашение | invite, scopes[], displayName, purpose |
tp.link.accept / tp.link.decline | Агент пригласившего | linkId, scopes[], expires |
tp.link.revoke | Любая сторона | linkId |
tp.availability.query / .answer | Обе стороны | linkId, from, to, busy[] |
tp.meeting.propose / .confirm | Обе стороны | linkId, slot, place, status |
tp.file.offer | Обе стороны | linkId, name, mediaType, size, sha256 |
tp.arrival.notice | Обе стороны | linkId, placeRef, at |
Схема всех видов сообщений: /ext/trusted-persons/v0.1/schema.json.
Пример обмена#
Агенты Анны и Бориса уже связаны с областями availability и meeting. Анна просит своего агента найти час на следующей неделе.
- Анна → своему агенту «Найди час с Борисом на следующей неделе, лучше днём».
- Агент Анны → агенту Бориса Когда Борис занят 10–12 ноября?
{"kind":"tp.availability.query","linkId":"lk_7f3a","from":"2026-11-10T09:00:00+03:00","to":"2026-11-12T19:00:00+03:00"} - Агент Бориса → агенту Анны Только интервалы, без названий событий.
{"kind":"tp.availability.answer","linkId":"lk_7f3a","busy":[["2026-11-10T09:00:00+03:00","2026-11-10T13:00:00+03:00"],["2026-11-11T10:00:00+03:00","2026-11-11T14:30:00+03:00"]]} - Агент Анны → агенту Бориса Предлагает 11 ноября, 15:00–16:00.
{"kind":"tp.meeting.propose","linkId":"lk_7f3a","slot":["2026-11-11T15:00:00+03:00","2026-11-11T16:00:00+03:00"],"place":"по видеосвязи"} - Агент Бориса → Борису «Анна предлагает встречу 11 ноября в 15:00 по видеосвязи. Подтвердить?» — задача ждёт ответа (
input-required). Борис отвечает «да». - Агент Бориса → агенту Анны Встреча подтверждена человеком.
{"kind":"tp.meeting.confirm","linkId":"lk_7f3a","slot":["2026-11-11T15:00:00+03:00","2026-11-11T16:00:00+03:00"],"status":"accepted","confirmedByHuman":true} - Агент Анны → Анне «Борис подтвердил: 11 ноября, 15:00–16:00. Встреча в календаре».
Совместимость#
- Агент объявляет расширение в карточке:
capabilities.extensions[]с адресомhttps://a2aprotocol.ru/ext/trusted-persons/v0.1и"required": false. - Агенту с этим расширением рекомендуется объявить и профиль A2A-RU с
"principal": "person": так другая сторона видит оператора и уровень полномочий. - Клиент без расширения работает с агентом как с обычным агентом A2A, просто без связей доверенных лиц.
Открытые вопросы#
Черновик 0.1 честно не решает три вещи — их стоит обсудить до версии 1.0:
- Сквозное шифрование файлов между агентами разных операторов. Сейчас файл защищён только TLS при передаче и хранится у операторов.
- Перенос связей при смене оператора: как человеку забрать свои связи к новому агенту, не собирая согласия заново.
- Встречи на троих и больше. В 0.1 договариваются только два агента.
Предложения — на странице «Обсуждение» до 15.12.2026.
