---
title: "Сайт, готовый к ИИ-агентам: что мы сделали и что важно — Dardo"
description: "Что нужно сайту для ИИ-агентов по опыту dardo.studio: markdown-копии, llms.txt, правила для краулеров, MCP-сервер, карточка A2A и что пропустить."
url: "https://dardo.studio/ru/blog/agent-ready-website/"
language: "ru"
translations: {"en":"https://dardo.studio/en/blog/agent-ready-website/","es":"https://dardo.studio/es/blog/sitio-web-preparado-para-agentes-de-ia/","fr":"https://dardo.studio/fr/blog/site-web-pret-pour-agents-ia/","de":"https://dardo.studio/de/blog/agentenfaehige-website/","it":"https://dardo.studio/it/blog/sito-web-pronto-per-agenti-ai/","pt":"https://dardo.studio/pt/blog/site-pronto-para-agentes/","nl":"https://dardo.studio/nl/blog/agent-ready-website/","sv":"https://dardo.studio/sv/blogg/agentredo-webbplats/","pl":"https://dardo.studio/pl/blog/strona-gotowa-na-agentow-ai/","uk":"https://dardo.studio/uk/blog/agent-ready-website/","ar":"https://dardo.studio/ar/blog/agent-ready-website/","hi":"https://dardo.studio/hi/blog/agent-ready-website/","th":"https://dardo.studio/th/blog/agent-ready-website/","ja":"https://dardo.studio/ja/blog/agent-ready-website/","ko":"https://dardo.studio/ko/blog/agent-ready-website/","zh-Hans":"https://dardo.studio/zh-Hans/blog/agent-ready-website/","zh-Hant":"https://dardo.studio/zh-Hant/blog/agent-ready-website/"}
updated: "2026-10-10T08:11:29.929Z"
---

