llms.txt для продуктов с API-first подходом

Разработчики постоянно спрашивают у помощников AI о помощи с API. Хорошо отобранный llms.txt уменьшает число выдуманных endpoint, неверных параметров и устаревших примеров.

Последнее обновление:

Почему продукты с API получают наибольшую пользу

Продукты с приоритетом на API и инструменты для разработчиков относятся к типам сайтов, которые лучше всего готовы получить пользу от llms.txt. Разработчики регулярно спрашивают у помощников для программирования на основе AI, как работать с API: как выполнять пагинацию, каковы ограничения скорости, как проходить аутентификацию, как обрабатывать конкретную ошибку. Это точные вопросы, на которые можно ответить. Когда у AI есть точная документация, ответы полезны. Когда её нет, он делает предположения, а предположения об API приводят к ошибкам.

Совместимый агент или процесс поиска можно настроить на использование llms.txt как списка документов для чтения через API. В таком контролируемом случае можно отследить, какие документы были загружены перед ответом.

Проблема галлюцинаций API

Языковые модели ИИ иногда генерируют правдоподобные, но неверные сведения об API. Распространённые шаблоны:

  • Несуществующие или переименованные конечные точки.
  • Параметры из предыдущей версии API.
  • Устаревшие или неверные поля схемы ответа.
  • Методы аутентификации, которые не поддерживает ваш API.
  • Ограничения частоты из другого уровня или старой модели ценообразования.

Эти ошибки возникают потому, что обучающие данные модели устарели на месяцы или годы, а API развиваются. Когда система извлечения получает вашу актуальную документацию перед ответом, она использует текущее содержимое. llms.txt помогает, указывая системе извлечения на ваши авторитетные страницы.

Что включить

Для продуктов с API в первую очередь выделите такие типы страниц:

  • Справочник API, полный справочник конечных точек. Если он очень длинный, дайте ссылку на страницу верхнего уровня.
  • Руководство по аутентификации, как получить учётные данные и передать их в запросах.
  • Руководство по быстрому старту, самый быстрый путь от нуля до рабочего вызова API.
  • Ограничения частоты и квоты, конкретные ограничения для уровня и типа конечной точки.
  • Справочник ошибок, коды ошибок и их значения.
  • Ссылки на документацию SDK, по одной ссылке на каждый официально поддерживаемый языковой SDK.
  • Журнал изменений или примечания к выпуску, помогает системам поиска понимать текущее состояние API.
  • Справочник по вебхукам, если ваш API отправляет вебхуки, добавьте на него ссылку.

Что исключить

  • Документация с ограничением по аутентификации, страницы за входом не будут доступны при загрузке ИИ-агентами, работающими без учётной записи.
  • Внутренние или бета-страницы, не ссылайтесь на страницы, не готовые к публичному использованию.
  • Устаревшие версии API, исключите документацию старых версий.
  • Маркетинговые целевые страницы, бесполезно для разработчиков, задающих технические вопросы.
  • Ссылки на форум сообщества или Slack, динамический контент ИИ-роботы не могут надёжно разобрать.

Шаблон примера

Полный пример гипотетического продукта с API. Адаптируйте его к структуре своей документации.

# Acme API

> Acme provides a REST API for real-time inventory management. The API supports CRUD
> operations on products, locations, and stock adjustments, plus webhook notifications.
> Authentication uses API keys in the Authorization header.

## Core documentation

- [API reference](https://docs.acme.example/api/): complete endpoint reference.
- [Authentication](https://docs.acme.example/authentication/): API key setup and OAuth 2.0.
- [Quickstart](https://docs.acme.example/quickstart/): first API call in five minutes.
- [Rate limits](https://docs.acme.example/rate-limits/): limits by tier.
- [Errors](https://docs.acme.example/errors/): error codes and recommended handling.
- [Webhooks](https://docs.acme.example/webhooks/): event types and payload schema.

## SDKs

- [Python SDK](https://docs.acme.example/sdk/python/): official Python library.
- [Node.js SDK](https://docs.acme.example/sdk/node/): official Node.js library.
- [Go SDK](https://docs.acme.example/sdk/go/): official Go client.

## Optional

- [Changelog](https://docs.acme.example/changelog/): API version history and breaking changes.
- [Migration guides](https://docs.acme.example/migrations/): upgrading between major versions.
- [Status page](https://status.acme.example/): API uptime and incident history.

Особенности SDK и мультиязычности

Если у продукта есть SDK для нескольких языков, дайте ссылку на документацию каждого SDK отдельно. Организуйте их в понятный ## SDKs раздел и добавляйте ссылку на верхнеуровневую страницу каждого SDK, а не на каждую отдельную подстраницу.

Поддерживайте актуальность

  • Добавьте проверку llms.txt в контрольный список выпуска API.
  • При выпуске новой основной версии API обновите ссылки, чтобы они указывали на документацию текущей версии.
  • При выводе страниц документации из эксплуатации немедленно удаляйте или заменяйте эти ссылки.
  • Если документация часто обновляется, рассмотрите автоматическую генерацию llms.txt из вашей CMS документации.

Продолжить чтение

Источники