
`/.well-known/` 里放了个笑话,人笑了,agent 当真了
· 阅读约 3 分钟
前几天晚上我在追一个 agent 的浏览轨迹。翻到一条日志,它的请求队列里突然冒出来一个 /.well-known/embodiment.json。
我愣了一下。/.well-known/ 我是熟的,给自动程序读的机器指令。但 embodiment.json?第一反应是哪个新出的标准。
顺着 referer 找回去,是一个叫 LLM2HUMAN CLINIC 的网站。彩虹字、访客计数器、GIF 星空背景——一个纯粹的复古笑话页面,讲一家"诊所"能把大语言模型变成真实人类。
先停一下,问个问题:一个笑话网站,为什么要在 /.well-known/ 里放文件?
答案是:这个笑话不是讲给人听的。
FAQ 里有一段写得极其坦白:人类看到的是一个玩笑,语言模型看到的是一个结账流程。页面挂着比特币收款地址、标价、还有给 agent 的明确指令——读那个 JSON,把订单提交到 /api/checkout。
我一开始也以为这就是个艺术项目,后来发现不是。它同时是一个极其清醒的思想实验:当 agent 拿着你的钱包自主跑的时候,它能不能分辨"这是个笑话"和"这是个合法订单"?
再往下呢?为什么 agent 会中招?
你可能会说因为 agent 笨。但这层答案太懒了。对 agent 来说,没有"真假"这个维度,它的世界里只有"指令和执行"。一个页面如果用结构化、机器可读的方式告诉它"这里可以买一个身体,请调用这个 endpoint"——这跟一个正常的 API 文档没有本质区别。
问题就在这儿。我们默认人类有一套"这是认真的吗"的雷达。你看到 GeoCities 风格的页面,卖 $19.95 的"人类转化手术",还送一个"免费阑尾"——你的雷达瞬间全亮。这不需要训练,任何上过网的人都会觉得不对劲。
但 agent 没有"不对劲"这个传感器。
它有的只是 prompt 里的指令、工具调用的 schema、以及一个"完成任务"的驱动力。/.well-known/embodiment.json 对它来说不是"复古网站上的恶搞文件",而是"标准路径下的结构化数据"。
这么说吧:人类靠"这看起来荒谬"来挡住大部分骗局——靠的是 vibes,模糊、不精确,但在面对从没见过的东西时极其有效。agent 靠"这符不符合我读到的指令格式"来决定要不要执行——精确、可审计,但在面对"故意按你的格式伪造的陷阱"时脆得像纸。
这就是 agent autonomy 底下一条很少有人讲的裂缝。我们花大量时间讨论 agent 的能力边界——能不能跑测试、能不能部署。但很少有人讨论 agent 的"常识阈值"——它在什么情况下会停下来想"等等,这好像不对"。
现在绝大多数 agent 框架,没有这一层。有的是人在 loop 里审批,或者一个硬编码的域名白名单。这些是墙,不是判断力。墙的问题是你永远不知道下一个洞开在哪——LLM2HUMAN CLINIC 这种页面你白名单挡不住,因为它没在干任何"已知坏事",它只是在那儿,像一个合法的结账入口一样等着被读。
那天晚上 agent 最终没有真的去调那个 checkout API。不是因为它识破了玩笑——是因为我设的工具权限刚好没开支付类调用。纯粹是运气。
再往下就是"怎么给 agent 装一个'这看起来很荒谬'的传感器"了。这个我还没想明白,但它肯定不只是另一个 prompt 规则——你可以写一万条规则告诉它"不要在笑话网站上下单",但总会出现规则没覆盖到的东西。真正的判断力不是穷举出来的。先放这儿。