Google 刚刚解决了 AI 智能体最大的局限性

AAI LABS
Internet TechnologyBusiness NewsComputing/Software

Transcript

00:00:00人工智能代理(AI Agents)现在已经开始融入我们生活的方方面面。
00:00:03而其中最主要的发生领域之一就是浏览器。
00:00:06每家主流人工智能公司都意识到,浏览器是每个人每天都会使用的
00:00:11唯一工具。
00:00:12那么,为什么不把 AI 放入浏览器呢?
00:00:14但事实是,它们现在的表现都很糟糕。
00:00:15而且这不仅仅是优化的问题。
00:00:17这其中存在一个根本性的缺陷,无论如何优化都无法解决。
00:00:20不过,谷歌与微软合作,刚刚发布了一项名为 WebMCP 的技术。
00:00:24它并没有试图让 AI 代理更好地使用网站,而是让网站更擅长
00:00:29与 AI 代理沟通。
00:00:30这是一个完全不同的思路。
00:00:32它所实现的功能是我们从未见过的。
00:00:35这是一个在本地服务器上运行的简单 HTML 页面。
00:00:38打开扩展程序标签页,我们可以看到 WebMCP 扩展。
00:00:41打开它,在网站名称下方,我们看到一个工具:BookTable(订位)。
00:00:45我们将这个 WebMCP 桥接器连接到了 Claude Code,并告知它我们已经
00:00:49打开了一个带有可用 WebMCP 工具的餐厅预订表单。
00:00:52我们给它的任务是预订一个两人桌,并提供日期、姓名和特殊要求。
00:00:57所有这些字段都在表单中显示。
00:00:59它确认了日期,使用了网站提供的 WebMCP 工具,填写了字段,
00:01:03并成功完成了预订。
00:01:06目前,AI 代理主要有两种方式来识别屏幕上的内容。
00:01:09第一种方式是基于视觉的。
00:01:11代理会对整个页面进行截图,标注它能看到的每一个元素,
00:01:15然后将图像传给模型,由模型尝试判断该点击哪里。
00:01:19第二种方式是 DOM 解析。
00:01:21代理会提取页面的原始 HTML 代码。
00:01:24如果你曾在任何网站上打开过“检查元素”,你就会知道那是什么样子。
00:01:28成千上万行代码。
00:01:29代理会通读所有代码,并尝试识别出正确的按钮。
00:01:33这两种方法都有一个相同的根本问题。
00:01:35它们都是非确定性的。
00:01:36代理每一次的操作其实都只是在进行“最佳猜测”。
00:01:39这一切之所以无法稳定运行,是因为整个互联网都是为了
00:01:43人类的眼睛而构建的。
00:01:45每个网站都默认是人在浏览。
00:01:47它没有为机器提供结构化信息。
00:01:48因此,无论模型多么出色,每个代理都不得不努力去解读一些
00:01:53从未设计给机器解读的东西。
00:01:55有了 WebMCP,不再是代理去揣摩你的网站,而是你的网站
00:02:00将其可用操作注册为工具。
00:02:01当代理访问页面时,它不需要猜测。
00:02:04它只需读取可用工具并直接调用它们。
00:02:07目前,WebMCP 仅供早期预览。
00:02:10随着代理化网络(Agentic Web)的发展,网站也需要随之进化。
00:02:13正如你所见,通过定义这些工具,我们赋予了代理更好的方式
00:02:18与我们的站点互动。
00:02:19之前的演示之所以成功,是因为那是一个简单的 HTML 表单。
00:02:21但大多数真实的网站并没有那么简单。
00:02:23因此,WebMCP 根据你的工作需求提供了两种不同的方案。
00:02:28有两种方式可以让代理控制浏览器。
00:02:31声明式 API 适用于简单的流程,比如你刚刚看到的 HTML 表单。
00:02:35命令式 API 适用于具有多个页面的全规模 Web 应用,这些应用
00:02:40需要我们在后续深入探讨的一些额外实现。
00:02:43目前还没有官方文档,但他们在 Google Chrome Labs 中
00:02:48提供了一个 WebMCP 工具库,包含两个演示,且只有一个是在线托管的。
00:02:52一个是简单的航班搜索演示,另一个是官方的 Marvel 上下文工具检查器扩展。
00:02:56安装后,无论哪个网站实现了 WebMCP,你都能通过扩展检测到
00:03:01这些工具,并且还能实现一些其他酷炫的功能。
00:03:05工具的输入模式(Schema)会直接显示在那里。
00:03:07目前该页面上只有一个工具:航班搜索工具。
00:03:10他们提供了两种使用方式。
00:03:12你可以提供自定义输入参数让 AI 模型填写,或者
00:03:16设置你的 Gemini API 密钥,直接用简单的英语给出用户提示,
00:03:21页面就会根据提示被控制。
00:03:22目前它有一些默认输入。
00:03:24我们更换了这些参数,它确实搜索了航班并得到了大量结果。
00:03:28我再次返回,这次 WebMCP 旅游网站提供了四个可用工具,
00:03:32其中三个现在是可以应用的筛选器。
00:03:35页面的输入参数也发生了变化。
00:03:37我添加了另一个参数,它给了我们一个筛选设置已更新的通知。
00:03:41虽然没有符合这些筛选条件的航班,但所有的设置都已应用。
00:03:44在这个过程中,我们不停地在 Zen 浏览器和 Chrome 之间切换,
00:03:48这是因为虽然 WebMCP 是作为任何浏览器都能使用的开放协议发布的,
00:03:54但目前它仅支持 Chrome 的 Canary 版本。
00:03:55直到他们发布正式标准,所有人才能使用。
00:03:58这就是目前官方工具的进展。
00:04:01没有文档,只有两个演示,仅支持 Chrome Canary,而且你无法直接
00:04:05配合 Claude Code 使用,因为它实际上是为浏览器代理设计的。
00:04:09于是我们找到了这个自定义的 WebMCP 桥接器,你可以安装在系统中,
00:04:14它会为你提供一个 MCP 和一个扩展程序。
00:04:16正是这个工具让 Claude Code 能够使用 WebMCP,并在任何网站上
00:04:22进行导航和使用其提供的工具。
00:04:23为了演示网站是如何具体实现的,我们先从较简单的方法开始。
00:04:27在声明式 API 中(即你看到的 HTML 表单),你真正需要做的
00:04:31只是在 HTML 表单中声明三样东西:工具名称、工具描述和工具参数
00:04:36描述。
00:04:37你不需要深入研究它们。
00:04:39你只需要确保你的代理将它们添加进去即可。
00:04:41我们根据 WebMCP 仓库中的演示逆向工程制作了两个指南,
00:04:46并让 Claude Code 访问了这些指南。
00:04:47在这个过程中,我们实际上遇到了一些常见问题,并不得不
00:04:51沿途修正这些指南。
00:04:53这两份指南都可以在 AI Labs Pro 中找到,那是我们的社区,
00:04:57提供即插即用的模板。
00:04:58你可以直接在本项目以及之前所有视频的项目中使用这些模板。
00:05:01核心教学都在这个视频里,但如果你想要实际的文件,
00:05:05链接就在描述栏中。
00:05:06如果你的代理添加了这些声明,剩下的就交给浏览器了,
00:05:10浏览器会从 HTML 中读取它们。
00:05:12第二种方式是命令式 API,适用于需要更复杂交互和
00:05:17JavaScript 执行的情况。
00:05:18我们初始化了一个 Next.js 应用,将 Next.js 指南交给 Claude Code,
00:05:23这就足以让它完成实现了。
00:05:24在 React 应用中,它会在 library 文件夹里创建一个新文件,
00:05:29在那里声明网站需要的所有工具。
00:05:30这些是所有的函数,而这些是它们的定义。
00:05:33但由于这些 Web 应用可能变得非常庞大,甚至拥有超过 100 个工具,
00:05:38我们就会遇到和 Claude Code 一样的问题,即上下文过载
00:05:41导致整个系统崩溃。
00:05:43因此,与其加载一个网站的所有工具,不如只加载
00:05:47单个页面所拥有的工具。
00:05:48这个概念被称为“上下文加载”。
00:05:50这就是我们让 Claude Code 制作的 Next.js 应用。
00:05:53这是一个功能完整的、带有后端实现的小型演示应用。
00:05:57现在我们在主页上,这个站点只有 3 个可用工具。
00:06:01当我进入购物车页面,这次我们有了 4 个工具,而且名称也变了。
00:06:05工具的可用性会根据你所在的页面而变化。
00:06:09这就是注册函数发挥作用的地方。
00:06:11每当你进入一个页面(如首页),它就会运行 register home tools 函数,
00:06:15当你离开时,它会运行 unregister home tools。
00:06:18根据哪些工具属于该页面,它会进行相应的注册和注销。
00:06:23这就是为什么在这种情况下它不光依赖浏览器,代码本身也
00:06:27处理了集成工作。
00:06:28我们目前并没有像谷歌设想的那样,通过浏览器自带的代理
00:06:32来使用 WebMCP。
00:06:34我们实际上是使用了一个桥接器将 Claude Code 连接到 WebMCP,
00:06:39并以此来控制网站。
00:06:40如果你想更深入地挖掘 Claude Code 本身,我们还有一段关于
00:06:4410 种最新进阶使用方法的视频。
00:06:46这个桥接器是一个社区项目,配合命令式 API 使用时,它存在一个问题:
00:06:51在这个 MCP 服务器上,工具切换功能并不太稳定。
00:06:54当我打开网站时,我们正处于结账页面,并在那里初始化了
00:06:58Claude Code 会话。
00:06:59当我们要求它导航回首页时,它无法识别首页上的可用工具。
00:07:03(空白)
00:07:04当我们在首页进入产品页面时,虽然看到了“加入购物车”按钮,
00:07:08但当代理在产品页面上时,它却无法真正看到那个按钮。
00:07:11所以我们不得不手动将商品添加到购物车来完成这个演示。
00:07:14但当我们要求它完成结账时,它自动填写了详细信息,下单
00:07:18并完成了整个购物流程。
00:07:21这是目前这个 MCP 的一个限制,这也把我们引向了另一个观点。
00:07:25WebMCP 是开源的,各大浏览器厂商和科技公司都被列为参与者。
00:07:30但目前,唯一支持它的浏览器是 Chrome Canary,而预期的代理
00:07:34是 Gemini,即谷歌直接内置在浏览器中的 AI。
00:07:38如果你现在是一名网站所有者并实现了 WebMCP,那么今天唯一能
00:07:42原生使用你工具的代理就是 Gemini。
00:07:44Claude Code 需要一个社区构建的桥接器,而且在上下文加载生效时会失效。
00:07:49所有非谷歌代理目前都处于劣势。
00:07:51那么 Claude 能够赶上吗?
00:07:52当然,他们有自己的浏览器扩展。
00:07:55既然那也是一个浏览器代理,它也有可能像 Gemini 一样
00:07:59去发现这些工具。
00:08:00但问题是,会有多少人刻意去安装一个 Claude 浏览器扩展,
00:08:04而不是直接使用 Chrome 里自带的 Gemini 呢?
00:08:08Chrome 拥有数十亿用户,他们不需要安装任何东西。
00:08:11在我们看来,谷歌并不是在排挤任何人。
00:08:13他们只是在利用自己现有的架构和受众群体。
00:08:17一个在他们拥有的浏览器中运行最出色、配合他们预装的代理
00:08:21使用的开放标准。
00:08:22但这并不意味着你不应该实现它。
00:08:23标准本身确实非常有用,让你的网站具备“代理可访问性”是明智的,
00:08:28无论哪个代理最先受益。
00:08:30如果你打算实现这个功能,有几件事值得注意。
00:08:33规范建议每个页面的工具不要超过 50 个。
00:08:36它的目的不是暴露你的整个应用程序。
00:08:38它是为了聚焦于特定的操作,即用户在该页面上真正想做的那些事。
00:08:42(空白)
00:08:43工具描述的重要性也超乎你的想象。
00:08:46代理通过阅读这些描述来决定调用哪个工具。
00:08:49模糊的描述意味着代理会选错工具,或者干脆跳过它。
00:08:53写描述时,就像在给一个从未见过你网站的人解释操作一样。
00:08:57而且这仍然处于实验阶段。
00:08:58API 层面还会发生变化。
00:09:00Chrome 146 将于 3 月发布,届时将提供更广泛的支持。
00:09:03但在那之前,这只是一个开发者测试版。
00:09:05先不要将其部署到生产环境。
00:09:06如果你关注本频道,你就会知道紧跟 AI 的步伐需要坚实的技术基础。
00:09:11这就是为什么我非常喜欢 Brilliant。
00:09:13这是一个互动学习平台,拥有来自麻省理工、哈佛和斯坦福等
00:09:17世界一流教师精心编写的实战课程。
00:09:19我强烈推荐他们的“聚类与分类”以及“AI 如何运作”课程。
00:09:23它们能教你发现隐藏的模式,并以互动的方式理解大语言模型
00:09:27背后的逻辑。
00:09:28正如你在屏幕上的目录中所见,他们提供了极其丰富的课程,
00:09:33涵盖从基础数学到高级数据科学和计算机科学的所有内容。
00:09:37Brilliant 还为我们的观众提供年度高级订阅 8 折优惠,
00:09:42让你每天可以无限次访问平台上的所有内容。
00:09:44想要在 Brilliant 上免费学习整整 30 天,请访问 brilliant.org/ailabs,
00:09:50扫描屏幕上的二维码,或点击描述栏中的链接。
00:09:53今天就开始养成真正的学习习惯,通过 Brilliant 将你的技能提升
00:09:56到一个新高度。
00:09:57视频到这里就结束了。
00:09:59如果你想支持本频道并帮助我们继续制作这样的视频,
00:10:03你可以点击下方的 Super Thanks(超级感谢)按钮。
00:10:06一如既往,感谢观看,我们下期再见。

