让文档站对 AI Agent 更友好
现在的文档不再只是给浏览器里的真人读。编码 Agent、AI 搜索、聊天工具都会直接抓取文档。如果你的文档站不好发现、不好解析,结果通常就是:- 找资料更慢
- token 消耗更高
- 回答更容易跑偏
Content-Signal 的采用率大约只有 4%,Markdown 内容协商大约只有 3.9%,而 API Catalog、MCP Server Card 这类新标准更少见。也就是说,哪怕只做一小步,文档站也可能明显比平均水平更适合 Agent。
详见英文版页面:Agent-ready docs (English)
先把基础卫生做好
在上 AI 专用能力之前,先把普通 Web 基础打牢:- 维护好
robots.txt - 维护好
sitemap.xml - 页面标题和描述写清楚
- URL 稳定,不要乱改
- 不要让 Agent 只能从“目录页 → 目录页 → 正文页”这样绕远路
提供 llms.txt
/llms.txt 可以理解成“给 LLM 看的目录页”。它和
sitemap.xml 不一样,不应该无脑列出全站所有页面,而应该做成一个高价值阅读清单。
它要帮助 Agent 迅速回答三个问题:
- 这是什么站?
- 重点文档在哪?
- 接下来该抓哪些 Markdown 版本的页面?
一个简单示例
站点很大时怎么做
不要把几千个链接全塞进根目录的llms.txt。
更实用的做法是:
- 根目录保留一个简短的
llms.txt - 每个一级栏目再各自生成一个
llms.txt - 根文件只负责指向这些子目录索引
直接输出 Markdown
对 Agent 来说,Markdown 通常比完整 HTML 更友好。Cloudflare 在官方实践里明确强调:Markdown 版本会更省 token,也更容易被模型完整消费。 推荐两个方式:
- 支持
Accept: text/markdown- 同一个页面,通过请求头返回 Markdown
- 提供
/index.md这样的 URL 回退- 因为不是所有 Agent 默认都会带
Accept: text/markdown
- 因为不是所有 Agent 默认都会带
明确声明 AI 访问策略
robots.txt 依然是第一层访问规则。如果你想把 AI 的用途拆得更细,可以增加
Content-Signal。
例如:
search:搜索索引与搜索结果ai-input:推理时读取内容,例如 grounding 或 RAGai-train:训练或微调模型
只有在必要时再做协议发现
不是每个文档站都需要 API/MCP 发现能力。如果你的网站只是公开文档,做到“内容可发现 + 内容好读取”通常就够了。 当你的站点还暴露了 API、工具或可执行能力时,再考虑补这些:
/.well-known/api-catalog/.well-known/mcp/server-card.json- Web Bot Auth(当你真的需要识别 bot 身份时)
大型文档站要优化结构,而不是只堆页面
很多站的问题不是“没有文档”,而是“Agent 不知道先看哪一页”。 建议:- 在
llms.txt里优先放正文页,不是只有目录页 - 对语义价值很低的索引页,不一定要放进
llms.txt - 标题、描述、路径命名都尽量语义化
llms.txt里尽量链接 Markdown 版页面,而不是 HTML 页
对 Agent 来说,好的 metadata 能直接决定它第一跳抓哪一页。
按阶段落地最省事
推荐这样推进:- 先修好
robots.txt、sitemap.xml、标题、描述 - 再加
llms.txt - 再补 Markdown 输出:
Accept: text/markdown或/index.md - 需要时再补
Content-Signal - 站点真的有 API 或 MCP,再做协议发现
怎么检查是否真的变好了
建议自动化和手工一起看:- 用
https://isitagentready.com跑一次 - 手工测试:
- 让一个 AI 工具只基于你的文档回答一个具体问题
- 看它是快速命中目标页,还是在目录页和低价值页面里来回打转
