桃子桃子快讯
返回首页
工具

Stagehand:用 AI 解析自然语言指令的开源浏览器自动化框架

Browserbase 开源 Stagehand 框架,用 AI 将自然语言指令解析为页面元素,由确定性代码执行,兼顾抗…

2026.07.21 · 周二4 分钟阅读

Stagehand 是 Browserbase 开源的浏览器自动化 SDK,GitHub Star 数已超过 2.3 万,采用 MIT 协议发布。它尝试在传统自动化与全自主 AI 代理之间走第三条路:开发者写自然语言指令,AI 在运行时将其解析为真实页面元素,再交给确定性代码完成点击、填写等操作。这一设计目标是让自动化脚本既能承受前端改版,又保持可预测、可回放。

核心设计:指令而非选择器

传统浏览器自动化框架(如 Playwright、Selenium、Puppeteer)依赖硬编码 CSS 选择器或 XPath,速度快、可重现,但前端一旦改名或重构,脚本就会静默失效。相比之下,全自主 AI 代理以目标驱动(如「购买耳机」),抗改版能力强,但每次执行路径不可控、调试困难,且每步都消耗模型 Token。

Stagehand 的取舍在于把每个浏览器动作拆成两半:AI 负责「决定操作什么」,确定性代码负责「实际执行」。AI 部分吸收页面变化,代码部分保持行为精确。这样既不像硬编码那样脆弱,也不像黑盒代理那样难以追踪。

四个动词的 API

Stagehand 的接口刻意收窄为四个动词,覆盖浏览器自动化的常见需求:

  • act():执行单步动作,对应一条原子指令,例如「点击登录按钮」。文档强调指令要保持原子,避免「登录并跳转到设置页」这类复合描述。
  • extract():按开发者定义的 Zod Schema 从页面抽取结构化数据,输入是混乱的 DOM,输出是类型化对象;模型返回结果会先经过 Schema 校验,形状不符直接抛错而非悄悄出错。
  • observe():侦察页面,返回可执行动作候选(含选择器与方法),适合在执行不可逆操作前先确认。
  • agent():以目标驱动的多步自主工作流,支持常规 LLM,也支持专门的 computer-use 模型(如 google/gemini-2.5-computer-use-preview-10-2025)。

前三个是「精度工具」,最后一个是「自主工具」。两者共用同一底层能力,开发者可以根据场景在确定性与自由度之间切换。

缓存、成本与安全

为降低重复调用的开销,Stagehand 会缓存 AI 对同一指令的解析结果,让常见路径不必每次都问模型。对于敏感字段,框架提供占位符机制,例如 act("type %password% into the password field", { variables: { password: ... } }),避免明文凭据进入 prompt。

整体而言,Stagehand 把「指令」作为自动化的基本单位,既弱化了对硬编码选择器的依赖,又保留了对每一步动作的可见控制。对于需要长期运行、但前端会持续演进的数据采集与流程自动化场景,它提供了一个介于脚本与代理之间的中间选项。

使用方式

  • 安装:通过 npm 安装 @browserbasehq/stagehand
  • 初始化:创建 Stagehand 实例并启动浏览器会话。
  • 组合调用:在同一会话中混用 act()、extract()、observe(),在需要端到端流程时调用 agent()。
  • 调试:observe() 的返回值可用于回放或人工调整指令,降低排障成本。

凭借 MIT 协议与清晰的四动词 API,Stagehand 已成为 AI 浏览器代理生态中较受关注的开源实现之一。

信源