30 秒で分かる結論:llms.txt の仕様が求めていること
仕様に沿ったファイルとは、llms.txt という名前の Markdown 文書で、 サイトのルートまたは任意の下位パスに置かれ、次の順で構成されるものです。 任意のバイト順マーク、サイト名またはプロジェクト名の H1、 任意の引用ブロックによる要約、任意の見出しなし自由記述、そして 0 個以上の H2 セクション。各セクションは Markdown のリストで、 項目はリンクと、任意でコロンと注記です。必須なのは H1 だけです。
それ以外の論点、たとえば Content-Type、サイズの上限、llms-full.txt が必須かどうかは、すべて仕様の外です。 この記事の残りは、この 1 文の根拠です。
ファイルの置き場所
仕様の記述はこうです。llms.txt という名前のファイルを、 ルートパスまたは /docs/llms.txt のような任意の下位パスに置く。 ファイルはそのパス配下の URL を説明し、複数のファイルが該当する場合、 エージェントは最も具体的なものを使う。
これは v2 での変更点です。2024 年の本文は下位パスへの設置を許しつつ、 その意味を定めていませんでした。v2 が意味を定義したことで、 共有ホスト上のプロジェクトサイトのように 1 つのパスしか管理できないサイトも 参加できるようになりました。仕様は /.well-known/ を使わなかった 理由も説明しています。well-known URI はオリジンのルートにしか存在できず、llms.txt は index.html と同じように 「自分が置かれたパス」を説明するものだからです。
形式を 1 項目ずつ
形式の定義は 1 つの箇条書きです。各項目が何を意味し、何を意味しないかを 見ていきます。
「任意のバイト順マーク」
ファイル先頭の UTF-8 BOM は許されています。文字コードについて仕様が言うのは これだけで、UTF-8 を名指しせずに前提とし、Content-Type には触れていません。text/plain か text/markdown を UTF-8 で返せば、 大手の採用例と同じです。
「プロジェクトまたはサイト名の H1。これが唯一の必須セクション」
# で始まる 1 行。必須で、しかも唯一の必須要素です。 仕様は「最初の行でなければならない」(BOM が先に来てもよい)とも 「ちょうど 1 つ」とも書いていませんが、意図が単一のタイトルであることは明らかで、 バリデーターは 2 つ目の H1 を少なくとも警告として扱います。
「プロジェクトの短い要約を含む引用ブロック」
> で始まる段落で、仕様の言葉では「ファイルの残りを理解するために 必要な重要情報」を含むものです。厳密には任意で、仕様自身の作例も 「Optional description」と書いています。エージェントにとっては 最も役に立つ 1 行なので、省くのは「合法だが賢くない」選択です。 先週調べた大手 8 本のうち 2 本は省いていました。
「見出し以外の任意の種類の Markdown セクションを 0 個以上」
要約と最初の H2 の間には、段落、リスト、コードブロックまで置けます。 内容は「プロジェクトの詳細と、提供するファイルをどう解釈するか」。 唯一の規則は「見出しを使わない」ことです。見出しを使うとファイルリストが 始まってしまうからです。FastHTML の「覚えておくこと」や Stripe の エージェント向け指示が置かれているのはここです。
「H2 見出しで区切られた、ファイルリストを含むセクションを 0 個以上」
各 ## 見出しがセクション名で、その後に Markdown のリストが続きます。 仕様が言うのは H2 であって H3 ではありません。Anthropic のファイルのように セクション内で H3 で小分けする形は仕様に書かれていませんが、H2 の境界と リスト項目だけを見るパーサーなら問題なく処理します。セクション名は自由で、 慣習的な意味を持つのは「Optional」だけです。
「必須の Markdown リンク、その後に任意でコロンと注記」
リスト項目の書式は - [名前](URL): 注記 です。リンクは必須、 コロンと注記は任意。仕様は「Markdown のリスト」とだけ言い、行頭の記号を 決めていないので * も Markdown としては有効ですが、 作例が使い、厳密なパーサーが期待するのは - です。 URL は自サイトに限られません。仕様は外部サイトへのリンクを、 sitemap にはない利点として明示的に挙げています。
Optional セクションと、v2 で変わったこと
仕様の記述はこうです。Optional セクションは慣習として、二次的な情報、 つまり短い文脈が必要なときにエージェントが読み飛ばしてよいリンクのために使う。
v1 ではこれに実効性がありました。初版はプロンプトを組み立てる際に Optional 以外をすべて含める「文脈展開ツール」を説明していたからです。 v2 はそのツールを提案から外し、それに伴って特別な意味もなくなりました。 Optional セクションは今も許され、有用な慣習として残っていますが、 機械的な意味はもう持ちません。「エージェントは Optional を必ず読み飛ばす」と 書いている解説があれば、それは v1 の説明です。
リンク先のページに仕様が求めていること
ファイルそのものの外に、見落とされがちな推奨が 2 つあります。
- ページの Markdown 版。エージェントが必要としそうなページは、 同じ URL に
.mdを付けた形(page.html.md)か 拡張子を置き換えた形(page.md)で、クリーンな Markdown 版を 提供することが推奨されます。ディレクトリ URL ではindex.html.mdまたはindex.md。 v1 は付加形だけを定めていましたが、ツールの実装が分かれたため v2 は両方を 認めました。 - リンク関係。v2 は発見の仕組みを追加しました。
rel="alternate" type="text/markdown"は ページからその Markdown 版を指し、rel="describedby"は そのページを説明するllms.txtを指します。HTML の<link>要素でも HTTP のLink:ヘッダでもよく、 ヘッダ形式ならページを触らずに CDN で付けられます。
Link: </docs/page.html.md>; rel="alternate"; type="text/markdown", </docs/llms.txt>; rel="describedby"
どちらも、llms.txt が有効であるための要件ではありません。 仕様が「リンクは LLM が読みやすいコンテンツを指すべき」と言うときに 念頭にあるのがこの 2 つです。Markdown 版を用意できないサイトが HTML ページに リンクしても、仕様には沿っています。
仕様が決めていないこと
規則と同じくらい、空白も重要です。ネット上の自信ありげな助言の多くは、 この空白の中にあります。
| 論点 | 仕様の記述 | よくある思い込み |
|---|---|---|
| Content-Type | なし | text/plain が必須。実際は text/markdown も同じくらい使われている |
| サイズやリンク数 | 数値はなし。文脈に収まる大きさ、とだけ | リンク 25 本まで、10 KB までといった固定の上限 |
| llms-full.txt | 言及なし | 標準の一部、または必須 |
| どのボットが読むか | エージェントが閲覧または検索してリンクを辿る、とだけ。読み手の名指しはなし | ChatGPT や Google 検索がインデックスする |
| 行頭記号と H3 | Markdown のリスト、H2 のセクション | * の箇条書きや H3 の小見出しは無効 |
| 学習と推論 | 主に推論での利用を想定。学習で使われる可能性にも触れる | 学習の許可や拒否を表明できる |
最後の行がいちばん影響の大きいものです。仕様は robots.txt と llms.txt の目的が違うと明言しています。robots.txt は どのアクセスが許容されるかを伝え、llms.txt はエージェントが情報を 必要とした時点で読まれるもの。llms.txt の中の何も、 クロールや学習を制御しません。
4 つのガイドライン
作例の後に、仕様は 4 文の助言を置いています。規範ではありませんが、 ファイルを役立つものにする条件の要約としては最良です。
- 簡潔で明確な言葉を使う。
- リソースにリンクするときは、短く情報のある説明を添える。
- あいまいな用語や説明のない専門用語を避ける。
- llms.txt だけを出発点として与えたエージェントに、自分のコンテンツについて 質問してテストする。
4 つ目は誰もやらない項目です。そして、このファイルの目的を測れる唯一のテストでも あります。
この規則に照らしてファイルを確認する
バリデーターは上の規範的な部分(H1 があり 1 つであること、要約があること、H2 セクションのリンク項目が正しい形式で絶対 URL であること)に加えて、仕様が決めていない実務上の項目(文字コード、サイズ)も確認します。
バリデーターを開く →最小の適合ファイル
必須のものすべてと、良いファイルなら必ず入っている任意の 2 つ。
# 例の商店 > 例の商店は、京都市内の小さな工房向けに部品を製造販売しています。2012 年創業。 ## ページ - [製品一覧](https://example.jp/products.md): 3 種類の部品の価格と納期。 - [お問い合わせ](https://example.jp/contact.md): 電話、メール、訪問見積もりの予約フォーム。
引用ブロックとセクションを外すと # 例の商店 だけが残ります。 有効ですが無意味です。仕様はわざと床を低くしています。 水準を決めるのはガイドラインと実際のファイルです。
よくある質問
llms.txt の公式な仕様はどこにありますか?
https://llmstxt.org/ です。Answer.AI の Jeremy Howard 氏が管理し、原文は GitHub の AnswerDotAI/llms-txt リポジトリにあります。現在の本文は 2026 年 8 月に改訂された v2 で、最初の提案は 2024 年 9 月です。v1 から v2 で何が変わったかをまとめたページも用意されています。
llms.txt で唯一必須の要素は何ですか?
サイト名またはプロジェクト名を書いた H1 の行です。仕様に明記されています。引用ブロックの要約、見出し以外の自由記述、H2 のリンクセクションはどれも定義されていますが任意です。ただし H1 だけのファイルはエージェントにとって役に立たないので、「有効なファイル」ではなく「良いファイル」の条件としては、要約と 1 つ以上のリンクセクションを必須と考えてください。
llms.txt はサイトのルートに置かなければいけませんか?
今は違います。v2 では、ルートでも任意の下位パスでもよく、ファイルはそのパス配下の URL を説明し、複数のファイルが該当する場合はエージェントが最も具体的なものを使う、とされています。/docs/llms.txt が代表例です。小規模なサイトでは、ルートの 1 本が引き続きふつうの選択です。
Optional セクションは特別なものですか?
慣習としてだけ特別です。v1 では、文脈を組み立てるツールにどのリンクを落としてよいかを伝える意味がありました。v2 でそのツールが提案から外れ、機械的な意味もなくなりましたが、文脈が足りないときにエージェントが読み飛ばしてよいリンクの置き場、という慣習は残っています。
Content-Type、文字コード、ファイルサイズについて仕様は何と言っていますか?
先頭のバイト順マーク(BOM)を任意で許す以外、何も言っていません。Content-Type、charset、サイズは公開する側に委ねられています。大手の採用例は text/plain か text/markdown を UTF-8 で返しており、ファイルをエージェントの文脈に収める、という設計目標から「小さく保つ」ことは暗黙に求められています。
llms-full.txt は仕様の一部ですか?
違います。仕様が定義しているのは llms.txt と、個々のページの Markdown 版の推奨だけで、llms-full.txt は定義していません。llms-full.txt はドキュメントプラットフォームが広めた別の慣習で、多くのサイトは llms.txt の Optional セクションからリンクしています。
次に読む
- → llms.txt の書き方:30 分で自分で書く手順(この仕様をブロックごとに実際の作業に落とす)
- → llms.txt の Optional セクションには何を書くか (仕様が慣習としてだけ定めている唯一のセクション)
- → llms.txt の実例 8 選:大手はこう書いている
- → 解説記事の一覧へ戻る