Из песочницы Мы привыкли к классическому набору любого сайта: robots.txt экономит ресурсы сервера, запрещая поисковикам сканировать мусорные страницы, а sitemap.xml, наоборот, скармливает поисковикам каждую доступную страницу для полной индексации. Однако ситуация изменилась, когда сайты начали читать не только поисковые роботы, но и языковые модели. Для них существующие стандарты не подходят: sitemap избыточен и ресурсоёмок, а HTML-код создаёт слишком много шума. Понадобился новый способ доставки актуального, очищенного контекста в сжатом виде специально для AI-агентов и языковых моделей. В сентябре 2024 года Джереми Ховард (создатель fast.ai ) предложил решение в виде стандарта /llms.txt. Давайте разберемся, как он работает, чем отличается от llms-full.txt, какую пользу могут извлечь разработчики и как быстро добавить его поддержку в свой проект. Проблема: HTML нужен только людям Когда вы просите ChatGPT, Gemini, Perplexity или Cursor прочитать документацию библиотеки, чтобы написать код, модель сталкивается с несколькими проблемами: Технические барьеры и глубина: LLM — не поисковые роботы. В чат-интерфейсах модели часто "ленятся" или технически не могут переходить по десяткам ссылок. Если вы дадите ссылку на корень документации, модель часто прочитает только эту страницу. Кроме того, многие сайты построены как SPA-приложения и требуют выполнения JavaScript, с чем встроенные браузеры LLM нередко не справляются, видя лишь пустой <div id="root"></div> Грязные данные: Современные сайты — это смесь HTML, CSS, JavaScript, рекламных блоков и навигации, которые бесполезно расходуют токены. Даже у моделей с контекстом в миллион токенов есть предел "внимания". Скармливать им весь сайт целиком — это дорого и снижает качество ответов. Отсутствие приоритетов: sitemap.xml содержит ссылки на всё подряд. LLM не знает, какие страницы важны, а какие второстепенны, устарели или носят юридический характер. Решение: стандарт /llms.txt llms.txt — это стандарт чистых данных для нейросетей. Он превращает ваш сайт или документацию в AI-friendly ресурс, гарантируя точные ответы без галлюцинаций по актуальным данным. Стандарт состоит из трех компонентов: 1. Markdown-зеркала страниц Первая часть предложения — создавать "чистые" версии страниц. Если у вас есть страница документации docs/api.html, по тому же адресу (или с суффиксом .md) должен быть доступен файл с чистым содержимым в Markdown-формате, например: docs/api.html.md docs/api.md 2. Файл llms.txt Это индексный Markdown-файл в корне сайта, выполняющий роль карты. В отличие от sitemap.xml, он содержит ссылки не на все страницы подряд, а только на самые важные и актуальные материалы, специально отобранные для работы с ИИ. Файл включает краткое описание проекта, список ссылок на подготовленные .md-документы и сжатые аннотации к ним. Благодаря этому модель сразу видит приоритеты, понимает структуру проекта и знает, где искать детали. 3. Файл llms-full.txt llms-full.txt — это файл полного контекста. Он склеивает все страницы из llms.txt в один текст, чтобы передать AI всю базу знаний одним файлом. Этот файл формируется автоматически специальным скриптом. (В спецификации FastHTML он также называется llms-ctx-full.txt, но такую вариацию почти никто не использует). Структура файла llms.txt Хотя Markdown понятен нейросетям и без строгой схемы, спецификация требует соблюдения определенного порядка секций. Это нужно, чтобы классические инструменты (парсеры, CLI-утилиты) могли автоматически собирать контекст. Порядок элементов следующий: Заголовок H1: название проекта или сайта (обязательный элемент). Цитата (Blockquote): Краткое саммари проекта. Самая важная информация. Описание (Markdown): Произвольный текст с деталями, инструкциями или подсказками для модели. Секции ссылок (Заголовки H2, H3 и т.д.): тематические разделы с перечислением ссылок. Внутри списки вида: [Название](ссылка): Краткое описание ссылки должны вести на Markdown-файлы, а не HTML Секция "Optional" (H2): ссылки на второстепенные материалы. Они игнорируются при сборке сжатого контекста, но попадают в полную версию. Укороченный пример файла: # FastHTML > FastHTML is a Python library that brings together Starlette, Uvicorn, and HTMX for creating server-rendered hypermedia applications. Things to remember: — Although its API is inspired by FastAPI, it is not compatible with its syntax. — It is compatible with vanilla JS, but not with React, Vue, or Svelte. ## Docs — [FastHTML concise guide](https://www.fastht.ml/docs/ref/concise_guide.html.md): A brief overview of idiomatic FastHTML apps ## API — [API List](https://www.fastht.ml/docs/apilist.txt): A succint list of all functions and methods in fasthtml. ## Optional — [FAQ](https://www.fastht.ml/docs/explains/faq.html.md): Answers to common questions about FastHTML. (Оригинал файла можно посмотреть здесь ) Как внедрить (плагины и инструменты) Поддерживать два набора документации (HTML и Markdown) вручную не вариант. Несмотря на молодость стандарта, для большинства популярных CMS и генераторов уже есть готовые решения. GitBook: Полностью встроенная поддержка.nbdev: Инструмент от fast.ai генерирует по умолчанию. Python экосистема: Source: https://habr.com/ru/articles/974882/