百站实测:Agent 能否找到关键服务信息
作者让浏览 Agent 从百家 SaaS 与开发工具网站首页出发,在最多十二步内查找价格、取消订阅方式和 API 限流信息,分别找到九十家、六十二家和六十三家的答案。测试公开运行记录,衡量的是限定条件下的信息可发现性。
完整中文译文
本文最初发表于 salihk.dev。
越来越多的网页正在被替他人办事的 Agent 阅读:比如比较工具的浏览器 Agent,或是查询价格的研究助手。所以,我想弄清楚一个简单的问题:如果一个 AI Agent 来到你的网站首页,它能找到客户会问的信息吗?
我挑选了 100 个知名的 SaaS 和开发者工具网站,让一个浏览 Agent 针对每个网站回答三个问题:
- 价格:最便宜的付费套餐,每月多少钱?
- 取消订阅:客户如何取消付费订阅?
- 速率限制:公共 API 有什么速率限制?
规则是:从首页出发,只能阅读和点击,不能登录、不能输入文字、不能填写表单,最多操作 12 步,并引用答案所在页面的原文。每次运行都有录屏。
结果已发布在一个公开页面上,其中包含每次运行的录屏。
这项测试衡量的是答案能否被找到,而不是答案是否存在。“未找到”表示这个 Agent 没能在 12 步内找到答案。正如下文所示,有时候,答案所在的页面明明就在眼前。
价格很容易找,除非页面把 Agent 拦住了
有 5 个网站没有可供查找的固定价格套餐:Replicate、AssemblyAI 和 Stytch 按用量收费,Lemon Squeezy 按交易收费,Make 按积分收费。在其余 95 个网站中,Agent 在 90 个网站上找到了价格,通常只需两步:点击“Pricing”,然后阅读。
有 4 个网站通过机器人验证拦住了它。在 OpenAI、Canva 和 Box 上,Agent 的操作完全正确:它找到了价格链接,点击进入,但价格页面返回了 Cloudflare 的“Verify you are human”。Pipedrive 的价格链接则直接跳到了一个 Cloudflare 页面,上面写着“Sorry, you have been blocked”。我们不会尝试绕过这些验证,所以这些情况记为“被拦截”。
▶ 观看录屏——OpenAI:从首页点击“Try ChatGPT”,再点击“See plans and pricing”,随后遇到机器人验证。
这些公司当然有权作出这样的选择。但这也意味着,当有人问 Agent“ChatGPT Plus 多少钱?”时,它无法从官方来源读取答案。
唯一真正漏掉价格的是 Heroku。Agent 打开了 heroku.com/pricing,阅读、滚动,然后离开。Eco dyno 每月 5 美元,价格就在这个页面上,但藏在一个默认折叠的表格里,必须点击“Show Cedar Dynos”才会展开。Agent 读取的是屏幕上显示的内容,而这个价格当时并没有显示出来。
取消订阅才是难题
100 个网站中,只找到了 62 个。而且,没找到答案的网站并不是我预想的那些。
GitHub 有一个官方页面,叫作“Downgrading your account's plan”。Vercel 的 Pro 套餐文档里有一个“Downgrading to Hobby”小节。Netlify 则有“Change your pricing plan”。但每个网站各尝试了 5 次,Agent 都没能到达这些页面。
看看它去了哪里。在 GitHub 上:先看价格,再点“Contact Sales”,进入支持请求页面,返回价格页面,进入帮助中心,然后步数耗尽。在 Vercel 上:价格页面、知识库、销售联系页面,再回到知识库。在 Netlify 上:支持页面、价格页面、知识库、联系页面。
▶ 观看录屏——GitHub:12 步都耗在价格、销售和支持页面之间。降级套餐的页面其实在文档里。
这里的共同规律是:价格页面讲的是如何加入,而退出的方法藏在文档里,距离首页能链接到的内容还隔着一两层。人会搜索“github cancel plan”,然后找到答案。而像这次测试中这样从首页开始浏览的 Agent,就找不到。
表现好的网站,往往会在价格页面附近放置账单帮助链接。Figma、Notion、Shopify 和 Linear 的答案都在 4 到 8 步内被找到,引用来源是它们的帮助中心和文档。
API 速率限制:公开,还是不公开
100 个网站中,找到了 63 个。这里的“未找到”混合了两种情况:有些限制是公开的,但藏在文档深处;有些限制则根本不公开。比如 Mistral,只有登录控制台后才能看到限制。文档放在独立网站上,也会增加查找难度:Trello 的限制写在 developer.atlassian.com 上,Agent 直到后续尝试才到达那里。我还没有手动梳理全部 35 个未找到答案的案例,所以暂时无法区分它们分别属于哪种情况。
“找到”的答案准确吗?
我随机抽查了 15 个答案,对照来源页面核验,每项任务抽查 5 个。其中 13 个完全正确,2 个部分正确:对于 Cursor,Agent 引用的是何时取消订阅,而不是如何取消;对于 Confluence,它带回来的是 Jira 的速率限制页面。没有任何答案是编造的。
浏览器使用由 Playwright 驱动的 Chromium,分辨率为 1280×800。两个模型分工协作:TypeSafe 的 Jev 根据页面上的链接和按钮,决定点击什么;当它认为答案可能就在当前页面时,由 Gemini Flash-Lite 模型读取页面,并附带原文引用写出答案。它只能点击、滚动、后退和放弃,除此之外什么都做不了。它遵守 robots.txt,并在 user agent 中表明身份(AgentArenaBot/0.1)。
每个网站的每项任务先运行一次。没找到答案的,再运行两次。随后,我修复了 Agent 的两个问题:在 Cookie 横幅上点击“reject”,以及当遮罩层吞掉点击事件时,直接访问链接地址。修复后,对仍未找到答案的任务再运行两次。也就是说,最多尝试 5 次。只要其中任何一次找到了答案,就算找到。整个实验在 10 月 16 日至 19 日进行,共运行了 788 次。
按这些模型的付费价格计算,整个实验会花费 2.62 美元,平均每次约三分之一美分。我实际使用的是免费额度。
这项测试无法告诉你什么
一个 Agent、一周时间、桌面浏览器,从伊斯坦布尔运行。价格会随所在地变化:monday.com 向我显示的是每个席位 9 欧元,你看到的可能是 9 美元。能力更强的 Agent,或者获准使用搜索引擎的 Agent,会找到更多答案。一个网站如果明天修改页面,得分也可能不同。而在价格页面上拦截机器人,对一家公司来说,完全可能是合理的决定。这项测试只衡量了在某一种情况下,获取这些信息需要付出多大代价。
数据,以及你的网站
每个网站、任务、答案、引用、来源和录屏,都可以在结果页面上找到,同时也提供 JSON 和 CSV 格式。数据和 Agent 的代码放在 GitHub 上。如果有关你公司的结果有误,每一行都有一个“Wrong? Tell us”链接,我会核查并更正。
如果你想知道自己的网站表现如何,可以留下 URL。我会运行同样的三项任务,并把结果和录屏发给你。目前这些测试由我手动运行,因此可能需要几天时间。
如果想采取进一步行动,你可以考虑屏蔽此人和/或举报滥用行为。