揭秘 /llms.txt:为大型语言模型量身定制的网站导航文件
2026/1/9
本文介绍了 /llms.txt 文件,这是一种为大型语言模型(LLMs)设计的网站导航文件。它采用Markdown格式,提供简洁、结构化的信息,帮助LLMs高效理解和访问网站内容,尤其适用于开发文档、API参考等场景。
## 背景
随着大型语言模型(LLMs)日益依赖网站信息,一个关键限制逐渐凸显:其上下文窗口通常太小,无法完整处理大多数网站。将包含导航、广告和 JavaScript 的复杂 HTML 页面转换为 LLM 友好的纯文本,既困难又不精确。
虽然网站同时服务于人类读者和 LLMs,但后者更受益于简洁、专家级的信息,这些信息应集中在一个易于访问的位置。这对于开发环境等用例尤为重要,因为 LLMs 需要快速访问编程文档和 API。
## 提案
我们建议在网站中添加一个 `/llms.txt` Markdown 文件,以提供 LLM 友好的内容。该文件提供简要的背景信息、指导以及指向详细 Markdown 文件的链接。
`llms.txt` Markdown 文件既可供人类阅读,也可供 LLM 读取,同时还采用精确的格式,允许使用固定的处理方法(例如解析器和正则表达式等经典编程技术)。
此外,我们建议网站上包含可能对 LLMs 有用的信息的页面,应在原始 URL 的基础上,通过追加 `.md` 扩展名,提供该页面的干净 Markdown 版本。(没有文件名的 URL 应追加 `index.html.md`。)
FastHTML 项目在其文档中遵循了这两项提案。例如,这是 FastHTML 文档的 `llms.txt`。这里是一个常规 HTML 文档页面的示例,以及带有 `.md` 扩展名的相同 URL。
该提案不包括任何关于如何处理 `llms.txt` 文件的具体建议,因为这取决于应用程序。例如,FastHTML 项目选择自动将 `llms.txt` 扩展为两个 Markdown 文件,其中包含链接 URL 的内容,并使用适合 Claude 等 LLMs 的基于 XML 的结构。这两个文件是:`llms-ctx.txt`(不包含可选的 URL)和 `llms-ctx-full.txt`(包含可选的 URL)。它们是通过 `llms_txt2ctx` 命令行应用程序创建的,FastHTML 文档中包含了用户如何使用它们的信息。
`llms.txt` 文件的多样性意味着它们可以服务于许多目的——从帮助开发者浏览软件文档,到为企业提供结构概述,甚至为利益相关者解析复杂的法规。它们同样适用于个人网站,帮助回答关于某人简历的问题;适用于电子商务网站,解释产品和政策;或适用于学校和大学,提供对其课程信息和资源的快速访问。
请注意,所有 nbdev 项目现在默认创建所有页面的 `.md` 版本。所有使用 nbdev 的 Answer.AI 和 fast.ai 软件项目都已重新生成了具有此功能的文档。例如,请参阅 fastcore 的 docments 模块的 Markdown 版本。
## 格式
目前,语言模型最广泛且易于理解的格式是 Markdown。简单地指示关键 Markdown 文件的位置是一个很好的第一步。提供一些基本结构有助于语言模型找到所需信息的来源。
`llms.txt` 文件的独特之处在于它使用 Markdown 来构建信息,而不是经典的 XML 等结构化格式。这样做的原因是我们期望许多这样的文件将由语言模型和代理读取。尽管如此,`llms.txt` 中的信息遵循特定的格式,并且可以使用基于标准编程的工具读取。
`llms.txt` 文件规范适用于位于网站根路径 `/llms.txt`(或可选地在子路径中)的文件。遵循该规范的文件包含以下 Markdown 部分,按特定顺序排列:
1. **H1 标题**:包含项目或站点的名称。这是唯一必需的部分。
2. **块引用**:包含项目的简短摘要,其中包含理解文件其余部分所需的关键信息。
3. **零个或多个 Markdown 部分**(例如段落、列表等,不包括标题):包含关于项目的更详细信息以及如何解释提供的文件。
4. **零个或多个由 H2 标题分隔的 Markdown 部分**:包含“文件列表”,其中列出了可获取更多详细信息的 URL。
每个“文件列表”都是一个 Markdown 列表,包含必需的 Markdown 超链接 `[名称](URL)`,然后可选地跟随一个冒号和关于文件的注释。
以下是一个模拟示例:
```markdown
# 标题
可选的详细信息放在这里
## 部分名称
- [链接标题](https://链接_url): 可选的链接详细信息
## 可选
- [链接标题](https://链接_url)
```
请注意,“可选”部分具有特殊含义——如果包含该部分,则在需要较短上下文时可以跳过其中提供的 URL。将其用于通常可以跳过的次要信息。
## 现有标准
`llms.txt` 旨在与当前的网络标准共存。虽然站点地图为搜索引擎列出了所有页面,但 `llms.txt` 为 LLMs 提供了精选的概述。它可以通过为允许的内容提供上下文来补充 `robots.txt`。该文件还可以引用网站上使用的结构化数据标记,帮助 LLMs 理解如何在上下文中解释这些信息。
标准化文件路径的方法遵循了 `/robots.txt` 和 `/sitemap.xml` 的方法。`robots.txt` 和 `llms.txt` 有不同的目的——`robots.txt` 通常用于让自动化工具知道对站点的哪些访问被认为是可接受的,例如用于搜索索引机器人。另一方面,`llms.txt` 信息通常在用户明确请求有关主题的信息时按需使用,例如在项目中包含编码库的文档时,或向具有搜索功能的聊天机器人询问信息时。我们的期望是,`llms.txt` 主要用于推理,即用户寻求帮助时,而不是用于训练。然而,如果 `llms.txt` 的使用变得广泛,未来的训练运行也可能利用 `llms.txt` 文件中的信息。
`sitemap.xml` 是站点上所有可索引的人类可读信息的列表。这不是 `llms.txt` 的替代品,因为它:
1. 通常不会列出页面的 LLM 可读版本。
2. 不包括外部站点的 URL,即使它们可能有助于理解信息。
3. 通常会涵盖总体上太大而无法放入 LLM 上下文窗口的文档,并且会包含大量理解站点所不必要的信息。
## 示例
以下是 `llms.txt` 的一个示例,本例中是 FastHTML 项目使用的文件的简化版本(另请参阅完整版本):
```markdown
# FastHTML
重要说明:
- 尽管其部分 API 受到 FastAPI 的启发,但它*不*兼容 FastAPI 语法,并且不针对创建 API 服务。
- FastHTML 兼容 JS 原生的 Web 组件和任何 vanilla JS 库,但不兼容 React、Vue 或 Svelte。
## 文档
- [FastHTML 快速入门](https://fastht.ml/docs/tutorials/quickstart_for_web_devs.html.md):许多 FastHTML 功能的简要概述
- [HTMX 参考](https://github.com/bigskysoftware/htmx/blob/master/www/content/reference.md):所有 HTMX 属性、CSS 类、头部、事件、扩展、js 库方法和配置选项的简要描述
## 示例
- [待办事项列表应用程序](https://github.com/AnswerDotAI/fasthtml/blob/main/examples/adv_app.py):完整 CRUD 应用程序的详细演练,展示 FastHTML 和 HTMX 模式的惯用用法。
## 可选
- [Starlette 完整文档](https://gist.githubusercontent.com/jph00/809e4a4808d4510be0e3dc9565e9cbd3/raw/9b717589ca44cedc8aaf00b2b8cacef922964c0f/starlette-sml.md):对 FastHTML 有用的 Starlette 文档子集
```
阿凯广州
本文由 阿凯 审核,最后更新于 2026年7月2日
版权与免责声明:本文仅用于信息分享与交流,不构成任何形式的法律、投资、医疗或其他专业建议,也不构成对任何结果的承诺或保证。
文中提及的商标、品牌、Logo、产品名称及相关图片/素材,其权利归各自合法权利人所有。本站内容可能基于公开资料整理,亦可能使用 AI 辅助生成或润色;我们尽力确保准确与合规,但不保证完整性、时效性与适用性,请读者自行甄别并以官方信息为准。
若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。



