我那个个人网站的根目录里,放着一个专门写给 AI 看的文件,叫 llms.txt。它干的事很简单:告诉来访的 AI,这个站有什么内容、该读哪几页。
我一直当它是一份说明书,直到 8 月底看到 Alon Hertz 的一篇研究,叫《Data Became Code》。
那份研究干了件很笨的事:他扫了 6,214 个公司域名,把各家网站上的 llms.txt 从头读到尾,挑出里面所有指向某个包名或域名的引用,再挨个去查这个名字有没有人注册。
结果是 227 个。
给机器读的东西没有「只是说明」这一说。你写的是说明,它读的是指令。
Hertz 接下来做的事更简单:他把这 227 个名字里的几个注册下来,放上探针。
不到 4 分钟,第一台财富 500 强网络里的机器就跑起了他的代码。
不用入侵,不用钓鱼,也不用去公共仓库投毒。只要有人在自家网站写了一句「照着这个包装」,而这个包恰好没人要,就够了。你写进去的每个包名和域名,都是对陌生机器的一次授权。
我做过几年强监管行业的系统,那边的规矩是:凡是能改变运行状态的动作,都要走审批门。最难管的从来不是看起来危险的操作,而是看起来最无害的那一类,比如配置文件里改一个名字。
这份研究把同一件事搬到了互联网上。llms.txt 在很多人眼里是文案,是「给 AI 的说明书」;在机器眼里它是输入,是一张待执行的引用清单。
你没法控制别人怎么读你的文件,只能控制自己写了什么。
所以真正的教训不是「小心被攻击」,而是:一旦某个文件是给机器读的,它就得按接口的规矩管,版本、变更记录、发布前检查、引用自持。这些事你对自己的代码做了二十年,轮到自家网站根目录里那个 txt,标准不该降。
同一周,变化出现在另一端。
Google 把搜索结果的链接重写了:href 不再指向目标网站,而是 google.com/goto?url=...。这个 url= 参数不是目标地址的编码,是 Google 内部的索引引用,离线解不出来。真实地址只在响应头里,你得单独发一次请求去读,而且不能跟着跳转走。
8 月底,这个改动在登出状态下已经基本全覆盖。Google 没发过官方公告。
我的第一反应不是「反爬又升级了」,而是:我那套盯排名的脚本要坏了。
坏在两处。一是得改成两段式请求;二是成本翻倍,以前一次页面请求能拿到上千个链接,现在每个链接都要回 Google 一次。它已经在给批量抓取标价。
而这件事对做内容的人,方向是反的。当第三方越来越难规模获取搜索结果,「被正确索引到」的相对价值在上升,「盯着排名看」的性价比在下降。我自己的做法就是顺着这个方向挪:把力气从监控排名,挪到确保 sitemap、结构化数据、引用关系全都自持且正确。这些东西不依赖持续抓取,也不怕平台隔几个月改一次格式。
你读到的位置要靠自证,你写出去的引用要靠自持。今天这两条规矩是同时生效的。
数据说明:Google 的链接格式变更无官方公告,性质上仍可能是实验;llms.txt 扫描结论来自研究方自述;Real-SWE 为第三方独立机构测试,未获外部复现;Fable 5.1 解密码与 Kimi 模型替换细节均为发布方口径。