- ウェブサイトは人に情報を提供するだけでなく、LLMにも情報を提供するために使われる
- LLMは、プログラミングライブラリやAPIに関する情報をウェブサイトのドキュメントから収集する選択肢を含め、コーダーが使う開発環境を向上させるために利用されている
- LLM向けの情報提供は人向けの情報提供と少し異なるが、多くの部分で重なっている
- 一般に、より簡潔な形式の情報を好む
- 多くの情報をすばやく収集できるため、主要な情報を一か所にまとめることが役立つ
- LLMのコンテキストウィンドウはウェブサイト全体を処理するには小さすぎ、複雑なHTMLページをLLMフレンドリーなプレーンテキスト文書に変換するのは難しい
- そのため、AIアシスタントに提供すべき最も重要な情報を特定し、最適な形式で提供する方法が必要になる
Proposal
- LLMフレンドリーなコンテンツを提供したい人は、サイトに
/llms.txt ファイルを追加することが提案されている
- これは簡単な背景情報と指示を提供するMarkdownファイルで、より詳しい情報を提供するMarkdownファイルへのリンクを含む
- これはライブラリ利用に必要な情報を提供したり、人や組織について学ぶための調査の一部として利用できる
llms.txt のMarkdownは人にもLLMにも読めるが、厳密な形式としての処理も可能にする
llms.txt ファイルはさまざまなシナリオで利用できる
- ソフトウェアライブラリの場合、ドキュメントの構造化された概要を提供し、LLMが特定の機能や使用例を見つけやすくする
- 企業ウェブサイトでは、組織構造と主要な情報源を概説できる
- 新しい法案と、それに必要な背景情報や文脈に関する情報を
llms.txt ファイルにキュレーションして、関係者の理解を助けられる
- 個人ポートフォリオやCVのウェブサイトは、その人に関する質問に答える助けになる
- ECでは、製品カテゴリやポリシーを簡潔に説明できる
- 教育機関は、提供コースやリソースの要約に利用できる
llms.txt ファイル形式
llms.txt ファイル形式は、言語モデルが理解しやすいMarkdownを使って情報構造を提供する
- このファイルは従来の構造化形式(例: XML)ではなくMarkdownを使うが、それはファイルの主要な読者が言語モデルやエージェントだからである
llms.txt ファイルは標準的なプログラミングツールで読み取ることができ、特定の形式に従って構成される
- H1ヘッダー: プロジェクトやサイトの名前を含み、唯一必須のセクションである。
- 引用ブロック: プロジェクトの簡単な要約を含み、ファイルの残りを理解するために必要な主要情報を提供する。
- Markdownセクション: 詳細情報を提供し、段落やリストなど複数の種類のセクションを含められるが、追加の見出しは含まない。
- H2ヘッダーで区切られたファイル一覧セクション: 追加情報を提供するURL一覧を含み、各項目はMarkdownリンク形式
[名前](URL) で書かれ、必要に応じて説明を追加できる。
- ファイルの例
# プロジェクトタイトル
> プロジェクトに関する任意の説明がここに入る
任意の詳細情報がここに入る
## セクション名
- [リンクタイトル](https://リンク_URL): 任意のリンク説明
## Optional
- [リンクタイトル](https://リンク_URL)
- "Optional" セクション: 特別な意味を持ち、短い文脈だけが必要な場合にはそのURLを省略できる。頻繁に省略可能な二次的情報を含む。
既存標準との共存
llms.txt は既存のウェブ標準と共に動作するよう設計されている
- サイトマップ(sitemaps)が検索エンジン向けにすべてのページを列挙する一方で、
llms.txt はLLM(大規模言語モデル)向けにキュレーションされた概要を提供する
llms.txt は robots.txt と補完関係にあり、許可されたコンテンツに関する文脈を提供できる
- また、サイトで使われている構造化データマークアップを参照し、LLMがそれを理解・解釈する助けにもなる
/robots.txt や /sitemap.xml と同様の形で、ファイルパスを標準化する
- robots.txt と llms.txt は目的が異なる
- robots.txt: 自動化ツール(例: 検索インデックスボット)がサイトへのアクセス許可範囲を理解するために使われる
- llms.txt: 主に、ユーザーが特定のトピックに関する情報を明示的に要求するときに使われる。たとえば、コーディングライブラリのドキュメントをプロジェクトに取り込んだり、検索機能付きチャットボットに情報を求めたりする際に有用である
llms.txt は主に 推論(inference) に有用だと期待されている。ユーザーが助けを必要とする時点で活用され、学習(training) には使われないと見込まれている。ただし、llms.txt の利用が広く普及すれば、将来的に学習過程でもこの情報が活用される可能性はある
- sitemap.xmlとの違い
- sitemap.xml: サイト内のインデックス可能な、人間が読めるすべての情報を列挙する
llms.txt は sitemap.xml の代替ではない:
- LLMが読めるページ版が含まれない可能性がある。
- 情報理解に役立つ外部サイトのURLは含まれない。
- 一般に、LLMのコンテキストウィンドウに収まらない大きすぎる文書を含み、サイト理解に不要な情報も多く含まれる。
llms.txt は、言語モデルが特定の情報にアクセスし、文脈を理解するために最適化されたツールとして機能しうる
4件のコメント
robots.txtを拡張すればよさそうですが……LLM向けクローラーに特別な地位を与える必要があるのでしょうか?それよりも、LLMクローラーたちの user-agent をもう少し整理してほしい……と思いますが……user-agent 自体がいつまで持つのか怪しいので、微妙ですね。
蛇足1. Txt と言っておきながら、なぜ markdown なのでしょう? 私も Markdown は大好きですが、あえてそうする必要が……
llmsというネーミングが特定の技術向けのインターフェースのように見えて、少し気になりますね…。そうですね。奇妙で汎用性がかなり低い別の標準をまた作るより、JSON-LDのような既存の標準を使うか拡張するほうがよいのではないかと思います。
これが広く普及すれば、適切な
llms.txtファイルによって、LLM が自分のサイトを利用するのを防げるようになりそうですね。まったく別の無意味な情報を提供したり、LLM のコンテキストをすべて消費してしまうほど大きな情報を提供したりする
方法で。