Busymate AI

Открытый стандарт

Busymate AI Агент готов v1

Может ли ИИ найти вас, понять вас, доверять вам и выполнять полезную работу с вами? Это главный вопрос. Этот стандарт отвечает на него одним числом и показывает квитанцию за каждый пункт.

Версия 1.0 — шесть разделов, десять требований, сто баллов.

01Архитектура

Пять слоёв и одна карточка, которая их объединяет

Агент встречает веб-сайт слоями, каждый отвечает на свой вопрос. agents.json — это единственная карточка наверху, которая указывает на все их, так что ничего не нужно угадывать.

Ваш веб-сайт1Контент2Обнаружение3Семантика4Действия5Удалённые возможностиagents.json
  • Контент

    Сама страница — написана один раз, доставляется как HTML читателю и как Markdown машине.

  • Обнаружение

    Указатели, которые показывают, с чего начать: sitemap, llms.txt, заголовки, указывающие на оба.

  • Семантика

    Значение, привязанное к фактам — JSON-LD на странице, frontmatter в Markdown.

  • Действия

    Что можно сделать здесь и сейчас в браузере, который уже открыт: инструменты страницы WebMCP.

  • Удалённые возможности

    Что сервис может выполнить по запросу отовсюду: MCP-точка доступа за OAuth.

  • agents.json

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

02Оценка

Шесть разделов делят сто баллов

Каждый слой оценивается как раздел, который узнаёт читатель. Внутри раздела требование занимает большую часть веса, а вспомогательная диагностика — остальное.

УровеньРазделНа что это проверяетБаллы
ОбнаружениеОбнаружениеМожет ли ИИ-агент найти ваш контент?15
СемантикаПониманиеПравильно ли напарник понимает вашу работу?15
КонтентЧтениеМожет ли агент эффективно использовать ваш контент?20
ДействияДействиеМожет ли агент выполнять действия на вашем сайте?20
Удалённые возможностиПодключениеМогут ли внешние агенты вызывать ваши системы?20
БезопасностьДовериеМожет ли агент пройти аутентификацию, подтвердить действия и связаться с человеком?10
Итого100

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

Проверка, которая вас не касается, исключается из знаменателя вместо того, чтобы вас штрафовать — обнаружение входа не требуется для сервиса, где все инструменты уже открыты для всех.

8 из 35 проверок — это соглашения, на которые никто ещё не согласился. Они ничего не стоят в обе стороны: сообщаются при обнаружении, никогда не вычитаются при отсутствии.

03Требования

Десять пунктов для сайта

Десять пунктов решают, готов ли сайт. Всё остальное, что сообщает сканирование, — это диагностика: полезная, обоснованная и никогда не критерий готовности.

Контент

R1
Важное содержимое присутствует в исходном HTML.
R2
Сайт может предоставлять представление своего содержимого в формате Markdown.

Обнаружение

R3
Сайт публикует карту сайта.
R4
Сайт публикует llms.txt.
R5
Сайт публикует манифест возможностей, доступный для машинного чтения.

Семантика

R6
Страницы указывают свой язык и канонический URL.
R7
Сайт публикует структурированные метаданные о бизнесе или продукте.

Действия

R8
Веб-действия объявляются, когда страница их предоставляет.
R9
Инструменты бэкенд-агента или API объявляются, когда сервис их предоставляет.

Безопасность

R10
Аутентификация, авторизация и передача человеку явны.

Пункт девять принимает любой честный ответ — живую конечную точку MCP, документ OpenAPI, схему GraphQL или интерфейс, указанный в карточке возможностей. Иметь один из них — вот что считается, а не какой именно.

Последний пункт доказывается дважды: человек, которому агент может передать посетителя, и явная позиция о том, кто может делать что.

04Один адрес

Одна ссылка в той форме, в которой её читает вызывающая сторона

