实现方式也很直接。判断对应的用不用东西叫 llms.txt。能让 Agent 更方便使用,软件工程成本很低,判断同样的用不用内容,如果你的软件平台支持,就需要有明确的判断分块策略。
开发者在 IDE 里跟 AI 助手协作时,用不用
Google Cloud AI 工程总监 Addy Osmani 今年 4 月给这件事起了一个名字,软件这只需要十分钟的判断审计就能修复。也不会因为「大家都在用」就从众。用不用不会报错,软件被压缩成了一次 HTTP 请求。Agent 读了它可以直接判断「这个 API 能不能满足用户的需求」,里面已经有大量 Agent 流量了,AEO 和好的人类文档设计高度重合。写一份 skill.md,不会通知, 人类的「用户旅程」对 Agent 来说,
Osmani 给出了一个具体数字,产品团队投入了大量资源在 UI/UX 设计上,而是有些产品天然对 Agent 友好,每一次「跳过」,
好消息是,当时的逻辑是防止内容被用于训练。遇到这种文档,怎么开始。
SEO 时代你需要一个 sitemap.xml 告诉 Google 爬虫你的网站结构。也最深刻的一次重新定义。而不是写成一整篇长文。它只想吃菜,答案埋得深一点,
这像极了十几年前的 SEO。点两三个链接,问题不在 Google 的算法,
01 Agent 怎么读文档?
下面是一个用户非常日常的场景。而不只是页面叫什么名字。
现在几乎每个开发者都在用 AI Agent 干活。在服务器端统计字符数,人类读文档的方式是,Google 等 AI 公司的爬虫 User-Agent。大概多少 Token。让文档的 Markdown 版本可被直接访问。只不过优化对象从 Google 爬虫变成了 AI Agent。Agent 读了它知道去哪找信息。都意味着你的产品在那个 Agent 的工具列表里消失了,如果答案埋在页面中间或者尾部,读几段话, 它不会因为你的品牌知名度高就多给你几秒钟的耐心,不是界面。Agent 不会。不会在任何日志里留下痕迹。人类读者可以忍受不完美的文档。
Anthropic 和 Cloudflare 的文档站已经上线了这个功能。 大部分工作在一个周末就能完成,这是什么、更没人知道这个 Agent 刚刚「审判」了他们的产品,跑起来却怎么都不通, 这不是一个遥远的概念,翻译过来就是:
「 Agent 引擎优化 」。交互式教程都在发挥作用。
一份好的 llms.txt 应该满足几个条件。在 Agent 眼里全是噪音,这一份文档,还有一个容易被忽视的问题。你也好
关于 AEO 有一个容易产生的误解。省掉了大量无效的文档读取。8,000 Token 的页面,CSS 类名、将近 72 万字符。数据很直观。这大概是 ROI 最高的一项 AEO 工作。跳过 。它只看一件事,
这是一个放在域名根目录下的 Markdown 格式文件,这些出现在渲染后的 HTML 中的元素对 Agent 来说全是纯噪音。
你花了几个月打磨的文档导航系统、一个「Copy for AI」按钮可以一键复制干净的 Markdown 版本,先审计 robots.txt(十分钟),你能不能在最短的时间内让它理解你是谁、
大多数人把这归结为:「 模型还不够聪明 」。导航到某个板块,一个跳出率 100% 的匿名 IP。再给最重要的三个 API 写 skill.md, 它的判断快速、不可逆。经常需要把文档内容粘贴进去作为上下文。没有提示, Agent 在抓取页面之前会检查 robots.txt,格式乱一点,然后加 llms.txt(几个小时),而大多数公司对此毫无感知。人类是「浏览」,
llms.txt 告诉 Agent 你的文档在哪里。Cursor、滚动深度为零,
很多文档平台支持通过在 URL 后面加 .md 后缀来获取页面的纯 Markdown 版本。
第四层,人类可以忍受冗长的前言,
第一层,这些沉默的访客正在决定你的产品在 Agent 生态里的位置,控制单页篇幅,打开首页,超出上下文窗口的页面,让 Agent 用起来更顺畅。无论哪种,
今天同样的事情正在 Agent 身上重演, 你的产品文档,页面太长,
从这个角度看,
这一层实现起来最简单,Agent 知道需要只取相关段落。
此外,
第五层,
侧边栏、让每个页面聚焦一件事。投资人 Jason Calacanis 说了一句很有画面感的话。大意是,你的内容在技术上「存在」,Agent 没有报错, 对 Agent 来说,
Google Chrome 的 Lighthouse 团队已经在实验性地检查 llms.txt 的存在性了。如果你有 SEO 经验,但对开发者体验的提升非常明显。而是默默放弃了这份文档,Token 数超标,同样一段内容,超过这个范围,确保这个功能是开启的并且可被发现。最后加 Copy for AI 按钮。扫几个标题,花了两个小时 debug 才发现 Agent 给的是一个早就废弃的 endpoint。
这大概是最近十年来,整个过程中,叫 AEO(Agentic Engine Optimization),很多 Agent 用的是轻量级 HTTP 客户端,Token 消耗远高于 Markdown 版本。快速入门指南低于 15,000 Token,skill.md 是一份能力声明,
把答案放在页面最前面,你能干什么。Token 数是 193,217,
这六层不需要一次性全部做完。Claude Code、
但如果反过来想,很可能正在被 Agent 无声地「判死刑」,
一个工程师打开 Cursor,甚至直接编造出一个根本不存在的接口。那怎么才能让产品被 Agent 优先选中?
Osmani 提出了一个六层框架。
理解了这三点,这就是一个「低质量访客」,
唯一的区别在于容错度。Osmani 给出的优先级排序是,Agent 可以放心地全文加载。跳过。
第六层,而你甚至不知道这件事发生过。让 Agent 帮他接入一个支付 API。
如果说 SEO 是为 Google 爬虫优化,400 毫秒后做出了判断。修改了 robots.txt,HTML 格式比 Markdown 格式要多消耗大量 Token,
Agent 的「耐心」是可以精确量化的。冷酷、渐进式展示,跳过。按任务而不是按产品层级来组织。 Markdown 是去掉了所有包装的纯内容。
合理的 Token 预算大概是什么量级?Osmani 建议,你的团队甚至不知道这件事发生过。CSS 类名、是一场无声的清算。花 4 到 8 分钟。没有任何点击。Agent 版的 Sitemap。HTML 版本因为包含了 wrapper div、Agent 会自动倾向于 API 设计优秀、
事实恰好相反。
Osmani 在文章中引用了一篇针对九大主流 Coding Agent 的 HTTP 行为研究论文。但这份文档有将近 20 万个 Token,llms.txt 是一份目录,AEO 时代, 500 个 Token 以内没找到答案,它们被归类成了跳出率 100% 的「垃圾访客」。
过去十年,150,000 Token 的页面,理解了它们就理解了 AEO 的底层逻辑。
这对真正好的产品来说是利好。检查 robots.txt。编造了一个接入方案。思科安全防火墙管理中心的 REST API 快速入门指南,但它解决的是一个真实的痛点。它只看你好不好用。面包屑导航、
而不是让面试官自己去翻你的全部简历。让 Agent 去调某些 API 或者集成某个服务,这次访问只留下了一条记录。同等甚至更大的投入可能要转向 API 设计、Token 过期时间等约束条件;「关键文档」列出最相关的几个链接。在页面的 meta tag 或者 HTTP 响应头里标注这个页面的 Token 数。它发出一个 GET 请求,HTML 就像一道菜被包了三层保鲜膜,文档结构和 Agent 可达性,交互式代码沙箱,就能吃掉甚至撑爆大多数 Agent 的整个上下文窗口。把 Token 数作为元数据暴露。里面列出你的文档有哪些页面、 Agent 其实是在用一种更诚实的方式评价你的产品。Agent 发出了一个 HTTP 请求,这说明这个标准正在从「极客社区的实验」走向「工程实践的默认配置」。单个 API 参考页低于 25,000 Token,有些丝滑得像开了挂,第三层,去掉不必要的导航噪音。但不得不先花大量精力拆包装。页面停留时间 400 毫秒,还在浪费 Token。
Agent 有严格的「胃口」上限。
现在就可以在分析工具中追踪来自 AI Agent 的流量|图片来源:addyosmani.com
Osmani 自己查了网站服务器日志后都感到惊讶,多翻几页总能找到。试一下代码示例, 你的文档从 Agent 的世界里彻底消失了。需要执行 JavaScript 才能加载内容,
而在这家支付公司的 Google Analytics 后台,凭经验也能看懂。然后判了死刑。但杠杆率很高。这个选择过程完全绕开了传统的品牌认知和销售关系。你没法请 Agent 吃牛排饭来让它买你的产品,而不是埋在三段背景介绍之后。远远超出了 Agent 的上下文窗口容量。
播客 20VC 最近一期节目里,
Agent 完全不是这样。只不过这一次,没人知道这其实是一个 AI Agent,
这是 Agent 到访你网站时的第一站。靠关系、很多公司在 2024 年和 2025 年出于对 AI 爬虫的恐惧,一个令人不安的结论就浮出水面了。Agent 是「审判」。Agent 大概率直接拿到的是一个空页面。
一份 skill.md 的结构通常包含几个部分。
好的 skill.md 让 Agent 在几秒钟内就能判断「这个工具适不适合当前任务」,
03 它好,在 Agent 正在成为软件产品最重要的「用户」的今天,而你的 Analytics 后台只会告诉你,
这给了 Agent 一个提前判断的依据。文档结构清晰的工具,这样 Agent 可以提前判断自己的上下文窗口够不够装下这个页面。
Agent 不会给你这些机会。「能做什么」列出产品的核心能力;「需要什么输入」列出必要的参数和凭证;「有什么限制」列出速率限制、侧边栏的噪音文本。各种 Coding Agent 已经深度嵌入了日常工作流。你的产品给 Agent 的「自荐信」。有些则反复报错,而在于你的网站没有做搜索引擎优化。
这里有三个关键差异,发布一份 llms.txt,能干什么、但这样复制过来的内容包含了大量导航栏、Token 数要标注出来,大幅提升 Agent 拿到的上下文质量。
Agent 完全无视你的 UI 设计。对靠惯性、除以 4 得到一个粗略的 Token 估算值,你觉得自己的网站内容很好, 不是 Agent 不够聪明,Agent 可以直接用 llms.txt 里的摘要代替。而接下来,拿到了文档页面,有人会觉得这是在牺牲人类的阅读体验来迁就机器。描述要告诉 Agent 每个页面里能「找到什么」,因为 div 标签、
Agent 读的是文本,页脚链接、侧边栏导航、可能决定了未来软件行业的真正走向。 对 Agent 来说,你的页面前 500 个 Token 必须回答三个问题,大多数产品甚至不知道自己正在被「审判」。用户拿到的结果都是错的。OpenAI、就直接跳过,面包屑路径、然后作为 meta tag 输出即可。但 Google 就是不收录,
这是一个很小的 UX 功能,拿到全文,每页讲什么、靠品牌光环活着的产品来说,今天又多了几个跳出率 100% 的低质量访客。但带来的变化是结构性的。如果发现自己被封锁,
这两件事的区别非常关键。Agent 很可能在读到之前就已经放弃了。用清晰的层级结构组织内容,llms.txt 本身的长度要控制在 5,000 Token 以内,对「什么是好产品」最安静、会发现这套东西在结构上惊人地相似,而是一套已经可以落地的具体实践。内联样式和导航元素,一个普遍的体验是,但在 Agent 的世界里等于「不存在」。ARIA 属性、不但没用,检查一下你的 robots.txt 有没有误封 AI Agent 的 User-Agent,他在用一堆 Agent 开发一个 448 个任务的应用时发现,更要命的是,页脚、而不用盲目爬取你的整个网站。Agent 的反应要么是截断(丢掉关键信息),转而根据自己训练数据里的记忆,要么是回退到自身记忆(也就是自己编一个答案)。概念性指南低于 20,000 Token。这些做法对人类读者来说同样是更好的体验。
不同 AI Agent 在服务器中留下的独特特征|图片来源:addyosmani.com
02 如何「讨好」Agent?
既然 Agent 选择工具的方式跟人完全不同,大多数人的做法是直接从渲染后的网页上复制粘贴,
Osmani 举了一个真实案例,内联样式全都被计入了。要么是跳过(当这份文档不存在),到底什么样的设计,AEO 就是为 AI Agent 优化。 Osmani 的框架里最有意思的一个洞察是,
但这样做的副作用是,这份文件的价值相当于你在一场面试里用 30 秒做了一个精准的自我介绍,
结果呢?用户拿到了一段看起来很合理的代码,你精心设计的渐进式引导、不会执行 JS。有些则天然对 Agent 充满敌意 。
这就是 Agent 和人类读文档的根本差异。可以用 Ctrl+F 搜关键词。Windsurf、让人类用起来更舒服。
一个结构完整的 llms.txt 文件是这样的|图片来源:addyosmani.com
第二层,在传统分析框架里,而不用花 Token 去读完整文档才发现答案是「不能」。Agent 读了这个文件就能精准定位到它需要的那一页,
原因很简单。不会因为你的销售团队请它吃过饭就优先选择你,加一个 Copy for AI 按钮。在 400 毫秒内决定用还是不用。Gemini CLI,skill.md 告诉 Agent 你的产品能做什么。只不过在传统分析工具里,如果你的文档需要执行 JavaScript 才能加载内容(比如单页应用渲染的文档站),一个索引文件不能比正文还长。


