Stagehand:简单可扩展的人工智能网页浏览框架
Stagehand 是一个由 Browserbase 团队维护的人工智能驱动的网页浏览框架,它是 Playwright 的后继者,提供了三个简单的 API(act、extract 和 observe),这些 API 提供了构建自然语言驱动的网页自动化操作的基础。Stagehand 的目标是提供一个轻量级、可配置的框架,没有过于复杂的抽象,同时模块化地支持不同的模型和模型提供商。它不会帮你订披萨,但

Stagehand 是一个由 Browserbase 团队维护的人工智能驱动的网页浏览框架,它是 Playwright 的后继者,提供了三个简单的 API(act、extract 和 observe),这些 API 提供了构建自然语言驱动的网页自动化操作的基础。
Stagehand 的目标是提供一个轻量级、可配置的框架,没有过于复杂的抽象,同时模块化地支持不同的模型和模型提供商。它不会帮你订披萨,但会帮助你可靠地自动化网页操作。
每个 Stagehand 函数接受一个原子指令,例如 act("点击登录按钮") 或 extract("找到红色的鞋子"),生成相应的 Playwright 代码来完成该指令,并执行它。
开始使用
- 安装 Stagehand 包
bash
npm install @browserbasehq/stagehand zod - 配置你的模型提供商 你需要提供你想要使用的模型提供商的 API 密钥。默认的模型提供商是 OpenAI,你也可以使用 Anthropic 或其他提供商。更多支持的模型信息可以在 API 参考中找到。
bash
export OPENAI_API_KEY=sk-... export ANTHROPIC_API_KEY=sk-... - 创建 Stagehand 实例 如果你计划在本地运行浏览器,你还需要安装 Playwright 的浏览器依赖。
bash
然后你可以这样创建一个 Stagehand 实例:npm exec playwright installjavascript
如果你计划在远程运行浏览器,你需要设置 Browserbase API 密钥和项目 ID。import { Stagehand } from "@browserbasehq/stagehand"; import { z } from "zod"; const stagehand = new Stagehand({ env: "LOCAL", });bash
export BROWSERBASE_API_KEY=... export BROWSERBASE_PROJECT_ID=...javascript
import { Stagehand } from "@browserbasehq/stagehand"; import { z } from "zod"; const stagehand = new Stagehand({ env: "BROWSERBASE", }); - 运行你的第一个自动化操作
javascript
这个简单的代码片段将打开一个浏览器,导航到 Stagehand 仓库,并记录顶级贡献者。await stagehand.init(); await stagehand.page.goto("https://github.com/browserbase/stagehand"); await stagehand.act({ action: "点击贡献者" }); const contributor = await stagehand.extract({ instruction: "提取顶级贡献者", schema: z.object({ username: z.string(), url: z.string(), }), }); console.log(`我们最喜欢的贡献者是 ${contributor.username}`);
API 参考
-
Stagehand() 用于创建 Stagehand 的实例。
-
init() 异步初始化 Stagehand 实例。在调用其他方法之前应该先调用此方法。
-
act() 允许 Stagehand 与网页交互。提供一个动作,如 "搜索 'x'" 或 "选择最便宜的航班"(小的原子目标执行效果最佳)。
-
extract() 使用 zod 从当前页面抓取结构化文本。给定指令和模式,你将收到结构化数据。
-
observe() 用于获取当前页面上可以采取的操作列表。它有助于为你的计划步骤添加上下文,或者如果你不确定你所在的页面。
-
page 和 context page 和 context 分别是 Playwright 的 Page 和 BrowserContext 的实例。使用这些方法与 Stagehand 使用的 Playwright 实例交互。最常见的是,你会使用 page.goto() 导航到一个 URL。
-
log() 用于在浏览器控制台打印消息。这些消息将保留在 Browserbase 会话日志中,并且可以在会话完成后用于调试。
模型支持
Stagehand 利用通用的 LLM 客户端架构来支持来自不同提供商的各种语言模型。这种设计允许灵活性,使得集成新模型时对核心系统的更改最小。不同的模型对不同的任务效果更好,所以你可以选择最适合你需求的模型。
如何工作
SDK 有两个主要阶段:
- 处理 DOM(包括分块 - 见下文)。
- 根据 DOM 的当前状态采取 LLM 驱动的操作。
提示技巧
提示 Stagehand 比包括代理框架在内的其他高级框架更字面和原子。以下是一些帮助你制定有效提示的指南:
- 使用具体且简洁的动作。
- 将复杂任务分解为更小的原子步骤。
- 使用 observe() 从当前页面获得可操作的建议。
- 不要使用宽泛或模糊的指令。
- 不要将多个动作合并为一个指令。
- 不要期望 Stagehand 执行高级规划或推理。
通过遵循这些指南,你将提高 Stagehand 在网页自动化中的可靠性和有效性。记住,Stagehand 在执行精确、定义良好的动作方面表现出色,因此保持你的指令原子化将带来最好的结果。
我们把代理行为留给更高级别的代理系统,它们可以使用 Stagehand 作为工具。
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐

所有评论(0)