跳转到主要内容
只需1分钟即可开始使用Stagehand!请从下方选择您偏好的语言。
对于TypeScript/Node.js:我们强烈建议使用Node.js运行时环境来运行Stagehand脚本,而非Deno或Bun等新方案。Bun不支持Stagehand,因其不兼容Playwright对于Python:要求Python 3.9+版本,并推荐使用uv管理虚拟环境。
在开始之前,您需要安装 Node.js 和 NPM。我们强烈推荐使用 nvm 来管理 Node.js 版本,并运行 Node 20+ 版本。
1

创建新项目

您可以使用 npx 创建新项目。Node.js 默认的包管理器 npm 已包含 npx。
npx create-browser-app
要在 Stagehand 中使用我们的 Contexts 功能,请运行:
npx create-browser-app --example persist-context
只需一行命令即可将 Stagehand 脚本部署到 Vercel!运行:
npx create-browser-app --example deploy-vercel
npx vercel deploy
我们还提供了一个使用 CUA 代理的示例,让 OpenAI Operator 与 Anthropic 的 Claude Computer 进行激烈的国际象棋对弈。仅需十行 Stagehand 代码即可实现,尝试运行:
npx create-browser-app --example chess
您也可以使用尚未发布的 main 分支版本。这将包含最前沿的功能,但可能尚未完全准备好用于生产环境。测试此版本请运行:
npx create-browser-app --alpha
系统将询问以下问题:
✔ 项目名称是什么? my-app
✔ 是否从快速入门示例开始? 是
✔ 选择 AI 模型:Anthropic Claude 3.7 Sonnet
✔ 本地运行还是在 Browserbase 上运行? 本地
✔ 以无头模式运行浏览器(隐藏 Chromium 弹窗)? 否
2

安装依赖并运行脚本

cd my-app
npm install
npm run start
使用您选择的包管理器安装依赖。我们还包含一个 postinstall 脚本,会自动通过 playwright install 安装 Playwright 浏览器。

在现有项目中添加 Stagehand:

1

安装 Stagehand

npm install @browserbasehq/stagehand
2

设置环境变量

创建 .env 文件或导出环境变量:
export BROWSERBASE_API_KEY="your_browserbase_api_key"
export BROWSERBASE_PROJECT_ID="your_browserbase_project_id"
export OPENAI_API_KEY="your_openai_api_key"  # 可配置为其他模型
3

创建第一个脚本

创建文件 index.ts
// index.ts
import { Stagehand, ConstructorParams } from "@browserbasehq/stagehand";
import dotenv from "dotenv";
import { z } from "zod";

dotenv.config();

export async function main() {
  const config: ConstructorParams = {
    env: "BROWSERBASE", // 或 "LOCAL"
    apiKey: process.env.BROWSERBASE_API_KEY,
    projectId: process.env.BROWSERBASE_PROJECT_ID,
    verbose: 1,
  };

  const stagehand = new Stagehand(config);

  try {
    await stagehand.init();
    const page = stagehand.page;

    await page.goto("https://docs.stagehand.dev/");
    await page.act("click the quickstart link");

    const result = await page.extract({
      instruction: "extract the main heading of the page",
      schema: z.object({
        heading: z.string(),
      }),
    });

    console.log(`Extracted: ${result.heading}`);
  } catch (error) {
    console.error(error);
  } finally {
    await stagehand.close();
  }
}

main();
4

运行脚本

npx tsx index.ts
下一步

查看 TypeScript 代码库

如果你是 TypeScript 开发者,可以查看 Stagehand 的 TypeScript 代码库。欢迎提交 PR!

查看 Python 代码库

Stagehand 现已支持 Python!该 Python 代码库刚刚发布,非常欢迎提交 PR!