piapia123
zh

llms.txt 生成与校验

网络

所有处理都在浏览器本地完成,数据不上传服务器

输入
把文件拖到这里可直接载入
输出

`llms.txt` 是放在站点根目录的一个 Markdown 文件,用固定的几层结构告诉大模型「这个站点是干什么的、有哪些值得读的页面」。规范很短:`# 站点名`、`> 一句话简介`、然后若干 `## 章节`,每节下面是一串 `- [标题](地址): 说明`。 这个工具不猜你的站点有什么。 链接清单是你给的 —— 用大模型去「生成」站点结构只有一个后果:它会编出一些不存在的地址,而那份文件会被爬虫和模型当成真的读进去。所以这里做的是把清单整理成规范的样子,外加逐条校验。 校验比整理更要紧。 一份结构不对的 llms.txt 不会被任何人报错:浏览器不看它,搜索引擎不看它,只有读它的模型会静默地少读到东西。所以缺站点名、缺简介、链接不是绝对地址(模型不知道该拿哪里的域名去补)、地址写重了、章节里一条链接都没有 —— 这些都会指出来。 另外还有 `llms-full.txt`:格式一样,但把每页的正文也带上。它需要抓取你站点的内容,本工具不联网,所以不做 —— 需要的话,把各页正文拼进去即可。 ⚠️ llms.txt 与 robots.txt 不是一类东西,见下面的常见问题。

功能

  • 把站点名、简介与链接清单整理成符合规范的 llms.txt
  • `## Optional` 章节照规范保留 —— 它表示「实在放不下时可以跳过这些」
  • 逐条报出结构问题:缺站点名 / 缺简介 / 一条链接都没有
  • ⚠️ 报出不是绝对地址的链接 —— 读这份文件的是模型,它不知道该拿哪里的域名去补
  • 报出重复的地址,以及「章节里一条链接都没有」的空章节
  • 缺标题的链接会从地址推一个(`/blog/how-to-ship` → `How To Ship`),并明确报出来让你核对
  • 几种常见写法都认:`标题 | 地址`、`地址 | 说明`、已经是 `[标题](地址)` 的 Markdown 形式
  • 报告用注释包起来附在末尾,粘进文件里也不影响模型解析
  • 文件不上传、不经过任何服务器

使用方法

  1. 第一行写站点名(`# 名字` 或直接一行),第二行写 `> 简介`
  2. 用 `## 章节名` 分节,每节下面一行一条链接
  3. 链接可以只写地址,也可以写成 `标题 | 地址 | 说明`
  4. 结果实时出现;末尾的注释里会列出需要留意的地方

常见问题

llms.txt 和 robots.txt 有什么区别?
两件完全不同的事,别搞混。 `robots.txt` 是给爬虫看的许可文件:哪些路径允许抓、哪些不许,是站点在对自动化访问表态。`llms.txt` 是给读内容的模型看的导读文件:这个站点是什么、哪些页面值得读,是一份推荐清单。一个说「你可以/不可以来这里」,另一个说「来了先看这些」。两个文件放在同一个根目录下,互不影响,也都不需要对方存在。
为什么不做「自动生成」?
因为它必然要编。要「自动」生成链接清单,工具得知道你站点有哪些页面 —— 而它不联网,只能凭站点名去猜。猜出来的地址是假的,而这份文件的作用恰恰是被模型当真读进去:一个有 20 条链接、其中 8 条 404 的 llms.txt,比一份手写的 12 条准确清单差得多。所以这里只做整理与校验:内容由你给,工具负责让它符合规范、并把问题指出来。
链接为什么必须是绝对地址?
因为读这份文件的是模型,不是浏览器。浏览器看见 `/tool/json-format` 知道拿当前域名的去补,而模型拿到的是一段脱离站点的文本,没有「当前域名」这个概念 —— 它只能照抄那半截路径,那条链接就作废了。所以在 llms.txt 里写相对地址等于没写,工具会把这类链接逐条指出来。
`## Optional` 那一节是什么?
规范给的一个约定:实在放不下时,可以跳过这一节的内容。它的用途是让模型在上下文紧张时有个取舍的依据 —— 核心页面列在前面的章节里,锦上添花的(关于页、更新日志、订阅入口)放这一节。所以别把重点内容放进去,那是它唯一的作用。

相关工具