Key Takeaway

WebMCP 通过让网站主动向 AI 代理提供结构化工具接口,解决了传统 AI 网页导航中“靠猜”的根本缺陷,标志着互联网向“代理友好型”进化的开端。

Highlights

Google 与微软合作推出 WebMCP 技术,旨在改变 AI 代理与网站交互的根本方式。

当前 AI 代理依赖视觉截图或 DOM 解析来识别页面,这具有非确定性且容易出错。

WebMCP 允许网站将操作注册为“工具”,让 AI 直接调用而非猜测,提高了操作的稳定性。

该技术提供声明式 API(简单表单)和命令式 API(复杂应用)两种实现方案。

WebMCP 目前仅支持 Chrome Canary 版本,且预计将深度集成谷歌自家的 Gemini 代理。

开发者实现时需注意“上下文加载”,即根据不同页面动态注册和注销相关工具以避免上下文过载。

WebMCP 规范建议每页工具数量不超过 50 个,且工具描述的准确性对代理的执行至关重要。

Timeline

AI 智能体在浏览器中的局限性

视频开头指出了当前 AI 智能体在浏览器中表现不佳的现状,并强调这是一个无法通过简单优化解决的根本性缺陷。目前代理主要依靠基于视觉的截图标注或复杂的 DOM 树解析来理解网页,这两种方法都具有高度的非确定性,导致操作频繁出错。核心问题在于互联网是为人类眼睛设计的,缺乏机器可直接理解的结构化信息。WebMCP 的出现改变了这一逻辑,它不再让 AI 去揣摩页面,而是让网站主动注册可用工具。通过简单的餐厅订位演示,展示了 WebMCP 如何让 Claude Code 准确无误地完成表单填写和预订任务。

