# Обнаружение llms.txt и Markdown-версий страниц

> Как агент находит llms.txt и Markdown-версию страницы по второй редакции - связи rel=alternate и rel=describedby, заголовок Link, файлы в подпутях

Страница: https://llms-full-txt.ru/specification/discovery/
Указатель сайта: https://llms-full-txt.ru/llms.txt

Вторая редакция proposal отвечает на вопрос, которого не было в первой: агент уже на странице, как ему узнать, что у неё есть Markdown-версия и что рядом лежит `llms.txt`?

Ответ - две обычные связи: `rel="alternate"` с типом `text/markdown` ведёт на Markdown-версию страницы, `rel="describedby"` - на `llms.txt`, который эту страницу покрывает. Их можно указать в коде страницы или в заголовке ответа сервера.

появилось во второй редакции, 10 августа 2026
## Как это работает

- Что агент узнаёт со страницы
- Страница
- /docs/install.html
- агент пришёл сюда по ссылке
- Markdown-версия
- /docs/install.html.md
- тот же текст без оформления
- Покрывающий файл
- /docs/llms.txt
- карта всего раздела

## Два способа указать связи

**В коде страницы**

```html title="install.html" {3-4}
<head>
  <title>Установка</title>
  <link rel="alternate" type="text/markdown" href="/docs/install.html.md">
  <link rel="describedby" href="/docs/llms.txt">
</head>
```

**В заголовке ответа**

```http title="Ответ сервера"
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Link: </docs/install.html.md>; rel="alternate"; type="text/markdown", </docs/llms.txt>; rel="describedby"
```

Заголовок удобен двумя вещами. Его можно добавить в настройках сервера или CDN, не трогая страницы. И он работает для файлов, у которых нет `<head>`: например, для самих Markdown-файлов.

## Файлы в подпутях

`llms.txt` может лежать не только в корне сайта. Файл покрывает адреса под своим путём: `/docs/llms.txt` описывает всё, что находится в `/docs/`.

Если странице подходит несколько файлов, агент берёт самый близкий к ней.

| Страница | Какие файлы подходят | Какой берётся |
|---|---|---|
| `/docs/api/auth.html` | `/llms.txt`, `/docs/llms.txt`, `/docs/api/llms.txt` | `/docs/api/llms.txt` |
| `/docs/guide.html` | `/llms.txt`, `/docs/llms.txt` | `/docs/llms.txt` |
| `/blog/post.html` | `/llms.txt` | `/llms.txt` |

Это же правило позволяет участвовать тем, кто управляет только частью сайта: например, проекту на общем хостинге с адресом вида `example.github.io/project/`.

## Адрес Markdown-версии

Вторая редакция допускает две формы.

| Страница | Форма с добавлением | Форма с заменой |
|---|---|---|
| `/docs/page.html` | `/docs/page.html.md` | `/docs/page.md` |
| `/docs/` | `/docs/index.html.md` | `/docs/index.md` |

Какую бы форму сайт ни выбрал, `rel="alternate"` избавляет агента от угадывания.

## Почему не /.well-known/

Для служебных файлов есть стандартное место - каталог `/.well-known/`. Автор proposal от него отказался по одной причине: такие адреса существуют только в корне сайта. `llms.txt` описывает путь, в котором лежит, а корневой каталог этого выразить не может.

## Что на практике

**Подтверждено**

- Связи описаны в тексте [второй редакции](https://llmstxt.org/).
- `rel="alternate"` на Markdown-версию встречается у нескольких сайтов документации, включая Anthropic.
- В нашей проверке 46 сайтов 3 октября 2026 года `rel="describedby"` нашёлся у одного - Cursor.

**Не доказано**

- Что агенты уже массово читают эти связи. Редакция вышла недавно.

**Чего это не означает**

- Некоторые платформы шлют собственные заголовки: `rel="llms-txt"`, `rel="llms-full-txt"`, `X-Llms-Txt`. Во вторую редакцию они не входят.

## Дальше

- Все отличия редакций: [изменения в v2](https://llms-full-txt.ru/specification/changes/).
- Как отдавать Markdown: [Markdown-версии страниц](https://llms-full-txt.ru/guides/markdown-pages/).
- Как проверить заголовки: [проверка файлов и разметки](https://llms-full-txt.ru/guides/validation/).
