Что потребовалось, чтобы подготовить наши сайты для AI-агентов

Всё больше визитов на сайты совершают не люди, а AI-агенты: они читают страницы, чтобы ответить на чей-то вопрос, или пытаются воспользоваться продуктом от имени пользователя. На этой неделе мы прошлись по этому сайту и по сайтам наших продуктов — SawirPost, Sawirly, Rindraw, Math Daily и других, — чтобы агентам было проще их читать и использовать.

В качестве чек-листа мы взяли isitagentready.com. Он оценивает сайт по уровням. Ниже — что потребовалось на каждом шаге.

Копии всех страниц в формате Markdown

Чтобы найти несколько абзацев текста, агенту, который читает HTML, приходится продираться через навигацию, скрипты и подвалы страниц. Поэтому теперь у каждой страницы этого сайта есть Markdown-копия по адресу index.md, где остаётся только основное содержимое страницы. Копии собирает из HTML небольшой скрипт, так что они всегда совпадают с оригиналом.

Агенты получают их двумя способами: добавляют index.md к адресу страницы или запрашивают заголовок Accept: text/markdown. Небольшой Cloudflare Worker перед статическими файлами проверяет этот заголовок и отдаёт Markdown-копию, а в заголовке x-markdown-tokens указывает примерное число токенов. Браузеры по-прежнему получают обычную страницу.

curl -H "Accept: text/markdown" https://sawirstudio.com/shopify/

Заголовки Link

Теперь каждая HTML-страница сообщает, где лежит её Markdown-копия, в HTTP-заголовке Link с rel="alternate". Главная страница также указывает на llms.txt и карту сайта. Агент может найти всё одним запросом, не угадывая адреса.

llms.txt

llms.txt — это текстовый индекс сайта для языковых моделей: краткое описание в одну строку и список всех страниц с описаниями и ссылками на Markdown-копии. Наш файл строится из карты сайта тем же скриптом.

Content Signals

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

Content-Signal: ai-train=yes, search=yes, ai-input=yes

Эти три шага подняли все наши сайты до уровня 3.

Каталог API и Agent Skills

У SawirPost и Sawirly есть API, поэтому они пошли дальше. Каждый из них публикует каталог API по адресу /.well-known/api-catalog (RFC 9727): это небольшой JSON-документ со ссылками на описание OpenAPI и документацию. Агент, попавший на сайт, находит API, не читая ни одной страницы.

Кроме того, они публикуют Agent Skills — короткие инструкции для агентов о том, как выполнять типовые задачи с продуктом. Это подняло оба сайта до уровня 4.

Где мы остановились

Для уровня 5 нужно, чтобы агенты могли самостоятельно регистрироваться и проходить аутентификацию через процесс регистрации агентов по OAuth. Страница с описанием регистрации по email и паролю не засчитывается. Это полноценная функция, которую нужно разработать, и у неё есть серьёзные вопросы безопасности, поэтому мы не торопимся и всё тщательно обдумываем.

Стоило ли оно того?

Для статического сайта большая часть работы заняла один день: один скрипт, один небольшой Worker и строка в robots.txt. Для людей, которые заходят на сайт, ничего не изменилось. Мы думаем, что всё больше вопросов будут решать агенты, читающие такие сайты, как наш, а чистая Markdown-страница — самый простой способ, чтобы вас процитировали правильно.

То же самое мы настраиваем для клиентов в рамках услуги «Запуск и рост».

Читайте также: Как сделать WordPress-плагин доступным для AI-агентов с помощью Abilities API или Иконки приложений, которые можно бросать, на нашей главной странице.

Узнали из этой статьи что-то новое?

Оставьте, пожалуйста, свой адрес электронной почты, и я буду присылать вам похожие материалы, как только выйдет новый.

    Никакого спама. Отписаться можно в любой момент.