ドキュメントサイト向けの llms.txt

ドキュメントサイトは llms.txt の理想的な用途です。開発者は常にドキュメントについて AI アシスタントに質問しています。正確な回答を得られるようにする方法を説明します。

最終更新:

ドキュメントサイトが最も恩恵を受ける理由

Mintlify、GitBook、Docusaurus でホストされたものや、MkDocs、Nextra などで独自構築されたドキュメントサイトは、llms.txt の理想的な用途です。理由は単純です。開発者は日常的に AI アシスタントを使ってドキュメントを参照します。「Acme で認証を設定するには?」「Acme が対応する Webhook は?」「Acme の Python SDK を見せて」といった質問は、いずれもドキュメントに関するものです。

開発者がAIアシスタントにこれらの質問をした場合、アシスタントは (数ヶ月前のものかもしれない)トレーニングデータから情報を引き出すか、ウェブからリアルタイムのコンテンツを取得するか、あるいは llms.txtを取得するように設定された互換性のあるワークフローからドキュメントを読み込むかのいずれかになります。これら3つのケースのいずれにおいても、 回答の質は、アシスタントがアクセスできるドキュメントの質に依存します。

llms.txtは、互換性のあるクライアントに最も重要なページを知らせる仕組みです。 ドキュメントサイトでは、受信ワークフローが既知でテスト可能な場合、この選別が役立ちます。

含めるべき内容

ドキュメントサイトでは、次の種類のページを一貫してllms.txtに含める価値があります:

  • クイックスタートガイド、新規ユーザーや AI アシスタントが最初に到達することの多いページです。最低限の手順で動作させるまでを案内する必要があります。1ページだけ含めるなら、このページを含めてください。
  • 中核概念。製品のメンタルモデルを説明するページです。基本的なエンティティは何か、製品のデータモデルはどのように機能するか、主要な用語は何かを説明します。
  • APIリファレンス、APIエンドポイント、パラメーター、 レスポンススキーマの完全なリファレンス。単一の長いページなら最上位ページにリンクします。リソース種別ごとに ページ分けされているなら、リソースレベルのページにリンクします。
  • SDKおよびクライアントライブラリのガイド、公式にサポートされている言語またはプラットフォームごとにリンクを1件掲載します。
  • 認証と認可、ユーザーやアプリが認証する方法です。AI アシスタントに尋ねられる最も一般的なドキュメント質問の1つです。
  • FAQ またはトラブルシューティングガイド、包括的なFAQがある場合は、 リンクを貼る価値があります。AIアシスタントがそれを利用して、よくある質問に正確に回答できるようになります。
  • 変更履歴は、取得システムが現在の動作と古い学習データを区別するのに役立ちます。

除外すべきもの

ドキュメントサイトのすべてのページを llms.txt に含める必要はありません:

  • 内部メモまたはチーム向けドキュメント。ドキュメントプラットフォームで 一般公開ドキュメントと社内チームWikiの両方をホストしている場合は、公開ドキュメントだけを含めます。
  • 下書きまたは非公開のページ, まだユーザー向けに準備できていないページは llms.txtに含めないでください。AIが下書きページを引用すると、承認していない内容を
  • 認証が必要なコンテンツ、ログインで保護されたドキュメントは AI クローラーやエージェントフレームワークが取得できません。公開アクセス可能なページだけを含めてください。
  • 非推奨のドキュメント、製品の古いバージョンのドキュメントを維持している場合は、そのページを除外するか明確に示します。AI アシスタントに利用者へ非推奨のパターンを教えさせないためです。
  • 非常に細分化されたサブページ。APIリファレンスに個別のエンドポイントページが200件ある場合でも、200件すべてにリンクしないでください。最上位のリファレンスにリンクし、AIがそこからたどれるようにします。llms.txtは選別レイヤーであり、サイトマップではありません。
  • マーケティングまたは営業用ページ、料金、導入事例、比較ページは有用なコンテンツですが、ドキュメントではありません。含める場合は、 ## Optional セクションに入れます。

優先順位の並べ替え

llms.txt の各セクションでは、リンクの順序が重要です。ファイルを読むAIクライアントは、先にあるリンクをより優先度が高いものとして扱います。コンテキスト長の制約がある場合、ファイルの途中で読み取りを止めることがあります。最も重要なページを先頭に置いてください。

開発者向けドキュメントサイトで推奨される優先順位は次のとおりです:

  1. クイックスタート/入門
  2. 中核概念 / アーキテクチャの概要
  3. API リファレンス(トップレベルまたは最もよく使われるリソース)
  4. 認証/認可
  5. SDKガイド(使用頻度の高い言語順)
  6. Webhook リファレンス(該当する場合)
  7. トラブルシューティング/FAQ
  8. 変更履歴(Optional セクション内)
  9. 移行ガイド(Optionalセクション内)