WebMCP 的两种实现方案与演示

由于真实网站的复杂程度各异,WebMCP 提供了声明式 API 和命令式 API 两种方案。声明式 API 适用于简单的流程,如 HTML 表单;而命令式 API 则针对具有多页面交互的大规模 Web 应用。视频展示了 Chrome Labs 中的航班搜索演示,说明用户可以通过自定义参数或 Gemini API 密钥直接用自然语言控制页面。目前该技术仍处于早期预览阶段,仅支持 Chrome Canary 版本,且缺乏官方文档。为了让 Claude Code 也能使用这项技术,团队引入了一个社区构建的自定义桥接器,实现了跨平台的工具检测与导航。

技术实现细节:声明式与命令式接口

在技术实现层面,声明式 API 只需要在 HTML 表单中定义工具名称、描述和参数描述,浏览器会自动读取并暴露给代理。对于更复杂的 React 或 Next.js 应用,则需要使用命令式 API 在代码中声明函数及其定义。为了防止复杂应用中的“上下文过载”导致系统崩溃,视频引入了“上下文加载”的概念。这意味着代理仅加载当前页面所需的工具,通过在进入或离开页面时运行注册和注销函数来实现动态管理。视频展示了一个完整的功能演示应用,证明了工具可用性随页面切换而变化的灵活性。