Читатель открывает страницу и видит страницу. Машина запрашивает простой текст одним заголовком и получает простой текст. Ничего не разветвляется на второй сайт.

  • Попросите — и вернётся Markdown

    Запрос с заголовком Accept: text/markdown получает ответ 200 с Content-Type: text/markdown; charset=utf-8. Все остальные запросы получают HTML без изменений.

  • Vary: Accept, каждый раз

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

  • Заголовок, который путешествует вместе с ним

    Markdown начинается с канонического адреса, даты последнего изменения и языка, на котором он написан — всё это известно до прочтения основного содержимого.

  • Заголовки Link, которые указывают

    Один заголовок описывает сайт через llms.txt, один предлагает agents.json как альтернативу, один предлагает Markdown-альтернативу самой страницы; заголовок HTML повторяет последний. Вместе они отделяют файл, который просто существует, от сайта, который намеренно создан для чтения.

Согласованиеhttp
GET /pricing HTTP/1.1
Host: yourwebsite.com
Accept: text/markdown

HTTP/1.1 200 OK
Content-Type: text/markdown; charset=utf-8
Vary: Accept
Link: </llms.txt>; rel="describedby"; type="text/plain"
Link: </agents.json>; rel="alternate"; type="application/json"
Link: </pricing/md>; rel="alternate"; type="text/markdown"

---
title: Pricing
description: What each plan includes and what it costs.
canonical: https://yourwebsite.com/pricing
updated: 2026-09-15
language: en
---

# Pricing

Здесь нет AI URL-адресов. Суффикс /md может скрыться позади страницы как тихий fallback для клиента, который не может согласовать, но он никогда не рекламируется и никогда не является каноническим — то, что человек делит, это то, что извлекает агент.

05Доказательства

Каждый вердикт несёт с собой свой чек

Оценка без ничего позади неё — это мнение. Каждая проверка ведёт три строки: вызов, который она сделала, ответ, который ожидает этот документ, и ответ, который она действительно получила.

Проверка содержимогоyaml
check:     markdown_representation
request:   GET https://yourwebsite.com/pricing
           Accept: text/markdown
expected:  text/markdown with Vary: Accept
received:  200 text/html; charset=utf-8 — no Vary header
status:    fail
weight:    5
earned:    0

Записываются только заголовки, которые меняют ответ, и учётные данные никогда не записываются.

Проверка соединенияyaml
check:     mcp_transport
endpoint:  https://yourwebsite.com/mcp
transport: streamable-http
protocol:
  offered:    2025-06-18
  returned:   2025-03-26
  negotiated: 2025-03-26
initialize: true
toolsList:  true
auth:
  mode: oauth
  oauthMetadata: true
  metadataUrl: https://yourwebsite.com/.well-known/oauth-authorization-server
  pkce: [S256]
  dynamicRegistration: true   # optional either way
  requirementsDocumentedAt: the capability manifest
tools:
  listedWithoutToken: 7       # listed, not usable
  authenticated: null         # we never sign in to your server
  withReadOnlyHint: 7
executionTested: false        # so the execution check stays UNVERIFIED
status:    pass

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

Подтверждённый подсчёт читается как неизвестный, а не нулевой, когда никто не вошёл в систему для его подсчёта.

06Вердикты

Четыре возможных результата проверки

Каждый из них — отдельное сообщение владельцу сайта, поэтому ни один не превращается в другой.

  • ПРОЙДЕНО

    Пришло именно то, что требовал пункт.

  • ЧАСТИЧНО

    Часть уже готова; в отчёте указано, чего не хватает.

  • НЕОБЯЗАТЕЛЬНО

    Неустоявшееся соглашение, отмечено как найденное или отсутствующее и не дает ни одного балла ни в ту, ни в другую сторону.

  • НЕ ПРОЙДЕНО

    Запросили — и ничего не получили.

Не удалось проверить — не пройдено.

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

07Что изменилось

Версия 1.2