ナビゲーションから自動生成

ページ数の多いドキュメントサイトでは、llms.txtを手動で保守するのは現実的ではありません。ドキュメント構造からビルド時に自動生成する方が適しています。一般的な手順:

  1. ナビゲーション設定をソースとして使います。 ほとんどのドキュメントプラットフォームでは、 ナビゲーションを設定ファイル(sidebar.json、mint.json、mkdocs.yml など)で定義しています。この設定は すでに、ドキュメントに対する厳選され、順序付けられたビューを表しており、 llms.txt を生成するための自然な入力となります。
  2. 最上位と第2階層の項目に絞ります。 ナビゲーションツリーの末端ノードをすべて含めないでください。 最上位セクションとその直接の子を抽出します。通常は10~30ページになり、llms.txtに適した範囲です。
  3. 各項目を絶対URLに対応付ける。 ナビゲーション設定では相対パスが使われている可能性があります。設定済みのベース URL を使って絶対 URL に変換してください。
  4. リンクテキストにはページタイトルを、リンク説明にはページの説明を使用する。 ページにメタディスクリプションがある場合は、それを使用します。なければ各ページの最初の段落を使用します。
  5. 公開ディレクトリに出力します。 生成されたファイルを、静的 ファイルが保存されている場所に書き込んで、以下で配信されるようにしてください。 /llms.txt.

ドキュメントのビルドごとにこの生成を実行すると、llms.txt をナビゲーション構造と自動的に同期できます。

Mintlifyでの対応方法

Mintlifyは、開発者向け企業で広く使われているドキュメントプラットフォームです(AI時代の開発者ツールでも多く採用されています)。Mintlifyは llms.txt および llms-full.txt そのプラットフォームでホストされるすべてのドキュメントサイトに。

概念的には、Mintlifyによる生成は次のように機能します:

  • サイトのナビゲーションは mint.json 設定ファイル。このファイルは、サイドバーの各セクションに表示するページを含め、ページ階層を指定します。
  • ビルド時に、Mintlifyはナビゲーション構造を読み取り、 llms.txt ファイルでは、各ナビゲーション項目が適切なセクションのリンク項目になります。
  • 対象: llms-full.txt。Mintlifyは各ページの完全なMarkdownコンテンツをそのリンクの下へインライン化し、 AI検索システムにドキュメント全体を1つのファイルで提供します。
  • 両方のファイルはドキュメントサイトと一緒にデプロイされ、標準パス(/llms.txtと/llms-full.txt)で提供されます。/llms.txt および /llms-full.txt).

その結果、Mintlify上のドキュメントサイトでは、手動で厳選しなくても仕様準拠のllms.txtファイルが 自動的に得られる。トレードオフは、ファイルが手作業で決めた優先順位ではなく ナビゲーション構造を反映するため、手動作成者ならOptionalセクションに入れるか完全に除外した 低優先度のページが含まれる可能性があることだ。

GitBook、Docusaurus、ReadMe など、その他のドキュメントプラットフォームでは、llms.txt の対応状況がそれぞれ異なります。現在の対応状況は、各プラットフォームのドキュメントまたはリリースノートで確認してください。

構成例

以下は、架空の開発者向けドキュメントサイトを想定した llms.txt の例です。この構造は、 REST API を備えたほとんどの製品ドキュメントサイトで機能します:

# Acme Documentation

> Acme is a platform for real-time inventory management. This documentation covers the
> REST API, SDKs for Python and Node.js, and integration guides for common e-commerce
> platforms. The API is used by developers building stock tracking, warehouse management,
> and demand forecasting applications.

## Getting started

- [Introduction](https://docs.acme.example/introduction/): what Acme is and how it works.
- [Quickstart](https://docs.acme.example/quickstart/): create your first integration in five minutes.
- [Authentication](https://docs.acme.example/authentication/): API key setup and OAuth 2.0.
- [Core concepts](https://docs.acme.example/concepts/): products, locations, stock records, and events.

## API reference

- [API overview](https://docs.acme.example/api/): base URL, versioning, and conventions.
- [Products](https://docs.acme.example/api/products/): create, read, update, and delete products.
- [Stock adjustments](https://docs.acme.example/api/stock/): record stock movements and reconcile inventory.
- [Webhooks](https://docs.acme.example/api/webhooks/): event types, payloads, and signature verification.
- [Rate limits](https://docs.acme.example/api/rate-limits/): limits by plan tier.
- [Errors](https://docs.acme.example/api/errors/): error codes and handling recommendations.

## SDKs

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

## Optional

- [Changelog](https://docs.acme.example/changelog/): release notes and breaking changes.
- [FAQ](https://docs.acme.example/faq/): common questions from developers.
- [Migration guide (v1 to v2)](https://docs.acme.example/migration/): upgrading from v1.

続きを読む

ソース