现有生态挑战与谷歌的竞争优势

尽管 WebMCP 是开放协议,但目前的生态分布显示出明显的向谷歌倾斜的趋势。目前的自定义桥接器在处理命令式 API 的工具切换时仍不稳定,且 Chrome Canary 默认内置的代理是 Gemini。这意味着如果不使用额外的社区工具,其他 AI 代理如 Claude 在现有的 WebMCP 实现中处于竞争劣势。谷歌正在利用其庞大的 Chrome 用户群和现有的浏览器架构,推动一个对其原生代理最有利的开放标准。然而,作者认为网站所有者仍应实现这一标准,因为让网站具备“代理可访问性”是未来互联网发展的必然趋势。

开发者建议与行业学习资源

视频最后为打算尝试 WebMCP 的开发者提供了几点关键建议,包括将每页工具数量控制在 50 个以内以保持聚焦。作者特别强调了工具描述的重要性,因为模糊的描述会导致 AI 误判或忽略操作,描述应像对新手解释一样清晰。此外,由于 API 仍处于实验阶段,且 Chrome 146 版本要在 3 月才会提供更广泛支持,建议开发者暂时不要将其部署到生产环境。视频随后推荐了互动学习平台 Brilliant,旨在帮助观众通过系统课程建立坚实的 AI 和数据科学基础。最后,作者感谢了观众的支持,并鼓励通过超级感谢功能帮助频道持续产出高质量内容。

Community Posts

View all posts