## ファーストパーティの規約は（まだ）ない

Next.jsは`robots.txt`と`sitemap.xml`のメタデータファイル規約を備えています — `app/robots.ts`から関数をエクスポートすれば、フレームワークがファイルを配信します。**llms.txtにはそのような規約が存在しません**（オープンな機能リクエストがあります: vercel/next.jsディスカッション#80692）。自分で配線します。2つのパターン、どちらも簡単です:

## パターン1: 静的ファイル

`llms.txt`を`public/`に置きます。Next.jsはそこにあるものをルートで配信するので、`public/llms.txt` → `yoursite.com/llms.txt`。以上です。

主要ページがめったに変わらない場合の正解です。リスクはドリフト: ファイルはサイトが*かつて何だったか*を語ります。

## パターン2: route handler

動くコンテンツ — ドキュメント、商品、投稿 — には、ページと同じ真実の源からファイルを生成します:

```
// app/llms.txt/route.ts
import { getDocs } from '@/lib/content';

export async function GET() {
  const docs = await getDocs();
  const body = [
    '# Acme',
    '',
    '> Acmeは開発者向けウィジェットAPIです。',
    '',
    '## ドキュメント',
    ...docs.map(d => `- [${d.title}](/docs/${d.slug}): ${d.summary}`),
    '',
    '## 機械可読サーフェス',
    '- [OpenAPI仕様](/openapi.json): 完全なAPIスキーマ',
  ].join('\n');
  return new Response(body, {
    headers: { 'Content-Type': 'text/plain; charset=utf-8' },
  });
}
```

コンテンツソースが重い場合は`export const revalidate = 3600`を追加します。全文コンパニオンが欲しければ、同じパターンで[llms-full.txt](/kb/llms-full-txt)も配信できます。

## 何を含めるべきか

網羅性よりキュレーション: サイトが何か（blockquote 1つ）、エージェントが起点とすべき十数ページと1行要約、そして機械サーフェスへのクロスリファレンス — [OpenAPI仕様](/kb/openapi)と[MCPエンドポイント](/kb/mcp)はファイル中で最も価値ある行です。フォーマットの詳細は[llms.txtガイド](/kb/llms-txt)へ。

## 検証する

デプロイに対して[llms.txtバリデーター](/tools/llms-txt-validator)を実行してください — 存在、パース可能性、ナビゲート可能な構造。あるいは[サイトをスキャン](/)してエージェント対応度の全体像を確認しましょう。

## よくある質問

### Next.jsにはrobots.tsのようなllms.tsメタデータ規約がありますか？

ありません。メタデータファイル規約はrobots.txt、sitemap.xml、アイコン、OG画像をカバーしますが、llms.txtは対象外です。機能リクエストはオープン中。それまではpublic/llms.txtかroute handlerを使ってください。

### route handlerは特別なContent-Typeを設定すべきですか？

UTF-8のtext/plain（またはtext/markdown）で配信してください。エージェントは本文からmarkdown構造をパースします。重要なのは、ルートがコンテンツを直接200で返すことです。

### 静的ファイルとroute handler、どちらにすべきですか？

主要ページが安定しているなら静的。ファイルに変化するものを載せるならroute handler — ドキュメントとスナップショットの違いです。

## 関連

- [llms.txt — 完全ガイド](/kb/llms-txt)
- [llms-full.txt](/kb/llms-full-txt)
- [Shopifyのllms.txt](/kb/llms-txt-for-shopify) · [WordPressのllms.txt](/kb/llms-txt-for-wordpress)
