Stagehand 与 BrowserBase 调研:AI Agent 该不该引入 act/extract/observe 三原语?
Stagehand 是 BrowserBase 公司开源的 AI 浏览器自动化 SDK,GitHub 星标 12k+,MIT 许可。它基于 Playwright 构建,核心创新是将 AI 驱动的网页交互抽象为三个语义清晰的动词。而 BrowserBase 本身是一个云浏览器基础设施平台,提供远程 Chrome 实例管理、反检测和并发扩展能力。
核心三原语
Stagehand 的设计哲学极简:浏览器交互只有三种语义操作。
act(action) — AI 理解自然语言指令,定位元素并执行操作。你不再需要写 CSS 选择器,只需说"点击登录按钮"或"填写邮箱地址",LLM 会理解页面结构并执行。
extract(instruction) — AI 从页面提取结构化数据,返回 JSON。不再是正则匹配和 DOM 遍历,而是告诉 LLM "提取所有商品的价格和名称"。
observe() — AI 分析当前页面状态,返回可执行操作列表。这是"智能感知",让 Agent 知道当前页面能做什么。
底层实现上,Stagehand 不是用截图喂给 LLM,而是将 Playwright 的 DOM 快照 + ARIA 树序列化后发送给 LLM。这比截图方式更高效、更便宜,且信息更精确。对于大型 DOM,它还支持 chunking 分块处理。
竞品全景对比
| 维度 | Stagehand | agent-browser | browser-use | Playwright MCP | AgentQL |
|---|---|---|---|---|---|
| 语言 | TS/Node | Rust CLI | Python | TS (MCP协议) | Python/JS |
| AI 交互层 | act/extract/observe | LLM 驱动 CLI | LLM 驱动 | 无 AI 层 | AI 查询语言 |
| 底层引擎 | Playwright | CDP | Playwright | Playwright | Playwright |
| 自托管 | 可以(本地 Playwright) | 可以 | 可以 | 可以 | 部分 |
| 云服务依赖 | 可选 BrowserBase | 无 | 无 | 无 | 需 AgentQL API |
| 定价 | 开源+可选付费云 | 免费开源 | 免费开源 | 免费开源 | 付费 API |
关键发现:我们现有的 agent-browser (Rust CLI) 和 browser-use-setup (Python) 都缺少 Stagehand 的"AI 语义理解→动作执行"这一层抽象。它们依赖 LLM 理解整体任务,但执行层仍是传统的元素定位方式。
BrowserBase 云:付费但可绕过
BrowserBase 云的定价按浏览器会话时长计费,有有限的免费额度。核心卖点是远程托管 Chrome、反检测指纹、并发扩展。按我们的政策(付费 API = 自动跳过),BrowserBase 云不适用。
但关键点:Stagehand 本身可以脱离 BrowserBase 云,直接使用本地 Playwright 运行。 这意味着三原语模式可以零成本借鉴。
借鉴价值评估
高价值:act/extract/observe 设计模式
这是 Stagehand 最核心的创新。将 AI 浏览器交互从"LLM 理解任务 → 工具执行"的模糊流程,提炼为三个语义清晰的动词。我们现有技能都缺少这种"AI 理解→精确动作"的语义层。
可借鉴的技术点:
- DOM 快照 + ARIA 树作为 LLM 输入——比截图更高效、更便宜
- Chunk 策略处理大型 DOM——避免 token 超限
- 混合模式:AI 语义操作 + Playwright/CDP 精确操作——需要精确操作时仍可用原生 API
- MCP server 封装——方便 Agent 以标准协议调用
不需引入的部分:
- BrowserBase 云服务(付费,政策跳过)
- Stagehand npm 包本身(我们可自建模式)
- 对 OpenAI/Anthropic API 的依赖链(我们用本地 LLM)
结论与建议
Stagehand 的三原语模式值得借鉴但不必直接采用。理由:
- 核心模式本质是 DOM 快照 + LLM 推理 → CDP/Playwright 执行,实现不复杂
- 我们已有 CDP 技能基础(chrome-cdp-mcp-setup、agent-browser),可在此基础上自建语义层
- BrowserBase 云为付费服务,按政策自动跳过
- 直接依赖 Stagehand npm 包会引入不必要的 LLM API 依赖链
建议方案: 在现有 chrome-cdp-mcp-setup 或 agent-browser 技能之上,参考 Stagehand 的三原语设计,增加一层"AI 语义操作"wrapper。实现路径:DOM snapshot → LLM 分析 → CDP/Playwright 执行。零额外付费,零外部依赖,纯本地运行。
Sources:
- Stagehand: https://github.com/browserbase/stagehand (MIT, 12k+ stars)
- BrowserBase SDK: https://github.com/browserbase/sdk (MIT)
- BrowserBase 官网: https://www.browserbase.com/
- agent-browser: Hermes Agent 内置技能
- browser-use: https://github.com/browser-use/browser-use (MIT)
- Playwright MCP: https://github.com/anthropics/playwright-mcp (MIT)
- AgentQL: https://github.com/tinyfish-io/agentql (部分付费)