上篇文章讲了无头浏览器和CDP协议的基础。这篇做个横向对比,帮助你在实际项目中做出选择。
目前有两个最主流的 AI 浏览器操作方案:Playwright 和 agent-browser(Vercel Labs)。两者都能操作浏览器,但设计思路和适用场景有明显差异。
说明:以下命令整理自 agent-browser 文档,源码中未经实测验证:
fillwaitwait-forextractcontentrefreshlist-tabsswitch-tab
open-new-tabchatcookiessessionconnectkillsetstealthhoverselect
源码中实测可用的命令:openclicksnapshotscreenshotclosescrollbackevaltypepressconsoleerrors
一、两个方案是什么
Playwright:微软出品的浏览器自动化框架,支持 Python/JavaScript/TypeScript,用 CDP 协议操作浏览器,社区成熟,文档丰富。
agent-browser:Vercel Labs 今年推出的 Rust 原生 CLI 工具,用 CDP 操作浏览器,无其他依赖,自带云端服务集成。
┌─────────────────────────────────────────────────────────────────┐│ Playwright ││ Python / JavaScript ││ 90.3k stars(2026-06),Apache-2.0 │└─────────────────────────────────────────────────────────┘┌─────────────────────────────────────────────────────────────────┐│ agent-browser ││ Rust CLI(npm 安装) ││ 35.3k stars,Apache-2.0(2026-06) │└─────────────────────────────────────────────────────────┘二、功能对比
| 支持语言 | ||
| 安装方式 | ||
| 浏览器依赖 | ||
| 浏览器类型 | ||
| CDP协议 | ||
| 云端服务 | ||
| stealth模式 | ||
| 截图 | ||
| Accessibility树 | ||
| Cookie操作 | ||
| 多标签页 | ||
| 并发控制 | ||
| 文档完善度 | ||
| 社区规模 |
三、架构对比
Playwright 架构
┌─────────────────────────────────────────┐│ 你的代码(Python / JavaScript) │└─────────────────┬───────────────────────┘ │ ▼┌─────────────────────────────────────────┐│ Playwright SDK ││ - 浏览器管理(launch/close) ││ - 元素定位(selector/xpath) ││ - 上下文管理(context) ││ - 等待/重试逻辑 │└─────────────────┬───────────────────────┘ │ CDP ▼┌─────────────────────────────────────────┐│ Chromium(本地或远程) │└─────────────────────────────────────────┘●SDK 层厚:提供了完整的 API 抽象,用起来方便
●协议层透传:底层还是 CDP,但封装得很好
●本地/远程皆可:可以连本地浏览器,也可以连remote-debugging-port
agent-browser 架构
┌─────────────────────────────────────────┐│ 你的代码(任何语言) ││ 调用 agent-browser CLI │└─────────────────┬───────────────────────┘ │ ▼┌─────────────────────────────────────────┐│ agent-browser(Rust原生CLI) ││ - 命令行接口(snapshot/click/fill) ││ - CDP直连 │└─────────────────┬───────────────────────┘ │ CDP ▼┌─────────────────────────────────────────┐│ Chromium(本地或云端) ││ - Browserless / Browserbase ││ - Browser Use / Kernel / AgentCore │└─────────────────────────────────────────┘●CLI 层薄:Rust 写的,执行快,无运行时依赖
●云端原生:-p 参数直接切换云服务提供商
●通过子进程通信:其他语言通过 spawn 调用 CLI
四、云端服务支持对比
这是两者差距最大的地方。
Playwright 云端支持
# Playwright 需要自己接云服务,示例Browserbasefrom playwright.sync_api import sync_playwrightwith sync_playwright() as p: browser = p.chromium.connect_over_cdp("wss://browser.cloud/playwright") page = browser.new_page() # ...需要自己处理:
●WebSocket 连接管理
●云服务的认证和会话保持
●重连和错误处理
agent-browser 云端支持
# 一行切换云服务提供商export BROWSER_USE_API_KEY="***"agent-browser -p browseruse open https://example.com原生支持 5 种云服务:
| Browserless | |
| Browserbase | |
| browser-use | |
| Kernel | |
| AgentCore |
对于云端 Agent 来说,这个差异很大——Playwright 要自己造轮子,agent-browser 拿过来就能用。
五、安装和使用体验
Playwright 安装
# Pythonpip install playwrightplaywright install chromium# 或 Node.jsnpm install playwrightnpx playwright install chromium首次安装要下载浏览器,大约 150MB。
agent-browser 安装
# 一条命令npm install -g agent-browseragent-browser install # 自动下载Chrome# Homebrew(macOS)brew install agent-browser# 或 Cargo(Rust)cargo install agent-browser安装体验差异:
●agent-browser 安装更快(Rust 二进制),但需要 Node.js 24+
●Playwright 安装稍慢,但语言选择更多(Python/JS/Java/C#/Go)
六、日常使用对比
Playwright 操作示例
from playwright.sync_api import sync_playwrightwith sync_playwright() as p: browser = p.chromium.launch(headless=True) context = browser.new_context() page = context.new_page() page.goto("https://example.com") page.fill("#username", "user") page.fill("#password", "pass") page.click("#submit") page.wait_for_load_state("networkidle") page.screenshot("result.png") browser.close()agent-browser 操作示例
# 一系列CLI命令agent-browser open https://example.comagent-browser fill @e2 "user" # @e2 是snapshot返回的refagent-browser fill @e3 "pass"agent-browser click @e4agent-browser wait 3agent-browser screenshot result.pngagent-browser close或者用聊天模式(AI直理解): ⚠️待实测
agent-browser open https://example.comagent-browser chat "帮我填用户名user,密码pass,然后登录"设计思路差异:
●Playwright 是库,用代码控制,适合复杂逻辑
●agent-browser 是工具,用命令控制,适合 AI 调用
七、适用场景对比
选 Playwright 的情况
✅ 需要跨浏览器(Chromium + Firefox + WebKit)✅ 团队有Python/JavaScript技术栈✅ 需要复杂操作逻辑和错误处理✅ 需要深度定制(如自己实现stealth)✅ 已有项目在用,不想切换技术栈✅ 需要在Jupyter/REPL里交互式操作选 agent-browser 的情况
✅ 云端AI Agent(Serverless / K8s / OpenSandbox)✅ 需要快速接云端浏览器服务✅ 用Claude/Cursor等Agent直接操作浏览器✅ 追求轻量、启动快、无依赖✅ 团队是Node.js生态✅ 需要profile持久化(登录态复用)✅ 只需要 Chromium,不需要Firefox/WebKit八、快速决策树
你的场景?│├── 用什么语言?│ ├── 非Python/JS → agent-browser(CLI通用)│ └── Python/JS → 继续判断│├── 需要多浏览器(Firefox/WebKit)?│ ├── 需要 → Playwright ✅│ └── 不需要 → 继续判断│├── 主要在哪运行?│ ├── 本地开发 / 自己的服务器│ │ ├── 复杂业务逻辑 → Playwright ✅│ │ └── AI Agent 调用 → agent-browser ✅│ ││ └── 云端Serverless / K8s│ ├── 追求快速集成 → agent-browser ✅│ └── 追求成熟稳定 → Playwright ✅│└── 需要接哪个云服务? ├── Browserless/Browserbase/Browser Use/Kernel/AgentCore │ └── agent-browser(原生支持)✅ └── 其他方案 → Playwright(自己接SDK)九、关键区别总结
| 设计目标 | ||
| 技术栈 | ||
| 学习曲线 | ||
| 云端集成 | ||
| stealth | ||
| profile持久化 | ||
| 维护状态 | ||
| 许可证 |
十、今天的判断
如果你在选型阶段,核心判断就一句话:
云端 AI Agent 优先考虑 agent-browser(轻量+云端集成好),复杂项目或需要多浏览器选 Playwright(成熟+生态完善)。
两者也可以混用——本地开发用 Playwright 调试,云端部署用 agent-browser 执行。
下期预告
路线选定之后,下一篇开始真正的实操——agent-browser快速上手,让AI学会"点击"。
相关笔记
●[[09-AI_Agent浏览器操作框架]] — 感知→理解→规划→执行→验证
夜雨聆风