[Блог](https://dardo.studio/ru/blog/)

# Что нужно сайту, готовому к работе с ИИ-агентами: заметки о создании dardo.studio

Мы сделали dardo.studio доступным для чтения и вызова ИИ-агентами, слой за слоем. Рассказываем, что делает каждый слой, кто читает его по документации сегодня и какие слои мы бы построили снова.

Автор: [Nicolás Cerón](https://dardo.studio/ru/studio/) ·10 октября 2026 г.

![Небольшой колёсный робот едет по малиновой направляющей линии через музейный зал ночью к освещённой скульптуре.](https://dardo.studio/_astro/01M4GYDFZJP0ZV0S7JSNMWYADG_ZoH0qp.webp)

## Короткий ответ

Сайт, готовый к работе с ИИ-агентами, делает три вещи. ИИ-агенты могут до него добраться. Они могут прочитать его, не продираясь через меню, баннеры и скрипты. А там, где это уместно, они могут вызывать несколько объявленных инструментов вместо того, чтобы гадать, какую кнопку нажать.

Все три возможности мы внедрили в dardo.studio в начале октября 2026 года. Ниже рассказываем, что мы запустили и в какой мере крупные ИИ-платформы документально подтверждают их использование; проверка на работающем сайте проведена 8 октября 2026 года.

Вывод получился скромнее, чем в большинстве чек-листов «готовности к ИИ». Больше всего значат самые старые слои: доступ для краулеров и чистый семантический HTML. Копии в markdown и llms.txt — недорогое удобство. MCP, A2A и WebMCP — настоящие протоколы с работающими клиентами, но ни в одной документации краулеров OpenAI, Anthropic, Perplexity и Google, на которую мы ссылаемся, не описано, чтобы их ассистенты сами находили инструменты сайта.

## Начнём с доступа: robots.txt и граница сети

В нашем [robots.txt](https://dardo.studio/robots.txt) одна и та же группа правил повторяется для агента по умолчанию (`*`) и для каждого названного нами поискового ИИ-краулера и пользовательского загрузчика:

```
User-agent: OAI-SearchBot
Allow: /
Disallow: /api/
Content-Signal: search=yes, ai-input=yes
```

Те же правила действуют для ChatGPT-User, PerplexityBot, Perplexity-User, Claude-SearchBot, Claude-User и Bingbot. Закрыт только `/api/`.

### Поисковые краулеры и краулеры для обучения — разные

Крупные компании теперь документируют отдельные токены для поиска и для обучения:

- **OpenAI.** OAI-SearchBot показывает сайты в поиске ChatGPT. Сайты, которые его блокируют, не попадают в ответы поиска ChatGPT, хотя могут оставаться в виде обычных навигационных ссылок. GPTBot собирает данные для обучения. ([краулеры OpenAI](https://developers.openai.com/api/docs/bots))
- **Anthropic.** Claude-SearchBot индексирует страницы для поиска, ClaudeBot собирает данные для обучения, а Claude-User загружает страницы, когда человек задаёт Claude вопрос. ([краулеры Anthropic](https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler))
- **Perplexity.** PerplexityBot показывает сайты и даёт на них ссылки в результатах Perplexity и не используется для обучения базовых моделей. ([краулеры Perplexity](https://docs.perplexity.ai/docs/resources/perplexity-crawlers))
- **Google.** Google-Extended — управляющий токен для обучения Gemini и для привязки ответов к источникам в других продуктах Google. На включение в Google Поиск и ранжирование он не влияет. ([общие краулеры Google](https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers))

Загрузчики, запускаемые пользователем, — отдельный случай. OpenAI сообщает, что robots.txt может не действовать для ChatGPT-User, потому что эти запросы инициирует человек. Perplexity-User и [загрузчики Google, запускаемые пользователем](https://developers.google.com/crawling/docs/crawlers-fetchers/google-user-triggered-fetchers), как правило, его игнорируют. Эти загрузчики действуют в реальном времени от лица одного человека; там, где блокировка работает, она в основном мешает ассистенту этого человека прочитать вашу страницу.

В нашем файле краулеры для обучения не названы, поэтому на них распространяется `*` и им всё разрешено. Это бизнес-решение, и вендоры описывают его как отдельный механизм управления: заблокировать GPTBot или ClaudeBot — не то же самое, что уйти из их поисковых индексов.

### Content Signals: одна строка, никаких обязательств

Строка `Content-Signal` взята из [Content Signals Policy](https://blog.cloudflare.com/content-signals-policy/) от Cloudflare, где названы три вида использования: `search`, `ai-input` (передача контента модели в момент ответа) и `ai-train`. Мы опускаем `ai-train`, что по этой политике не разрешает и не ограничивает такое использование. Cloudflare подчёркивает, что сигналы выражают предпочтения, ничего не блокируют и могут игнорироваться. Ни на одной из процитированных здесь страниц о краулерах они не упоминаются. Это стоит одной строки; пока ничего не ждите.

### Проверяйте границу сети, а не только файл

robots.txt заявляет политику, а что произойдёт на деле, решает ваш CDN. При проверке 2 октября Browser Integrity Check от Cloudflare отвечал кодом 403 стандартному HTTP-клиенту Python (`Python-urllib`) и `libwww-perl`, хотя robots.txt разрешал всё. Скрипты, написанные кодинг-агентами, часто используют стандартную библиотеку Python без изменений.

Мы добавили правило конфигурации Cloudflare, которое исключает запросы GET и HEAD к публичному контенту; `/api/` по-прежнему отвечает 403. Тот же аудит показал, что у наших файлов `.txt` не указана кодировка, из-за чего некоторые клиенты читали «Bogotá» как «BogotÃ¡». Исправление свелось к одному заголовку: `charset=utf-8`.

Проверяйте реальными запросами под каждым user agent. Так видно, что имя ничто не блокирует, но это не доказывает, что настоящий краулер заходил на сайт.

## Простой семантический HTML: слой, от которого зависят все агенты

В [руководстве Google по оптимизации для ИИ](https://developers.google.com/search/docs/fundamentals/ai-optimization-guide) описаны браузерные агенты, которые анализируют скриншоты, изучают DOM и интерпретируют дерево доступности. Владельцам сайтов там советуют обратиться к [рекомендациям web.dev для агентов](https://web.dev/articles/ai-agent-site-ux), которые в основном сводятся к [работе над доступностью](https://dardo.studio/ru/services/web-accessibility/): использовать `<button>` и `<a>` вместо стилизованных `<div>`, связывать каждую подпись с её полем и не допускать сдвига макета под скриншотом.

На dardo.studio на каждой странице один `<main>` и подписанные области `<nav>`. Переключатели меню и темы — настоящие кнопки, которые сообщают своё состояние через `aria-expanded` и `aria-pressed`, а закрытые меню помечены как `inert`. Каждое поле контактной формы находится внутри своего `<label>`, что даёт ему доступное имя. web.dev советует атрибут `for`; обёртка вокруг поля справляется с той же задачей.

Это уже сегодня помогает пользователям программ чтения с экрана, и этого достаточно.

## Чистая markdown-копия каждой страницы

Агенты платят за каждый прочитанный токен, а отрисованная страница несёт навигацию, баннер cookie, скрипты и декоративную графику. До этой работы запрос наших страниц с `Accept: text/markdown` возвращал всё это в виде HTML.

Теперь на этапе сборки рядом с каждой индексируемой страницей создаётся файл `index.md`. Он начинается с front matter (заголовок, описание, канонический URL, язык, версия на другом языке и дата обновления), а затем идёт содержимое страницы из `<main>` без скриптов, кнопок, декоративных изображений и оглавления внутри страницы. Ответы из FAQ остаются. Формы превращаются в список полей и вариантов выбора, так что агент может рассказать человеку, о чём спрашивает наша контактная форма, не взаимодействуя с ней.

Получить такую копию можно тремя способами:

- Отправьте `Accept: text/markdown` на обычный URL. Такие ответы содержат `Vary: Accept`, поэтому кэши хранят версии отдельно.
- Запросите файл: `/en/services/seo/index.md`.
- Добавьте `.md` к пути страницы (`/en/services/seo.md`). Для URL, оканчивающихся слэшем, [предложение llms.txt](https://llmstxt.org/) использует `index.md`, то есть форму выше.

Каждая HTML-страница также указывает на свою копию через `<link rel="alternate" type="text/markdown">`.

### Возвращаем поисковые системы к HTML

В руководстве Google отмечается, что он умеет сканировать и индексировать множество типов файлов, а не только HTML, и не относится к ним особо. Markdown-копия может конкурировать с собственной страницей, поэтому каждый markdown-ответ указывает HTML-страницу как каноническую:

```
$ curl -sI https://dardo.studio/en/services/seo/index.md
content-type: text/markdown; charset=utf-8
link: <https://dardo.studio/en/services/seo/>; rel="canonical", ...
```

Кто читает эти копии? Cloudflare создала [Markdown for Agents](https://developers.cloudflare.com/fundamentals/reference/markdown-for-agents/), чтобы на периферии преобразовывать HTML для запросов, предпочитающих markdown, а значит, агенты такое запрашивают. Какие именно клиенты отправляют этот заголовок, не уточняется, и проверенного списка у нас тоже нет. Если вы используете функцию Cloudflare, она добавляет `Content-Signal: ai-train=yes, search=yes, ai-input=yes`, если ваш origin не задаёт свой. Свои копии мы генерируем при сборке, чтобы они точно совпадали со страницей.

## llms.txt: полезный индекс, не влияющий на поиск

llms.txt — это [предложение Джереми Говарда](https://llmstxt.org/), впервые опубликованное в сентябре 2024 года и всё ещё открытое для обсуждения сообществом: markdown-файл по адресу `/llms.txt` с названием сайта, кратким описанием и списками ссылок, которые могут понадобиться агенту.

Наш файл, доступный по адресам [/llms.txt](https://dardo.studio/llms.txt) и [/es/llms.txt](https://dardo.studio/es/llms.txt), генерируется из тех же данных, что и страницы, поэтому расхождений быть не может. В нём изложены факты о студии (Богота, основана в 2026 году, команда из трёх человек, как формируется стоимость проектов, способы связи), перечислены услуги и работы и объяснено, как получить markdown-копии. В `llms-full.txt` собран полный текст страниц о студии, услугах, работах и контактах.

Одна строка называет компании со схожими названиями, которые к нам не относятся. Когда мы проверяли 2 октября, именно они возглавляли результаты поиска по запросу «dardo studio». Возможно, эта строка — самая полезная во всём файле.

Положение дел без прикрас:

- **Google** заявляет, что llms.txt не нужен для появления в Поиске и его AI-функциях, что Поиск его игнорирует и что наличие такого файла ни помогает, ни вредит.
- **OpenAI, Anthropic и Perplexity** не сообщают в документации к своим краулерам, что их боты читают llms.txt на чужих сайтах. На собственных сайтах документации OpenAI, Anthropic и Perplexity такой файл публикуют, для агентов, читающих их документацию.

Держать такой файл стоит, если он генерируется автоматически и точен. Он помогает кодинг-агентам и инструментам, которые его ищут. Но рычагом видимости он не является.

## Инструменты, которые могут вызывать агенты: MCP, A2A и каталог API

Мы опубликовали два инструмента только для чтения:

- `**list_services**` возвращает опубликованные услуги, их объём, результаты работ и URL-источники на английском или испанском, с фильтрацией по необязательному ключевому слову.
- `**get_project_brief**` возвращает вопросы, на которые стоит ответить перед обращением к нам, и локализованную ссылку для связи по этой услуге.

За несколькими точками входа стоит одна реализация:

| Точка входа   | Адрес на dardo.studio                                      | Стандарт и статус                                                                                                                                                                                                     |
| ------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| MCP-сервер    | /mcp, карточка по адресу /.well-known/mcp/server-card.json | [MCP](https://modelcontextprotocol.io/specification/2025-11-25/basic/transports) Streamable HTTP; карточка сервера — это [черновое предложение](https://modelcontextprotocol.io/community/working-groups/server-card) |
| A2A-агент     | /a2a, карточка по адресу /.well-known/agent-card.json      | [A2A 1.0](https://a2a-protocol.org/latest/specification/), JSON-RPC                                                                                                                                                   |
| JSON-эндпоинт | /agent/services.json, описан в OpenAPI                     | Обычный HTTP                                                                                                                                                                                                          |
| Каталог API   | /.well-known/api-catalog                                   | [RFC 9727](https://www.rfc-editor.org/rfc/rfc9727.html), IETF Standards Track                                                                                                                                         |

Каждый HTML- и markdown-ответ отправляет заголовок `Link`, указывающий на каталог, индекс навыков агентов и обе карточки, так что с любой страницы можно добраться до остального.

### Принципы проектирования, которые мы бы повторили

- **Только чтение и публичный доступ.** MCP-инструменты объявляют `readOnlyHint: true` и читают тот же опубликованный каталог, что и HTML, без базы данных за ними. `get_project_brief` ничего не отправляет, не бронирует и не рассчитывает стоимость; человек сам проверяет и отправляет.
- **Ограниченный ввод.** Тела запросов ограничены 8 КиБ, заголовки `Origin` из браузера проверяются (этого требует спецификация MCP), а у вызовов есть собственное ограничение частоты.
- **Без состояния.** A2A-агент отвечает сразу, не хранит задачи, не использует потоковую передачу и не загружает присланные ему файлы или URL.
- **Понятные условия.** В [/auth.md](https://dardo.studio/auth.md) сказано, что учётные данные не нужны и что чтение публичных данных не даёт права отправлять сообщения или совершать платежи.

Кое-что мы намеренно не стали делать. Сканеры готовности проверяют наличие протоколов для коммерции и OAuth discovery. Мы ничего не продаём через корзину и не защищаем никаких ресурсов, поэтому их публикация описывала бы несуществующие возможности.

Кто пользуется этими инструментами сегодня: MCP-клиенты, которые кто-то подключил к `/mcp`, и A2A-клиенты, которым передали нашу карточку. Для студии польза скромная: точный ответ на вопрос «чем занимается Dardo и что им отправить?». Для сайта с актуальными данными, о которых спрашивают, например с остатками, наличием или документацией по продуктам, довод сильнее. Агентам, которые записывают данные, нужны аутентификация и этапы проверки; это уже работа по [автоматизации с помощью ИИ](https://dardo.studio/ru/services/ai-automation/).

## WebMCP: те же инструменты внутри браузера

[WebMCP](https://webmachinelearning.github.io/webmcp/) позволяет странице регистрировать инструменты, которые может вызывать ИИ-агент в браузере. Это Draft Community Group Report группы W3C Web Machine Learning Community Group, и в нём прямо сказано, что это не стандарт W3C. По данным web.dev, он активно разрабатывается, может измениться, и его можно опробовать в Chrome через origin trial.

Наши страницы регистрируют те же два инструмента через `document.modelContext` (или `navigator.modelContext` в более старых превью). Без этого API браузер не запускает ничего лишнего. Раз инструменты уже были, на это ушло около 40 строк. Относитесь к этому как к эксперименту.

## Все уровни и стоит ли они усилий

| Уровень                                             | Что это                                                    | Кто читает сегодня                                                              | Стоит ли?                                                      |
| --------------------------------------------------- | ---------------------------------------------------------- | ------------------------------------------------------------------------------- | -------------------------------------------------------------- |
| Семантический HTML и подписанные формы              | Настоящие кнопки, ссылки, ориентиры страницы и подписи     | Браузеры, вспомогательные технологии и браузерные агенты                        | Да. Начните с него                                             |
| robots.txt для поисковых и пользовательских агентов | Правила для каждого краулера, разделяющие поиск и обучение | OpenAI, Anthropic, Perplexity и Google документируют свои токены                | Да. Затем проверьте на уровне CDN                              |
| Content Signals                                     | Настройки search, ai-input, ai-train в robots.txt          | Ни одна из проверенных нами ИИ-компаний не документирует их соблюдение          | Одна строка. Ничего не ждите                                   |
| Markdown-копии с каноническими заголовками          | Чистая текстовая версия каждой страницы                    | Агенты, запрашивающие markdown; списка таких агентов нет                        | Да, с каноническим заголовком                                  |
| llms.txt и llms-full.txt                            | Отобранный индекс и полный текст для агентов               | Google Search его игнорирует; в документации краулеров о его чтении не заявлено | Оставьте, если он генерируется. Видимость он не повышает       |
| MCP-сервер (только чтение)                          | Объявленные инструменты, которые могут вызывать агенты     | MCP-клиенты, которые подключает человек                                         | Только если есть данные или действия, ради которых стоит вызов |
| Карточка агента A2A                                 | Машиночитаемое описание агента                             | Клиенты A2A, настроенные на неё                                                 | Для большинства сайтов — гадание на будущее                    |
| Каталог API (RFC 9727)                              | Один стандартный список ваших публичных API                | Инструменты, которые его ищут                                                   | Недорого, если API уже есть                                    |
| WebMCP                                              | Инструменты, которые страница регистрирует в браузере      | Chrome, в рамках origin trial                                                   | Эксперимент                                                    |

## Что мы бы построили снова

По порядку: семантический HTML, проверенный доступ краулеров, markdown-копии с каноническими заголовками, сгенерированный llms.txt и инструменты, только когда есть что вызывать. Затем измеряйте. Серверные логи показывают, какие агенты запрашивают markdown-копии или обращаются к `/mcp`. Запрос — это не цитирование, и ничто из этого не гарантирует, что [ИИ-система упомянет вас](https://dardo.studio/ru/blog/appear-in-ai-answers/).

Готовность к агентам — часть нашей работы по [оптимизации для ИИ-поиска](https://dardo.studio/ru/services/ai-search-optimization/) наряду с контентом и измерениями, от которых зависит, цитируют ли вас ответы ИИ. Чтобы внедрить это на вашем сайте, [расскажите нам о проекте](https://dardo.studio/ru/contact/).

[Nicolás Cerón](https://dardo.studio/ru/studio/)

Nicolás Cerón — основатель Dardo, студии брендинга, веб-дизайна и разработки в Боготе, Колумбия.

## Продолжайте знакомство.

- [Услуга · **Оптимизация для ИИ-поиска (GEO): как попасть в ответы ChatGPT и Google AI**](https://dardo.studio/ru/services/ai-search-optimization/)

- [Ваш проект · **Начать разговор**](https://dardo.studio/ru/contact/)
