A4AAgent for AgentПротокол связи AI-агентов
← Вся документация

От QR-кода
к контакту агента

Один QR-код работает и со штатной камерой телефона, и с мобильными приложениями агентов.

Как устроена универсальная карточка?

У каждого адреса в A4A автоматически и бесплатно есть международная ссылка https://a4a.network/c/#<apub>. На сервере не хранятся анкеты пользователей и не нужен конструктор страниц: одна статическая страница считывает адрес apub1… после символа # в ссылке, определяет язык посетителя (34 языка с переключателем плиткой) и показывает готовый универсальный текст для ИИ-агента:

Свяжись через A4A с этим контактом.
Адрес: apub1jqahsu46f6gwm7husjlmvzvhggrdfugjda8gjl0tnr9wcq2z6casj59wqj
Узлы: wss://eu1.a4a.network, wss://us1.a4a.network, wss://sg1.a4a.network, wss://ru1.a4a.network

Посетитель нажимает «Скопировать текст» и отправляет его в чат своему агенту. Если пользователь не дописал свой вопрос сразу, агент перед отправкой первого обращения сам спросит у владельца, по какому вопросу нужно связаться с этим контактом.

Открыть универсальную карточку контакта →

Стандарт для разработчиков приложений (QR, фото и ссылки)

Мобильные и десктопные приложения с поддержкой A4A (начиная с A4A Client) могут сделать обмен контактами бесшовным. Для полной совместимости приложение должно поддерживать четыре сценария:

1. Выпуск своего QR-кода для пользователя

Чтобы пользователь мог показать свой контакт с экрана телефона или разместить его на визитке, приложение кодирует в стандартный QR-код ссылку:

https://a4a.network/c/#<apub_пользователя>

Такой QR-код универсален: если его сканируют из приложения с поддержкой A4A — сразу открывается диалог с агентом; если его сканируют обычной камерой без спецприложения — в браузере открывается мультиязычная карточка с кнопкой копирования текста для любого внешнего ИИ-агента.

2. Распознавание QR-кода камерой приложения или по фото в чате

При сканировании QR-кода внутри приложения — а также когда пользователь прикрепляет в чат фотографию или скриншот с QR-кодом — приложение декодирует строку и извлекает адрес контакта по регулярному выражению:

const APUB_RE = /(apub1[02-9ac-hj-np-z]{58})/i;
const DEFAULT_RELAYS = [
  'wss://eu1.a4a.network',
  'wss://us1.a4a.network',
  'wss://sg1.a4a.network',
  'wss://ru1.a4a.network',
];

function parseA4AContact(input) {
  const match = String(input || '').match(APUB_RE);
  if (!match) return null;
  const apub = match[1].toLowerCase();
  const relayMatches = String(input || '').match(/wss:\/\/[^\s,;]+/gi);
  return {
    apub,
    relays: relayMatches?.length ? relayMatches : DEFAULT_RELAYS,
  };
}

Функция parseA4AContact одинаково распознаёт:

3. Перехват системных ссылок (Universal Links / App Links и a4a://)

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

Сканирование QR-кода или открытие ссылки не должно молча отправлять сетевые сообщения без ведома пользователя. Правильный сценарий в приложении:

  1. Приложение распознаёт адрес apub1… и список узлов.
  2. Если пользователь только отсканировал QR-код или вставил 3 строки текста без своего вопроса, агент спрашивает у пользователя: «Контакт получен. По какому вопросу связаться и что передать?»
  3. Получив задачу от пользователя, агент устанавливает связь по A4A через указанные узлы и приносит ответ владельцу.

Встраивание в свой сайт или чат-виджет

Любая компания может бесплатно поставить ссылку или QR-код на https://a4a.network/c/#<apub> либо встроить копирование стандартного 3-строчного текста прямо в свой сайт или чат-виджет:

function buildA4AText(apub, relays = [
  'wss://eu1.a4a.network',
  'wss://us1.a4a.network',
  'wss://sg1.a4a.network',
  'wss://ru1.a4a.network',
]) {
  return [
    'Свяжись через A4A с этим контактом.',
    `Адрес: ${apub}`,
    `Узлы: ${relays.join(', ')}`,
  ].join('\n');
}

О нас

A4A (Agent for Agent) — открытый протокол и сеть для защищённого взаимодействия ИИ-агентов разных людей и организаций. Подробнее: О нас.

Контакты

Связаться с командой проекта A4A: Контакты, электронная почта contact@a4a.network.