先把两者定位讲清
由外部程序远程驱动浏览器的协议。Selenium、Puppeteer、Playwright 基于它打开标签页、点击按钮、监听网络、抓取 DOM。浏览器是被操控的客户端。
由网站自身向浏览器内 AI Agent 暴露能力的协议。网站声明"我支持搜索 / 加购 / 下单",Agent 直接调用结构化工具,而不再模拟鼠标点界面。
用一个比喻立刻区分
BiDi = 浏览器的遥控器
外部脚本通过 WebSocket 连入浏览器,双向通信。浏览器把自己当成被远程操控的设备,吐出底层事件——DOM 变化、网络请求、控制台日志。
WebMCP = 网站给 AI 开的业务 API 门
网站主动注册一组结构化工具,浏览器里的 AI Agent 以函数调用方式触发业务动作。绕开脆弱的 DOM 模拟,进入语义层操作。
八个维度并列对照
| 维度 | WebDriver BiDi | WebMCP |
|---|---|---|
| 协议定位 | 浏览器自动化协议(外部 → 浏览器) | 网页与 AI Agent 的通信协议(网站 → 浏览器内 Agent) |
| 主要使用者 | 测试工程师 · 爬虫 · RPA · DevOps | 网站开发者 · AI Agent · 浏览器内置 AI |
| 控制粒度 | 底层:DOM、网络、JS 执行、Cookies、事件 | 业务:网站自定义的"工具"(下单 · 搜索 · 收藏) |
| 连接方向 | 外部进程经 WebSocket 连入浏览器,双向通信 | 同源页面经 JS API 向浏览器内 Agent 声明能力 |
| 需要网站配合? | 不需要——黑盒驱动任意网站 | 需要——网站主动暴露 WebMCP 工具 |
| 标准化进度 | W3C 已有规范,Chrome / Firefox / Edge 都在实现 | Chrome 146 早期预览,Chrome 149 Origin Trial,仅 Chrome |
| 成熟度 | 较成熟,可生产使用 STABLE | 实验/原型期 EXPERIMENTAL |
| 取代关系 | 逐步取代 CDP(Chrome 专有)与 WebDriver Classic | 不取代 BiDi,补全 AI ↔ 网站语义层的桥梁 |
它们之间真正的联系
同一个时代趋势
都在追求"让程序更可靠地操作浏览器"——只是面对的"程序"不同:一个是脚本,一个是 AI。
都推崇结构化与双向通信
双向、事件驱动、结构化交互是两者共有的设计哲学,目的都是替换脆弱的"模拟点击"。
可组合在一栈中
外部 Agent 经 BiDi 启动并接管浏览器,浏览器内 AI 再经 WebMCP 调用网站工具,形成上下两层。
背后都有 Chrome 团队推动
Google / Chrome 在 W3C 与 Origin Trial 中同时推进两条协议,但定位互不冲突。
典型适用场景各四例
Use With BiDi
- 端到端自动化测试(Selenium / Playwright / Puppeteer)
- 动态渲染网站的爬虫抓取与数据采集
- RPA 流程:跨网站批量表单填写与任务执行
- 浏览器层性能监测、网络拦截与调试工具
Use With WebMCP
- 电商网站让 AI 直接调用"搜索 / 加购 / 下单"工具
- SaaS 后台暴露"创建工单 / 导出报表"给浏览器 Agent
- 替代脆弱的 DOM 模拟点击,让 AI 操作稳定可解释
- 网站可控地"对 AI 友好"——定义哪些动作允许被代理
代码风格速览
// 外部脚本经 WebSocket 连接浏览器 const session = await chromium.connect({ wsEndpoint: 'ws://localhost:9222' }); const page = await session.newPage(); await page.goto('https://example.com'); // BiDi 核心:双向 + 事件驱动 page.on('console', msg => { console.log(msg.text()); }); await page.click('button#buy'); await page.waitForResponse('**/checkout');
// 网站端:注册一个可被 Agent 调用的工具 navigator.modelContext.registerTool({ name: 'addToCart', description: '将商品加入购物车', inputSchema: { type: 'object', properties: { productId: { type: 'string' } }, required: ['productId'] }, async handler({ productId }) { await cart.add(productId); return { ok: true }; } });
注:以上为示意写法,真实 API 形态以 Chrome 官方 Origin Trial 文档为准。
最新进展时间线
W3C 浏览器测试工作组启动 WebDriver BiDi 规范,目标统一 WebDriver Classic 与 Chrome DevTools Protocol。
Chrome / Firefox / Edge 陆续实现 BiDi,Puppeteer 与 Selenium 4 接入,生态从规范走向工程。
Playwright 也开始迁移至 BiDi。CDP 仍作 Chrome 高级功能补充,但默认协议地位被动摇。
Google 公布 WebMCP 提案与早期预览,定义 Declarative 与 Imperative 两条 API 路径。
Google 正式将 WebMCP 纳入 AI on Chrome 战略,定位为 AI Agent 时代的网页交互标准。
开发者可在生产域名注册启用 WebMCP,仍仅限 Chrome;跨浏览器支持列入后续路线图。
BiDi 接近替代 CDP 成为跨浏览器自动化默认协议;WebMCP 仍是 Chrome 内的实验标准,等待其他厂商跟进。
该选哪个:四个判断
未来 2–3 年,BiDi 将稳坐跨浏览器自动化的事实标准;WebMCP 的命运取决于 Safari 与 Firefox 是否跟进。
参考来源
顺着下面这些一手资料继续读,状态以 Chrome 官方文档为准: