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


