如何优化 llms.txt
把扁平的网址列表整理成清晰、有优先级的站点地图,帮助 AI 系统先找到最重要的 Talizen 页面。
Talizen 会自动提供 /llms.txt,并为每个被索引的页面生成 Markdown 版本。URL 清单与站点地图使用同一数据源,根目录的 /llms.ts 负责控制这些 URL 以什么结构呈现给 AI。
为什么结构很重要
未配置时,所有页面会进入一个按字母排序的 Pages 分组。这是安全的默认行为,但会让价格页、关键实现文档和次要法律页面获得相同的优先级。
更好的文件应把高价值产品页与文档放在前面,将相关内容分组,并移除重复、过期、实际应保持私有,或信息过弱、可能降低 AI 回答准确性的页面。
标题与摘要不需要配置:它们取自站点的 metadata.title 与 metadata.description,把 metadata 写好就会自动同步。另外 /public/llms.txt 永远不会被访问到,平台始终提供自己的版本。
推荐配置
在项目根目录新建 /llms.ts,默认导出一个函数(可以是 async)。返回一个对象即声明结构,由平台负责枚举页面并排版。下面的配置优先展示核心页面和 AI 建站文档,将博客集中分组,并把法律内容标记为可选内容。
// /llms.ts
export default function llms() {
return {
sections: [
{ name: '核心页面', pages: ['/', '/pricing', '/templates', '/figma-to-website'] },
{ name: '帮助文档', pages: ['/docs/*'] },
{ name: '博客', pages: ['/blog/*'] },
{ name: 'Optional', pages: ['/solutions/*', '/contact'] },
],
exclude: [
'/cmstest',
'/newfile',
],
}
}
分组名称会原样输出,因此应使用能让目标 AI 理解的标签。Optional 具有特殊的排列语义,通常用于 AI 在上下文有限时可以跳过的链接,因此必须保留这个英文名称。
匹配规则
精确路径
/price 只匹配 /price。前导斜杠可以省略,但保留它更清晰。
前缀通配符
末尾的 /* 会匹配前缀页面及其全部子路径。/docs/ai/* 匹配 /docs/ai 和 /docs/ai/guide,但不匹配 /docs/ai-tools。
首次匹配优先
页面会归入第一个匹配的分组。把范围窄、优先级高的分组放在宽泛规则之前。
排除优先
系统会先检查 exclude。即使页面同时匹配某个分组,只要命中排除规则就不会输出。
在同一分组内,pages 中模式的顺序是主要排序依据;同一模式匹配到的 URL 按字母排序。空分组不会渲染。
没有匹配任何配置分组的页面会保留在自动生成的 Pages 分组中。如果存在 Optional,这个兜底分组会插入到它之前,否则放在最后。若希望直接丢弃这些未归类页面,设置 includeUnmatched: false。
需要手工指定链接时,把分组写成 { name, links },其中每条链接是 { name, url }。这种分组不参与模式匹配,可以和 pages 分组混在同一个 sections 数组里——精选部分手写,长尾交给平台。
补充站点上下文
使用 details 编写一段简短的 Markdown 说明,让 AI 在打开任何页面前先获得必要背景。内容应事实明确、长期稳定且紧凑,包括产品是什么、哪部分文档最权威,以及重要术语。
return {
details: `Talizen 是一个可视化与 AI 建站工具。
实现需求时优先使用 AI 建站文档。
产品与价格事实以核心页面为准。`,
sections: [/* ... */],
}
生成文件的开头已经包含站点标题和 metadata.description。不要在 details 中逐字重复,应把空间留给能改善内容选择与理解的上下文。
完全接管
返回字符串而不是对象时,这段字符串就是 /llms.txt 的全文,标题、摘要和每一条链接都由你决定。入参 ctx 仍然提供平台的页面枚举,因此不必从零开始。
export default function llms(ctx) {
const docs = ctx.pages.filter((p) => p.path.startsWith('/docs/'))
return [
`# ${ctx.metadata.title}`,
'',
'## 文档',
'',
...docs.map((p) => `- [${p.path}](${p.url})`),
'',
].join('\n')
}
ctx 提供 origin、pages(每项含 path、url 与可选的 lastModified)以及 metadata。完整类型见 talizen 包中的 LLMsFile 与 LLMsContext。
验证清单
- 打开部署域名上的
/llms.txt,确认最重要的分组排在第一位。 - 打开多个生成的
.md链接,包括首页的/index.md,确认没有浏览器 UI 时内容仍然完整可用。 - 确认通配符没有意外吞掉更具体的分组。
- 确认被排除的 URL 不存在,未分类页面仍保留在
Pages中。 - 保持
Optional在最后,使上下文受限的 AI 可以安全降低其优先级。 - 若
/llms.ts执行出错或返回值形态不对,该端点会直接返回 5xx,不会静默退回默认输出——看到 5xx 就说明这个文件本身有问题。