Stagehand:AI 浏览器自动化框架
用自然语言和代码控制浏览器,实现灵活、可维护、可靠的自动化。
证据显示:CLI 测试中明确验证了不发送原始 argv 值(如 URL 和 token)到遥测,体现了对敏感数据的保护;依赖覆盖(pnpm overrides)显示了对已知漏洞的主动缓解;但缺少用户确认机制(如 act 前确认)和回滚功能。扣分原因:用户确认和回滚缺失,数据流透明度仅部分体现(如遥测事件),外部影响(如浏览器操作)未明确限制。
证据显示:CI 工作流包含 lint、build、单元测试、e2e 测试,且测试覆盖了错误处理(如 CLI 错误消息);依赖版本固定(pnpm-lock.yaml)和覆盖确保可用性。扣分原因:自一致性部分体现(如 CLI 命令命名),失败消息在测试中验证但未全面覆盖。
证据显示:README 描述了多种使用场景(act、agent、extract),支持本地和 Browserbase 环境;CLI 提供多种命令(cloud fetch、search 等)。扣分原因:触发精度(如 act 的指令解析)未详细说明,环境适配(如浏览器版本)依赖外部配置。
证据显示:README 提供安装和构建说明,LICENSE 为 MIT,CI 工作流体现维护责任;但缺少明确的版本变更日志和已知限制说明。扣分原因:命名稳定性(如 CLI 命令)未明确保证,版本变更日志缺失。
证据显示:输出格式(JSON、表格)和文件输出支持,CLI 提供多种功能(fetch、search、projects 等),边际价值高;但成本效益(如 token 消耗)未量化。扣分原因:成本效益缺乏数据支持。
证据显示:README 中的声明(如可靠性)有测试支持,但未提供具体证据链接;测试文件(如 cli-cloud-contract.test.ts)验证了 API 契约。扣分原因:声明可追溯性不足,跨来源佐证有限,事实与推断分离不明确。
- 用户确认机制缺失:act 等操作可能直接执行,需谨慎使用。
- 回滚功能未提供:自动化操作失败后无法自动恢复。
- 数据流透明度有限:遥测数据的具体用途和存储未详细说明。
- 依赖安全依赖覆盖,但未提供漏洞扫描报告。
这个 Agent 能做什么,适合哪些场景?
Stagehand 是一个浏览器自动化框架,将 AI 与代码结合,让开发者用自然语言描述操作,同时保留代码的精确控制。它基于 CDP 引擎,提供 act、agent、extract 等核心接口,分别用于执行单步操作、多步任务和结构化数据提取。Stagehand 支持自动缓存和自愈能力,能记住重复操作,减少 AI 调用,并在网站变化时自动恢复。该项目采用 TypeScript 编写,通过 pnpm 管理,可安装到现有 Node.js 项目中。它需要 LLM API 密钥和可选的 Browserbase 凭证。
Stagehand 通过 CDP 引擎与浏览器交互,提供 act() 执行单个自然语言指令(如点击),agent() 执行多步任务(如“获取最新 PR”),extract() 从页面提取结构化数据(如 PR 作者和标题)。它支持自动缓存动作以减少 LLM 推理,并在页面变化时自动修复。开发者可通过 npx create-browser-app 快速开始,或在现有项目中通过 pnpm 安装。
- 前端开发者需要自动化测试复杂 Web 应用,但不想编写繁琐的低级选择器。
- 数据工程师需要从动态网站提取结构化数据,但页面结构经常变化。
- 运维人员需要监控 Web 应用状态,并自动执行例行操作(如点击按钮)。
- QA 工程师希望将部分脆弱的选择器替换为自然语言指令,提高测试稳定性。
- 产品经理需要快速原型化一个自动化工作流,而不深入了解底层框架。
这个 Agent 有哪些优点和局限?
- 自然语言与代码混合编程,灵活度高,可处理非预期页面变化。
- 自动缓存重复动作,降低 LLM 调用成本和延迟。
- 提供
act、agent、extract等丰富接口,覆盖多种自动化场景。 - 基于 Playwright 和 CDP,底层稳定,易于调试。
- 需要 LLM API 密钥,运行成本随使用量增加。
- 依赖 Browserbase 服务,可能涉及额外配置和网络要求。
- 作为较新框架,生态系统和文档可能不如传统工具成熟。
- 需要 Node.js 和 pnpm 环境,对非 JavaScript 开发者有学习成本。
如何安装或部署这个 Agent?
需要 Node.js 环境,使用 pnpm 作为包管理器。从 GitHub 克隆仓库:git clone https://github.com/browserbase/stagehand.git,进入目录后运行 pnpm install 和 pnpm run build。也可以使用 npx create-browser-app 快速创建项目。此外,需要配置 LLM API 密钥(如 OpenAI)和 Browserbase 凭证,通过复制 .env.example 为 .env 并填写。
如何使用这个 Agent?
安装后,运行 pnpm run example 执行示例脚本。在代码中,使用 stagehand.act("点击 stagehand 仓库") 执行动作,stagehand.agent().execute("获取最新 PR") 执行多步任务,stagehand.extract(...) 提取数据。确保配置好环境变量,包括 LLM API 密钥和 Browserbase 凭证。
这个 Agent 与同类方案有什么区别?
相比 Selenium、Playwright 等传统自动化工具,Stagehand 允许用自然语言代替部分低级代码,降低维护成本。
常见问题
Stagehand 是否支持 Python?
使用 Stagehand 需要哪些凭据?
Stagehand 如何处理网站结构变化?
可以将 Stagehand 安装到现有项目中吗?
pnpm add "github:browserbase/stagehand#<branch>&path:/packages/core"。