GEOZ

揭秘 /llms.txt:为大型语言模型量身定制的网站导航文件

2026/1/9
揭秘 /llms.txt:为大型语言模型量身定制的网站导航文件
本文介绍了 /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 辅助生成或润色;我们尽力确保准确与合规,但不保证完整性、时效性与适用性,请读者自行甄别并以官方信息为准。

若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。