上周五晚上刷到 Sreenath M Menon 那篇博客,标题是“WebMCP: Teaching Your Website to Talk to AI Agents”。本来只是睡前随便划一划,结果读完前两段我就坐起来了。
倒也不是什么惊天动地的消息——就是一个拟议中的 Web 标准,Google Chrome 和 Microsoft Edge 两边的人一起在 W3C 那个 Web Machine Learning Community Group 里推的。但它的思路,怎么说呢,我盯着屏幕发了一会儿呆。
我先说说我为什么会发呆。
上个月我开始折腾一个小 demo,主题是“让 Claude 在网页上帮我操作点什么”。就那种,你给它一个任务,它在页面上找按钮、找输入框、一个个点过去。你们有没有干过这种事?就是那种——页面从上往下扫,靠视觉猜哪个是“提交”,哪个是“取消”,哪个是“仅此一次”。
结果当然是可以预见的。页面上那个“加载更多”按钮换了个样式,整个流程就崩了。现在回头看就是很蠢的一个小问题,但当时我确实对着终端怀疑了很久人生——「这到底是我代码不行,还是它这个视觉识别本身就脆?」
那篇文章说的就是这件事。它说现在 AI agent 操作网页靠的是屏幕抓取——解析 DOM、猜 UI 元素——页面布局一变就失效。
办法是:让网页自己开口说话。
我一开始没太看懂标题里那个“teaching your website to talk to AI agents”是什么意思。后来读了一遍,大意是网页通过一个 JavaScript API 登记一组结构化工具,AI agent 来了以后自己去枚举、去调用,不需要再去解析 DOM,也不需要猜按钮。相当于网页主动跟 AI 说:我有这些能力,你直接用。
大家是懂行的,我说到这里你们应该马上就反应过来了——对,就是把网页从“给人类看的画布”变成“给 Agent 用的 API”。
那天晚上我脑子里冒出的第一句话是:「这不就是在给 Agent 时代铺铁轨吗?」
然后第二句是:「但是谁来保证这条铁轨不会把车带沟里?」
文章里说,现在 WebMCP 在 Chrome 149 里做源试用,通过 chrome://flags/#enable-webmcp-testing 那个标志就能开。规范草案和代码在 GitHub 上,webmachinelearning/webmcp 这个仓库。Angular 已经加了对它的实验性支持,Google Chrome Labs 做了几个演示站,什么披萨制作、旅行搜索、餐厅预订。那位作者自己也搭了个叫 Career Copilot 的现场演示,注册了 13 个 WebMCP 工具,能干简历读取、岗位聚合、匹配评分、申请准备那一套东西。
而且文章里说 ChatGPT 的桌面浏览器已经支持 WebMCP 了,能自己调用页面声明的工具来完成用户描述的任务。
我看到这一句的时候,脑子里闪过一丝「哦,所以以后这些事真的会变成这样」,然后那股劲又泄回去了。因为我上周才刚为了让 Claude 在网页上少犯蠢,折腾到凌晨一点。
说一个可能有点偏的感想。
WebMCP 这套设计和“让 AI 更聪明地读懂网页”是完全不同的两条路。它不是想办法让 AI 增强视觉能力、能更好地理解一个页面长什么样,而是直接绕过这件事——让网页主动把自己的内部结构暴露给 AI。
你们细品一下这句话:不是让 AI 学会读心术,是让网页自己开口说“你可以怎么操作我”。
我倒不是说这条路一定对。就是觉得,作为一条思路,它比“继续训练视觉模型”要更……我也不知道该说什么词,更“基础设施”一点?更像是在为一种新的生态修路。你以后访问一个网站,可能有两套界面:一套给人看,一套给 Agent 用。人看到的还是那个花花绿绿的页面,而藏在下面的那层结构,随时等着机器来问。
上周五晚上我读到安全设计那一段的时候,心里倒是踏实了一点。
它要求工具注册必须同源、页面操作得在可见标签页里执行、敏感动作可以弹用户确认对话框、不可信内容得有提示标记。这些听着都还算有底线。但我也很清楚,从“设计上要用户确认”到“实际上 AI 不会想办法绕过确认”,中间隔着多少次 prompt injection 的翻车,我们这几个月已经见识不少了。
说实话,“同源环境”我能看懂是防止别的域乱注册;“可见标签页执行”我理解是让用户看到 Agent 在干什么;但“为不可信内容提供提示标记”这个,我读了半天也没太确定它到底标记的是什么、标记给谁看。这块对我来说还挺夹生的,等我哪天有空再钻。
写到这儿我突然意识到一件事,我可能无意中在拿“网页”这个标准去衡量一个本来就不是给网页设计的草案,也不太对。
WebMCP 的思路本质上是:让网站开发者自己选择要不要接入这个协议、接入得多深,让网站与 AI 之间的交互从“被猜”变成“被提供”。有更多的确定性,但同时也把信任成本转移到了开发者身上。
一个网站愿意登记工具,前提是——这帮我省事,别害我出事。但安全上的“软约束”在 agent 那里是不是真的软不住,这个我不确定。毕竟是我自己写 prompt 的时候,只要把语气绕得够客气,模型是真的会默认相信页面内容的。这个习惯放在 agent 上会不会有问题?我现在没答案,先记在这里。
好吧,说点不那么大的。
作为一个还在学的人,我是没法判断 WebMCP 到底会不会成。它现在还在 W3C 社区组草稿阶段,不是正式标准,也没进入标准轨道。也就是说,它可能被改得面目全非,也可能根本没人用就凉了。我甚至说不清楚这个草案和正式标准之间到底隔着多少道流程。
但我能确认的是:这条思路让我第一次觉得,AI 操作网页这件事,是可以不用那么脆弱的。
过去我的应对方式是追着它跑,它摔了我就把那条路修一修,它换个姿势再摔,我再修。现在有人跟我说,别修路了,让路自己告诉你它通向哪儿。
我可能还是没办法判断这是不是正确答案。但作为一个长期处在“不知道自己在干嘛”状态里的人,我第一次对“以后这个东西会变成什么样”有了一点模糊的方向感。这感觉算不上什么突破,可能还有一点小题大做,但对我来说,它已经足够值得记下来。
——毕竟上周那个崩溃的晚上,我可是连“不然换个方向吧”这种话都差点说出口了。
