{
  "title": "Протоколы агентского интернета",
  "reviewed": "2026-11-05",
  "scope": "16 протоколов, форматов и механизмов из практики Agent Lab. Каталог расширяется; это не перечень всех стандартов мира.",
  "protocols": [
    {
      "id": "mcp",
      "name": "MCP",
      "group": "Инструменты",
      "title": "MCP: как дать ИИ доступ к инструментам компании",
      "lead": "Допустим, руководитель спрашивает, какие товары есть в каталоге. Ответ можно попросить придумать по памяти. А можно дать ассистенту понятный инструмент, который прочитает актуальный источник. MCP описывает именно такое подключение.",
      "example": "На производстве первый полезный инструмент может быть совсем небольшим: показать опубликованную карточку товара. Сначала только чтение. Изменение цены или производственного задания — отдельное действие с отдельными правами.",
      "steps": [
        "Опишите конкретный инструмент: что принимает, что возвращает и какие данные разрешено читать.",
        "Ассистент получает список инструментов и выбирает подходящий для вопроса.",
        "Сервер проверяет аргументы и возвращает результат из разрешённого источника.",
        "Человек видит результат; изменение бизнеса требует отдельного полномочия."
      ],
      "technical": "Обмен строится на JSON-RPC. В ревизии 2026-07-28 каждый запрос несёт версию и возможности клиента; версия и метод также отражаются в HTTP-заголовках. Сайт использует официальный SDK v2 для новой модели, а прежние подключения обслуживает сохранённый legacy-транспорт.",
      "status": "Работает: новая и прежняя модели",
      "version": "MCP 2026-07-28 · SDK v2 + legacy",
      "local": "/agent-lab/",
      "limits": "Проверены обнаружение, чтение каталога инструментов и ресурсов, вызовы инструментов чтения, ошибки версии и прежние подключения. Это не сертификация всеми платформами. Старый /mcp/sse сохранён для существующих клиентов; новое подключение использует /mcp.",
      "next": "Следить за изменениями SDK и расширений, проверять взаимодействие MCP Apps с конкретными хостами и сохранять совместимость старых клиентов.",
      "sources": [
        {
          "title": "Спецификация MCP 2026-07-28",
          "url": "https://modelcontextprotocol.io/specification/2026-07-28"
        },
        {
          "title": "Версии и совместимость",
          "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/versioning"
        },
        {
          "title": "Официальный TypeScript SDK v2",
          "url": "https://github.com/modelcontextprotocol/typescript-sdk"
        }
      ],
      "reviewed": "2026-11-04",
      "published": "2026-11-04"
    },
    {
      "id": "a2a",
      "name": "A2A",
      "group": "Инструменты",
      "title": "A2A: когда задачу нужно передать другому агенту",
      "lead": "Один помощник хорошо разбирается в продажах, другой — в планировании производства. A2A нужен, чтобы они могли обменяться задачей и результатом, даже если внутри у них разные программы и модели.",
      "example": "Представьте: коммерческий помощник собирает запрос от сети пиццерий. Он передаёт отдельному агенту задачу оценить доступность выпуска. До подключения реальной MES это лишь архитектурный пример — обещать клиенту срок отгрузки рано.",
      "steps": [
        "Найдите Agent Card и прочитайте возможности исполнителя.",
        "Выберите поддерживаемый интерфейс и передайте понятную задачу.",
        "Получите состояние задачи, уточнение или результат.",
        "Проверьте ответ и передайте решение ответственному сотруднику."
      ],
      "technical": "Agent Card описывает интерфейсы и возможности. Протокол задаёт сообщения, задачи и результаты. Наличие карточки не означает, что исполнитель имеет доступ к складу или вправе заключить сделку.",
      "status": "Работает на публичных данных",
      "version": "Интерфейс A2A 1.0",
      "local": "/.well-known/agent-card.json",
      "limits": "Агент сайта выдаёт предварительные рекомендации по правилам и переданному описанию. Он не исследует предприятие самостоятельно и не обращается к внутренним системам.",
      "next": "Проверять изменения Agent Card и контрактов задач. Реальное взаимодействие с MES потребует авторизации, ограничения операций и испытаний отдельно от сайта.",
      "sources": [
        {
          "title": "Спецификация A2A",
          "url": "https://a2a-protocol.org/latest/specification/"
        }
      ],
      "reviewed": "2026-11-04",
      "published": "2026-11-04"
    },
    {
      "id": "mcp-apps",
      "name": "MCP Apps",
      "group": "Интерфейсы",
      "title": "MCP Apps: когда вместо длинного ответа нужна панель",
      "lead": "Иногда таблица с фильтрами удобнее десяти сообщений подряд. MCP Apps позволяет серверу передать интерфейс, который совместимый ассистент откроет прямо рядом с результатом инструмента.",
      "example": "Руководитель описывает проблему с возвратами. Помощник предлагает несколько пилотов, а панель показывает для каждого исходные данные, показатели и решения, которые должен согласовать человек.",
      "steps": [
        "Сервер публикует инструмент и связанную HTML-страницу ресурса.",
        "Клиент вызывает инструмент и получает данные.",
        "Совместимый хост открывает страницу в изолированном представлении.",
        "Пользователь меняет выбор и изучает данные в интерфейсе."
      ],
      "technical": "В тестовом хосте сайта можно открыть две собственные панели: выбор предварительных пилотов и каталог протоколов. Хост получает HTML-ресурс и результат инструмента через действующий MCP, принимает ui/initialize и передаёт ui/notifications/tool-result. Панель выполняется в изолированном iframe.",
      "status": "Три панели и тестовый хост",
      "version": "MCP Apps / AppBridge 2.0.4: проверка SDK",
      "local": "/agent-lab/production/",
      "limits": "Проверка в собственном минимальном хосте не означает подтверждённую работу во всех версиях ChatGPT, Claude или других клиентов. Хост не исполняет запросы iframe на произвольные инструменты и не предоставляет закрытые данные. Инициализация и передача данных проверены с официальным AppBridge 2.0.4 в эмуляции DOM. Интерфейсы Claude, ChatGPT и VS Code в этой среде не проверены.",
      "next": "Проверять панели отдельно в выбранных реальных ИИ-клиентах и фиксировать версии хостов. Собственный тестовый хост помогает воспроизводить инициализацию и передачу данных.",
      "sources": [
        {
          "title": "Обзор MCP Apps",
          "url": "https://apps.extensions.modelcontextprotocol.io/api/documents/overview.html"
        },
        {
          "title": "Официальный запуск",
          "url": "https://blog.modelcontextprotocol.io/posts/2026-01-26-mcp-apps/"
        }
      ],
      "reviewed": "2026-11-05",
      "published": "2026-11-04"
    },
    {
      "id": "webmcp",
      "name": "WebMCP",
      "group": "Инструменты",
      "title": "WebMCP: сайт объясняет браузерному агенту свои действия",
      "lead": "Человеку понятно, что делает кнопка «Найти». Браузерному агенту приходится угадывать это по странице. WebMCP позволяет описать действие прямо: вот название инструмента, вот аргументы, вот результат.",
      "example": "Посетитель просит найти материал про ИИ в продажах. Вместо последовательности случайных кликов агент получает инструмент поиска по публикациям. Каталог инструментов существует в контексте открытой вкладки.",
      "steps": [
        "Откройте страницу в браузере с поддержкой нужного API.",
        "Страница регистрирует доступные инструменты и их схемы.",
        "Агент вызывает инструмент с конкретными параметрами.",
        "Пользователь видит результат в той же вкладке."
      ],
      "technical": "Есть императивный JavaScript-подход и декларативное описание действий через формы. Это браузерная интеграция, а не замена удалённому MCP-серверу. Проверка наличия document.modelContext позволяет сохранить обычную работу сайта.",
      "status": "Эксперимент в совместимом браузере",
      "version": "Браузерный API; проверка наличия",
      "local": "/agent-lab/",
      "limits": "Без поддержки WebMCP формы сайта продолжают работать. Регистрация инструмента не доказывает, что любой ассистент сможет его вызвать.",
      "next": "Следить за изменениями браузерного API и проверять регистрацию и вызов на поддерживаемых сборках Chromium.",
      "sources": [
        {
          "title": "Документация Chrome",
          "url": "https://developer.chrome.com/docs/ai/webmcp"
        },
        {
          "title": "Early Preview",
          "url": "https://developer.chrome.com/blog/webmcp-epp"
        }
      ],
      "reviewed": "2026-11-04",
      "published": "2026-11-04"
    },
    {
      "id": "ard",
      "name": "ARD",
      "group": "Обнаружение",
      "title": "ARD: как агенту найти возможности компании",
      "lead": "У компании может быть хороший API, но как другой агент узнает о его существовании? ARD предлагает машиночитаемый каталог возможностей: документов, навыков, инструментов и агентов.",
      "example": "Представьте промышленный справочник. У каждого предприятия есть понятная карточка: что оно публикует, какие задачи поддерживает и где находится описание интерфейса. Каталог помогает начать знакомство, но не заменяет проверку доверия.",
      "steps": [
        "Соберите только публичные возможности и документы.",
        "Для каждого ресурса укажите устойчивый идентификатор, тип, URL и понятное описание.",
        "Опубликуйте каталог и ссылки на него в заголовках и HTML.",
        "Проверьте структуру и доступность всех адресов."
      ],
      "technical": "На сайте исходный каталог хранится в /.well-known/ard.json, а AI Catalog формируется из него. Обе публикации проходят локальную проверку согласованности. Сама спецификация не обещает включение в сторонний поисковый индекс.",
      "status": "Опубликовано и проверяется",
      "version": "ARD / AI Catalog specVersion 1.0",
      "local": "/.well-known/ai-catalog.json",
      "limits": "Обнаружение, подтверждение владельца и полномочия — разные задачи. Наличие каталога не является доказательством индексации или доверия к каждому действию агента.",
      "next": "Проверять изменения схемы, типы ресурсов и правила подтверждения владельца. После добавления материала обновлять единый источник каталога.",
      "sources": [
        {
          "title": "Анонс ARD",
          "url": "https://developers.googleblog.com/announcing-the-agentic-resource-discovery-specification/"
        }
      ],
      "reviewed": "2026-11-04",
      "published": "2026-11-04"
    },
    {
      "id": "agent-skills",
      "name": "Agent Skills",
      "group": "Обнаружение",
      "title": "Agent Skills: как передать помощнику рабочую методику",
      "lead": "Инструмент умеет прочитать таблицу. Но сам по себе он не объясняет, какие вопросы задать производству и как выбрать пилот. Навык упаковывает методику: порядок работы, необходимые данные и критерии результата.",
      "example": "Два помощника получают одну задачу — оценить возможности ИИ на заводе. Общий навык помогает обоим сначала запросить исходные показатели и ответственного за процесс, а не сразу советовать нейросеть.",
      "steps": [
        "Создайте отдельную папку с понятным названием навыка.",
        "В SKILL.md укажите name, description и сам порядок работы.",
        "Добавьте примеры входных данных, результата и проверок.",
        "Загрузите навык в совместимый инструмент и проверьте на реальной задаче."
      ],
      "technical": "Обязателен файл SKILL.md с YAML-метаданными и Markdown-инструкциями. Формат допускает дополнительные справочники и скрипты. Обнаружение и установка зависят от конкретного клиента.",
      "status": "Опубликованы три навыка",
      "version": "Формат SKILL.md",
      "local": "/.well-known/agent-skills/index.json",
      "limits": "Навык не выдаёт доступ к данным и не гарантирует качество решения. Инструкции нужно проверять, а факты о предприятии — подтверждать источниками.",
      "next": "Поддерживать методики диагностики и выбора пилота вместе с практическими примерами; проверять переносимость между клиентами.",
      "sources": [
        {
          "title": "Спецификация Agent Skills",
          "url": "https://agentskills.io/specification"
        }
      ],
      "reviewed": "2026-11-04",
      "published": "2026-11-04"
    },
    {
      "id": "agents-md",
      "name": "AGENTS.md",
      "group": "Обнаружение",
      "title": "AGENTS.md: рабочие правила для ИИ-разработчика",
      "lead": "Когда над сайтом работают несколько ИИ-инструментов, каждый должен понимать, как запускать проверки и что нельзя сломать. AGENTS.md хранит эти договорённости рядом с кодом.",
      "example": "Разработчик просит помощника поправить статью. В репозитории есть и сайт, и отдельный экспериментальный проект. Инструкция помогает сохранить границы: не менять соседний сервис и не включать платные вызовы ради текстовой правки.",
      "steps": [
        "Опишите структуру репозитория и границы проектов.",
        "Запишите точные команды установки и тестирования.",
        "Укажите правила работы с секретами, публикацией и внешними действиями.",
        "Обновляйте инструкцию, когда меняется архитектура."
      ],
      "technical": "Это открытый формат инструкций для coding agents. Он не является сетевым протоколом, каталогом рекламы или механизмом авторизации. Автоматические проверки дополняют текстовые правила.",
      "status": "Используется в репозитории",
      "version": "AGENTS.md",
      "local": "/AGENTS.md",
      "limits": "Файл не заменяет управление доступом и защиту CI. Конкретный инструмент должен уметь его читать и учитывать.",
      "next": "Проверять актуальность команд и ограничений после изменения сервисов; не хранить в инструкции секреты и внутренние данные клиентов.",
      "sources": [
        {
          "title": "Открытый формат AGENTS.md",
          "url": "https://agents.md/"
        }
      ],
      "reviewed": "2026-11-04",
      "published": "2026-11-04"
    },
    {
      "id": "nlweb",
      "name": "NLWeb",
      "group": "Инструменты",
      "title": "NLWeb: поиск по сайту обычными словами",
      "lead": "Посетителю часто проще спросить «с чего начать внедрение ИИ», чем разобраться в меню. NLWeb описывает способ обратиться к содержанию сайта на естественном языке и получить структурированный ответ.",
      "example": "Для сайта производителя вопрос может звучать так: «Какие товары подходят пиццерии?» Хороший ответ должен опираться на опубликованный каталог и вести к исходным карточкам, а не додумывать ассортимент.",
      "steps": [
        "Подготовьте достоверное содержание и структурированные описания.",
        "Определите, по каким данным разрешён поиск.",
        "Примите вопрос и верните ссылки или ответ с источниками.",
        "Покажите, когда подходящих материалов не найдено."
      ],
      "technical": "Текущий /nlweb/ask использует ограниченный детерминированный индекс публикаций и формат NLWeb 0.55. Это локальный поиск по сайту, без вызова языковой модели и без внешнего исследования.",
      "status": "Работает на публичном индексе",
      "version": "NLWeb 0.55 / ограниченный поиск",
      "local": "/agent-lab/",
      "limits": "Он не читает весь интернет и не подключается к 1С. Поддержка формата ответа не означает реализацию всех режимов эталонного NLWeb.",
      "next": "Добавлять новые статьи в индекс и проверять качество выдачи на типичных вопросах посетителей.",
      "sources": [
        {
          "title": "Эталонный проект NLWeb",
          "url": "https://github.com/nlweb-ai/NLWeb"
        }
      ],
      "reviewed": "2026-11-04",
      "published": "2026-11-04"
    },
    {
      "id": "mcp-registry",
      "name": "MCP Registry",
      "group": "Обнаружение",
      "title": "MCP Registry: где публиковать сведения о сервере",
      "lead": "Создать MCP-сервер и сделать так, чтобы его нашли, — две разные задачи. MCP Registry хранит сведения о серверах для клиентов и других каталогов.",
      "example": "У вас есть проверенный публичный инструмент поиска. Теперь нужно описать, кому принадлежит сервер, где он работает и как к нему подключиться. Реестр помогает распространить эти сведения.",
      "steps": [
        "Подготовьте описание сервера и используемого транспорта.",
        "Проверьте доступность и безопасность публичных инструментов.",
        "Подтвердите право публикации в выбранном пространстве имён.",
        "Опубликуйте запись и отдельно проверьте её наличие в реестре."
      ],
      "technical": "Сервер зарегистрирован под именем com.rinatsultan/agent-lab, версия 1.1.0. Для публикации использовано официальное подтверждение владения доменом через открытый ключ в /.well-known/mcp-registry-auth. Запись отдельно проверена через API реестра: статус active.",
      "status": "Опубликовано в MCP Registry",
      "version": "com.rinatsultan/agent-lab · 1.1.0",
      "local": "/agent-lab/",
      "limits": "Публикация в реестре подтверждает наличие записи, но не является сертификацией всех инструментов и не гарантирует автоматическое подключение во всех ассистентах.",
      "next": "Поддерживать описание и версию записи, проверять доступность endpoint и подтверждать обновления через API реестра.",
      "sources": [
        {
          "title": "Официальный реестр",
          "url": "https://registry.modelcontextprotocol.io/"
        },
        {
          "title": "Документация реестра",
          "url": "https://registry.modelcontextprotocol.io/docs"
        },
        {
          "title": "Опубликованная запись сервера",
          "url": "https://registry.modelcontextprotocol.io/v0.1/servers/com.rinatsultan%2Fagent-lab/versions/latest"
        }
      ],
      "reviewed": "2026-11-05",
      "published": "2026-11-04"
    },
    {
      "id": "a2ui",
      "name": "A2UI",
      "group": "Интерфейсы",
      "title": "A2UI: агент описывает интерфейс, приложение его собирает",
      "lead": "Ассистент может вернуть не только текст, но и описание экрана. A2UI позволяет сказать приложению: покажи заголовок, список вариантов и поля формы — с помощью заранее разрешённых компонентов.",
      "example": "На заводе это может быть экран сравнения планов выпуска. Агент передаёт данные и структуру, а приложение решает, какие компоненты допустимы. Непроверенный HTML от модели исполнять не нужно.",
      "steps": [
        "Определите разрешённый каталог компонентов.",
        "Получите описание поверхности и компонентов.",
        "Проверьте данные и соберите интерфейс своим рендерером.",
        "Действия пользователя передавайте через согласованный транспорт."
      ],
      "technical": "Текущий endpoint /a2ui/v0.9.1 сохранён. Экспериментальный /a2ui/v1.0 выдаёт версию 1.0 и безопасный набор Text/Column. Для новой ветки проверяются официальные JSON-схемы, закреплённые на конкретном коммите проекта. В лаборатории версию можно выбрать явно.",
      "status": "0.9.1 + отдельный эксперимент 1.0",
      "version": "Text/Column subset · Candidate",
      "local": "/agent-lab/",
      "limits": "Ветка 1.0 остаётся Candidate. Демонстрация не реализует RPC-действия, функции рендерера или весь Basic Catalog. Произвольный HTML и код из данных не исполняются.",
      "next": "Расширять поддержку компонентов только под конкретные задачи и проверять рендерер по тем же закреплённым схемам. Текущий стабильный режим не заменяется автоматически.",
      "sources": [
        {
          "title": "Документация A2UI",
          "url": "https://a2ui.org/"
        }
      ],
      "reviewed": "2026-11-05",
      "published": "2026-11-04"
    },
    {
      "id": "ag-ui",
      "name": "AG-UI",
      "group": "Интерфейсы",
      "title": "AG-UI: как интерфейсу следить за работой агента",
      "lead": "Когда задача занимает время, человеку важно видеть, что происходит: работа началась, появился результат, требуется уточнение. AG-UI задаёт язык таких событий между агентом и приложением.",
      "example": "Руководитель запускает разбор проблемы. Интерфейс показывает ход обработки и полученные рекомендации. Если речь пойдёт об изменении плана, подтверждение человека нужно спроектировать отдельно.",
      "steps": [
        "Приложение отправляет сообщения и параметры запуска.",
        "Сервер сообщает о начале выполнения.",
        "События передают текст, данные или состояние.",
        "Завершение и ошибка отображаются понятным образом."
      ],
      "technical": "Текущий /agui/v1 выдаёт минимальный SSE-поток RUN_STARTED, TEXT_MESSAGE_START/CONTENT/END, RUN_FINISHED. Маршрут v1 — локальное имя endpoint, а не заявление о версии всего стандарта.",
      "status": "Демонстрационный поток SSE",
      "version": "Минимальный набор событий AG-UI",
      "local": "/agent-lab/",
      "limits": "На сайте нет полного цикла долговременных задач и согласований. Показ потока не означает, что агент управляет реальным оборудованием.",
      "next": "Расширять события состояния и подтверждений только под конкретный рабочий сценарий и проверять их согласованность с клиентом.",
      "sources": [
        {
          "title": "Обзор AG-UI",
          "url": "https://docs.ag-ui.com/introduction"
        }
      ],
      "reviewed": "2026-11-04",
      "published": "2026-11-04"
    },
    {
      "id": "web-bot-auth",
      "name": "Web Bot Auth",
      "group": "Доверие",
      "title": "Web Bot Auth: кто именно пришёл на сайт",
      "lead": "Внешний агент представился закупщиком. Одной строки User-Agent недостаточно, чтобы ему поверить. Web Bot Auth использует криптографические подписи HTTP-запросов для подтверждения технической личности отправителя.",
      "example": "Это похоже на проверяемую подпись на конверте. Она помогает установить, кто отправил запрос. Но даже настоящая подпись не доказывает, что человек поручил этому отправителю купить товар на любую сумму.",
      "steps": [
        "Получите доверенный открытый ключ по согласованным правилам.",
        "Проверьте подпись и подписанные части запроса.",
        "Проверьте время и защиту от повторной отправки.",
        "Отдельно проверьте права на запрашиваемое действие."
      ],
      "technical": "Демонстрация проверяет настоящую Ed25519-подпись ограниченного профиля HTTP Message Signatures / Web Bot Auth: метод, домен, путь, Content-Digest и Signature-Agent. Ключ берётся только из доверенного списка демонстрации. Срок подписи ограничен 60 секундами; повтор отслеживается в памяти процесса.",
      "status": "Работает проверка учебных подписей",
      "version": "Ed25519 · ограниченный профиль",
      "local": "/agent-lab/security/",
      "limits": "Учебный ключ создаётся в памяти сервера и не даёт доступа к закрытым данным. Внешние URL ключей не загружаются. Боевой допуск сторонних агентов и подтверждение полномочий покупателя не включены. Это проверка ограниченного профиля, а не полная реализация всех вариантов Web Bot Auth.",
      "next": "Для реального допуска определить доверенных издателей ключей, отдельную авторизацию действий и устойчивое к перезапуску хранилище защиты от повтора.",
      "sources": [
        {
          "title": "Web Bot Auth в Cloudflare",
          "url": "https://developers.cloudflare.com/bots/reference/bot-verification/web-bot-auth/"
        }
      ],
      "reviewed": "2026-11-05",
      "published": "2026-11-04"
    },
    {
      "id": "ucp",
      "name": "UCP",
      "group": "Коммерция",
      "title": "UCP: как агент собирает покупку по правилам магазина",
      "lead": "Человеку легко сказать: «Организуй пикник на 20 детей и 40 родителей, уложись в бюджет». Дальше начинается работа: выбрать еду, проверить количество, доставку и итоговую цену. UCP описывает общий язык части такого процесса.",
      "example": "В нашем учебном примере дети хотят пиццу, родители — сэндвичи. Агент должен собрать достаточное количество порций и оставить место в бюджете для напитков и доставки. Цены пересчитывает сервер.",
      "steps": [
        "Магазин объявляет поддерживаемые возможности.",
        "Агент создаёт checkout с выбранными товарами.",
        "Покупатель уточняет состав и доставку, сервер пересчитывает итог.",
        "Человек подтверждает вариант; реальное исполнение требует подключённой торговой инфраструктуры."
      ],
      "technical": "В песочнице закреплена версия UCP 2026-08-25 и ограниченный checkout subset. Изолированные сессии живут 15 минут. Окончание сценария даёт временный тестовый идентификатор.",
      "status": "Рабочая учебная песочница",
      "version": "UCP 2026-08-25 / subset",
      "local": "/agent-lab/commerce/",
      "limits": "Никаких настоящих заказов, списаний, резервирования остатков и доставки. Полная совместимость платформ и прохождение onboarding не заявлены.",
      "next": "Сначала проверять схемы и согласование возможностей. Для реальной торговли потребуются каталог, цены, остатки, договорные условия и полномочия.",
      "sources": [
        {
          "title": "Официальная спецификация UCP",
          "url": "https://ucp.dev/"
        },
        {
          "title": "Исходный код UCP",
          "url": "https://github.com/Universal-Commerce-Protocol/ucp"
        }
      ],
      "reviewed": "2026-11-04",
      "published": "2026-11-04"
    },
    {
      "id": "acp",
      "name": "ACP",
      "group": "Коммерция",
      "title": "ACP: от выбранных товаров до подтверждения checkout",
      "lead": "В интернет-магазине человек видит корзину и итог. При покупке через ассистента те же сведения должны быть понятны программе. Agentic Commerce Protocol описывает взаимодействие покупателя, агента и продавца.",
      "example": "Возьмём тот же пикник: после выбора еды выясняется, что доставка дороже. Корзина должна обновиться, а человек — увидеть новую сумму до подтверждения. Одного текстового обещания «всё уложится» недостаточно.",
      "steps": [
        "Создайте checkout с идентификаторами товаров и количеством.",
        "Получите рассчитанные продавцом цены и доступные условия.",
        "Внесите изменения и снова покажите итог.",
        "Завершайте покупку только при наличии необходимых подтверждений и платёжной интеграции."
      ],
      "technical": "В учебной реализации закреплена спецификация ACP 2026-04-17. Данные и цены синтетические. Не путайте Agentic Commerce Protocol с другими проектами, которые тоже используют сокращение ACP.",
      "status": "Рабочая учебная песочница",
      "version": "ACP 2026-04-17 / subset",
      "local": "/agent-lab/commerce/",
      "limits": "Песочница не подключена к ChatGPT Checkout или платёжному провайдеру. Её успешный ответ не является финансовой операцией.",
      "next": "Проверять изменения checkout, модели ошибок, доставки и платёжных обработчиков по исходной спецификации; не включать реальные операции текстовой настройкой.",
      "sources": [
        {
          "title": "Agentic Commerce Protocol",
          "url": "https://www.agenticcommerce.dev/"
        },
        {
          "title": "Исходная спецификация ACP",
          "url": "https://github.com/agentic-commerce-protocol/agentic-commerce-protocol"
        }
      ],
      "reviewed": "2026-11-04",
      "published": "2026-11-04"
    },
    {
      "id": "ap2",
      "name": "AP2",
      "group": "Доверие",
      "title": "AP2: как проверить, что человек разрешил покупку",
      "lead": "Поручение «найди подходящую еду» ещё не означает «оплати любой заказ». AP2 посвящён проверяемым полномочиям агента в платёжном процессе.",
      "example": "Организатор пикника ограничил бюджет. Нужно сохранить связь между его разрешением, выбранной корзиной и платёжным действием. При изменении условий может понадобиться новое подтверждение.",
      "steps": [
        "Определите участников сделки и доверенные способы подтверждения.",
        "Зафиксируйте разрешённую покупку и ограничения.",
        "Свяжите подтверждение checkout с платёжным поручением.",
        "Проверьте доказательства перед исполнением и сохраните их для разбора спорных ситуаций."
      ],
      "technical": "В официальной спецификации используются mandates и модель авторизации. Версия опубликованного документа — v0.2. AP2 дополняет торговый сценарий, но не заменяет каталог товаров и расчёт корзины.",
      "status": "Изучаем; не активировано",
      "version": "AP2 v0.2 / документация",
      "local": "/blog/protocols/ap2/",
      "limits": "На сайте нет выдачи и проверки реальных платёжных полномочий AP2. Галочка в учебной форме не является криптографическим mandate.",
      "next": "Определить конкретный коммерческий сценарий, участников доверия и доступную инфраструктуру до реализации проверки полномочий.",
      "sources": [
        {
          "title": "Спецификация AP2",
          "url": "https://ap2-protocol.org/ap2/specification/"
        },
        {
          "title": "Авторизация агентов",
          "url": "https://ap2-protocol.org/ap2/agent_authorization/"
        }
      ],
      "reviewed": "2026-11-04",
      "published": "2026-11-04"
    },
    {
      "id": "x402",
      "name": "x402",
      "group": "Коммерция",
      "title": "x402: когда оплачивается отдельный запрос к API",
      "lead": "Есть другой сценарий: агенту нужен один платный ответ сервиса. x402 позволяет передать условия оплаты через HTTP и повторить запрос после выполнения платёжных требований.",
      "example": "Например, внешний сервис продаёт отдельный аналитический расчёт. Прежде чем агент заплатит, нужно определить допустимый бюджет, условия услуги и способ подтверждения оплаты. В нашем сайте такого платного API нет.",
      "steps": [
        "Клиент запрашивает защищённый ресурс.",
        "Сервер возвращает HTTP 402 и условия оплаты.",
        "Клиент выполняет согласованный платёжный сценарий.",
        "Сервер проверяет подтверждение и решает, выдавать ли ресурс."
      ],
      "technical": "HTTP 402 сам по себе — только код ответа. Совместимость требует конкретной версии x402, схемы расчётов и проверки платежа. Нельзя считать любой платный API реализацией x402.",
      "status": "Изучаем; не активировано",
      "version": "Платёжная интеграция отсутствует",
      "local": "/blog/protocols/x402/",
      "limits": "Сайт не использует кошельки, платёжные подписания или расчёты за запросы. Платёжные ограничения и доступность зависят от выбранной инфраструктуры.",
      "next": "Наблюдать за развитием спецификации и оценивать необходимость платного API только после появления подходящего продукта.",
      "sources": [
        {
          "title": "Официальный проект x402",
          "url": "https://x402.org/"
        },
        {
          "title": "Документация x402",
          "url": "https://docs.x402.org/"
        }
      ],
      "reviewed": "2026-11-04",
      "published": "2026-11-04"
    }
  ],
  "updates": [
    {
      "id": "production-20261105",
      "date": "2026-11-05",
      "protocol": "mcp-apps",
      "title": "Учебный план выпуска и независимая проверка SDK",
      "text": "Третья MCP App сводит вымышленные заказы, партии, сроки, сырьё и время смены. Три панели прошли инициализацию и передачу данных с официальным AppBridge 2.0.4 в эмуляции DOM. Тест интерфейса в стороннем приложении ещё не подтверждён.",
      "source": "https://github.com/modelcontextprotocol/ext-apps/tree/19256f52cad5517ba8272581ed2e11d6a81273d5/examples/basic-host"
    },
    {
      "id": "registry-20261105",
      "date": "2026-11-05",
      "title": "Сервер опубликован в официальном MCP Registry",
      "text": "Запись com.rinatsultan/agent-lab, версия 1.1.0: публикация через подтверждение домена и отдельная проверка статуса active в API реестра.",
      "protocol": "mcp-registry",
      "source": "https://registry.modelcontextprotocol.io/v0.1/servers/com.rinatsultan%2Fagent-lab/versions/latest"
    },
    {
      "id": "signatures-20261105",
      "date": "2026-11-05",
      "title": "Добавили проверку настоящей подписи, изменения данных и повтора",
      "text": "Учебный профиль Ed25519 проверяет подписанные части запроса, срок и повторную отправку. Права доступа и платёжные полномочия не выдаются.",
      "protocol": "web-bot-auth"
    },
    {
      "id": "a2ui-candidate-20261105",
      "date": "2026-11-05",
      "title": "A2UI 1.0 Candidate можно попробовать отдельно от 0.9.1",
      "text": "Добавлен opt-in endpoint и выбор версии в лаборатории. Текстовые компоненты и модель данных проверяются по закреплённым официальным схемам. RPC и полный каталог компонентов не заявлены.",
      "protocol": "a2ui"
    },
    {
      "id": "apps-host-20261105",
      "date": "2026-11-05",
      "title": "Добавили тестовый хост двух собственных MCP Apps",
      "text": "Хост получает ресурс и данные через MCP, показывает панель в изолированном iframe и ведёт журнал инициализации. Проверка ограничена этим хостом сайта.",
      "protocol": "mcp-apps"
    },
    {
      "date": "2026-11-04",
      "title": "Обновили MCP до модели 2026-07-28 и сохранили прежние подключения",
      "text": "Новые запросы обслуживаются официальным SDK v2.4.0 с Node-адаптером 2.1.2. Старые HTTP/JSON и SSE-клиенты сохраняют прежний транспорт. Проверены обнаружение, чтение инструментов и ресурсов, MCP App и отклонение некорректных запросов.",
      "protocol": "mcp",
      "id": "review-1"
    },
    {
      "date": "2026-11-04",
      "title": "A2UI: рабочую демонстрацию и Candidate отмечаем отдельно",
      "text": "Демонстрация сайта остаётся на v0.9.1. Документация проекта содержит v1.0 Candidate; миграцию не объявляем завершённой.",
      "protocol": "a2ui",
      "id": "review-2"
    },
    {
      "date": "2026-11-04",
      "title": "Обновили описание торговли: ACP/UCP уже можно попробовать",
      "text": "Старая документация исправлена: есть учебный checkout и корзина для пикника. Платежи и реальные заказы не активированы.",
      "protocol": "ucp",
      "id": "review-3"
    },
    {
      "date": "2026-11-04",
      "title": "Каталог стал доступен людям и MCP-клиентам",
      "text": "Опубликованы 16 отдельных разборов, JSON-каталог, RSS и MCP App для просмотра статусов. Дата проверки относится к редакционной сверке, а не к автоматическому мониторингу.",
      "protocol": "mcp-apps",
      "id": "review-4"
    }
  ]
}