Внешний аудит одного из наших живых отчетов выявил места, где оценка была более уверенной, чем того требовали доказательства, и места, где система снижала оценку сайта за правильные действия. Каждый найденный вопрос ниже — это правило, которое изменилось, поэтому отчет, который вы читали до этой версии, может выглядеть иначе — и так и должно быть.

Различие, которое включает v1.2

Нахождение возможности не означает разрешение её использовать

Каталог инструментов, который отвечает без токена, говорит вам, что инструменты УКАЗАНЫ. Это не говорит, что любой из них будет работать для вас сегодня. Версия 1 свела их в один вердикт и выставила полные баллы за первый. Теперь это четыре отдельных вывода:

  • Обнаружение — конечная точка отвечает, согласует версию протокола и перечисляет свои инструменты.
  • Документированный доступ — служба указывает, для каких возможностей требуется токен и для каких нет.
  • Обнаружение входа — метаданные OAuth разрешаются и объявляют PKCE, где клиент должен это подтвердить.
  • Проверенное выполнение — аутентифицированный вызов действительно работает.

Только первые три можно измерить извне. Четвертый остается непроверенным в каждом отчете этого сканера: он не хранит учетные данные для вашей службы и никогда не вызывает инструмент незнакомца. Эти пункты отображаются отдельно, никогда не считаются успехом и никогда не возлагаются на вас.

  • Один результат, три формата

    Страница, Markdown и JSON теперь возвращают один и тот же объект результата — одно сканирование, одни статусы, одни итоги. Раньше они могли различаться.

  • Нет идеального показателя подключения

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

  • Зондирование с учетом версии

    Отчет записывает, что было предложено, как ответил ваш сервер и исходное рукопожатие. Функция, введенная в более позднюю версию, никогда не учитывается против сеанса, закрепленного за более ранней версией.

  • Подсказки — это не поведение

    Сколько инструментов объявляют, что подсказка только для чтения указывается на отдельной строке и не дает никаких баллов. Необходимо проверить рабочий процесс, действительно ли пользователя спрашивают перед важным действием, и отметить это.

  • Три типа краулера

    Обучение модели, поиск на основе ИИ и цитирование, а также страница, которую человек попросил открыть в ассистенте — три решения. Только последние два относятся к обнаружению. Отказ от обучения ничего не стоит.

  • По умолчанию — это политика

    Отсутствие записи permissions-policy для инструментов страницы означает, что применяется список допусков по умолчанию из черновика — ваш собственный источник, никто другой. Это проходит проверку. Явный список допусков — это усиление поверх него.

  • Правильные поля для каждого типа

    Дата последнего изменения запрашивается у типов контента, которые её определяют, никогда у узла, который говорит, кто вы есть. Идентичность и свежесть оцениваются отдельно.

  • Результаты указывают свой охват

    Результат, полученный с одной страницы, об этом говорит, и маршруты, которые сканирование действительно прочитало, путешествуют с отчётом. Ничто, измеренное на домашней странице, не записывается так, как если бы оно описывало каждый экран.

  • Двойник должен совпадать сам с собой

    Манифест возможностей, опубликованный по известному адресу и по корневому пути, теперь проверяется на совпадение содержимого в обоих местах — а не просто на наличие одной копии.

  • Карта сайта должна быть реальным документом

    Карта сайта теперь проверяется на соответствие реальному документу urlset или sitemapindex, ссылки которого указывают на ваш собственный адрес, а не просто на ответ с кодом 200.

  • Контакту для передачи не нужен обход сайта

    Ссылка mailto, страница контактов, структурированные контактные данные или указанная контактная информация в llms.txt теперь считаются способом связи с человеком — ничему из этого не требуется предварительное сканирование.

Отчет — это оценка по этому стандарту, версия 1.2 — диагностика, на основе которой вы можете принять меры, но не сертификат и не знак соответствия. Правила опубликованы здесь, чтобы вы могли с ними не согласиться.

Посмотрите, где стоит ваш собственный сайт

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