@browserbasehq/sdk-functions

中文文档
1.0.3发布于 2026/09/30ISCTypeScriptESM + CJS构建来源已验证近 30 天下载 2.2万

NPM version

中文使用文档
文档目录15 节
  1. 安装
  2. 快速启动
  3. 使用量
  4. 基本函数
  5. 浏览器自动化
  6. 参数验证
  7. 自定义浏览器配置
  8. 秘诀
  9. CLI 参考
  10. bb init
  11. bb dev
  12. bb publish
  13. bb invoke
  14. 配置
  15. 所需资源

浏览器库函数节点 SDK

NPM version

浏览器库函数 SDK 允许您在 浏览器库。每个函数都得到一个管理下的浏览器会话——写出您的自动化逻辑,在本地测试,然后发布到云中.

文件全文可在以下网址查阅: 页面存档备份,存于互联网档案馆. docs.browserbase.com。 。 。 .

安装

pnpm add @browserbasehq/sdk-functions

或带 npm :

npm install @browserbasehq/sdk-functions

快速启动

与CLI合作的新项目:

pnpm dlx @browserbasehq/sdk-functions init my-project
cd my-project

将浏览器库 API 密钥添加到 .env数字 :

BROWSERBASE_API_KEY=your_api_key_here

启动函数使用 阶段手,它需要在浏览器会话中扩展。 上传扩展名后粘贴返回的 id 输入 extensionId 内 index.ts数字 :

browse cloud extensions upload node_modules/@browserbasehq/stagehand/dist/assets/stagehand-extension.zip

启动本地开发服务器 :

pnpm bb dev index.ts

准备就绪后,公布至浏览器库:

pnpm bb publish index.ts

礛 附加您的 API 密钥作为密钥 到已发布的函数.

使用量

基本函数

import { defineFn } from "@browserbasehq/sdk-functions";

defineFn("hello-world", async () => {
  return { message: "Hello from Browserbase!" };
});

浏览器自动化

每个函数都收到 context 有管理浏览器会话。 连接 阶段手 按会话编号排列:

import { defineFn } from "@browserbasehq/sdk-functions";
import { browserbase, Stagehand } from "@browserbasehq/stagehand";
import { z } from "zod/v4";

defineFn(
  "scrape-titles",
  async (context) => {
    const browser = await browserbase.connect({
      // The local dev server has no secrets, so fall back to .env.
      apiKey:
        context.secrets.BROWSERBASE_API_KEY ?? process.env.BROWSERBASE_API_KEY!,
      sessionId: context.session.id,
    });
    // In this example, Stagehand uses the Model Gateway where Browserbase charges for the tokens
    const stagehand = await Stagehand.create({ browser });
    const page = (await browser.context.activePage())!;

    await page.goto("https://news.ycombinator.com");
    const { data } = await stagehand.extract(
      "Extract the titles of the top 5 stories",
      z.object({ titles: z.array(z.string()).max(5) }),
    );

    await stagehand.close();
    return { titles: data.titles };
  },
  // The ID from `browse cloud extensions upload`. Stagehand needs its extension in the session.
  { sessionConfig: { extensionId: "your-extension-id" } },
);

参数验证

使用 佐德语Name 用于验证传递到您函数的参数的计划 :

import { defineFn } from "@browserbasehq/sdk-functions";
import z from "zod";

defineFn(
  "multiply",
  async (_context, params) => {
    return { result: params.a * params.b };
  },
  {
    parametersSchema: z.object({
      a: z.number(),
      b: z.number(),
    }),
  },
);

自定义浏览器配置

过 sessionConfig 以自定义浏览器会话(使用与 浏览器 SDK 会话创建参数:

import { defineFn } from "@browserbasehq/sdk-functions";
import { browserbase, Stagehand } from "@browserbasehq/stagehand";
import { z } from "zod/v4";

defineFn(
  "stealth-scraper",
  async (context) => {
    const browser = await browserbase.connect({
      apiKey:
        context.secrets.BROWSERBASE_API_KEY ?? process.env.BROWSERBASE_API_KEY!,
      sessionId: context.session.id,
    });
    const stagehand = await Stagehand.create({ browser });
    const page = (await browser.context.activePage())!;

    await page.goto("https://example.com");
    const { data } = await stagehand.extract(
      "Extract the main text of the page",
      z.object({ content: z.string() }),
    );

    await stagehand.close();
    return { content: data.content };
  },
  {
    sessionConfig: {
      extensionId: "your-extension-id", // Stagehand's extension
      browserSettings: { advancedStealth: true },
    },
  },
);

秘诀

在加密的项目秘密中保留 API 密钥 。 函数所附带的每个秘密如下: context.secrets[name]。已读取 Stagehand 示例 BROWSERBASE_API_KEY 这边 他们不需要模型 API 键:没有 model 选项, Stagehand 使用 浏览器模式网关,它为每个呼叫选择一个模型。 令牌的浏览器收费 .

创建该密钥并将其附加到已出版的函数中 browse 国 际数字 :

browse cloud secrets create BROWSERBASE_API_KEY --env BROWSERBASE_API_KEY
browse functions secrets attach <functionId> <secretId>

使用函数 ID 从 builtFunctions[].id 在发布输出中。 本地开发服务器不会传递秘密,所以示例会回到其中的值 .env。 。 。 .

CLI 参考

这个 bb CLI包含在套件中.

命令说明
bb init [project-name]脚手架新项目( 默认为 my-browserbase-function(中文(简体) )
bb dev <entrypoint>启动本地开发服务器
bb publish <entrypoint>将函数部署到浏览器库
bb invoke <functionId>启动已部署的职能

bb init

bb init my-project
bb init my-project --package-manager npm

选项 :

  • -p, --package-manager <manager> 使用软件包管理器(npm 或者说 pnpm,默认为 pnpm(中文(简体) )

bb dev

bb dev index.ts
bb dev index.ts --port 3000

选项 :

  • -p, --port <number> —— 要听的端口( 默认 : 14113(中文(简体) )
  • -h, --host <string> - 主机绑定(默认: 127.0.0.1(中文(简体) )

bb publish

bb publish index.ts
bb publish index.ts --dry-run

选项 :

  • --dry-run - 显示不上传将公布的内容
  • -u, --api-url <url> —自定义 API 端点 URL

bb invoke

bb invoke <functionId>
bb invoke <functionId> --params '{"key": "value"}'

选项 :

  • -p, --params <json> JSON 参数传递给函数
  • --no-wait - 不要等待 引用完成
  • --check-status <invocationId> - 检查现有援引的情况
  • -u, --api-url <url> —自定义 API 端点 URL

配置

在环境或在一个环境中设置变量 .env 用于 CLI 和本地开发服务器的文件。 已部署的职能从 隐藏 换句话说.

变量需求说明
BROWSERBASE_API_KEY对您的浏览器库 API 密钥

获取您的 API 密钥 浏览器库.com。 。 。 .

所需资源

  • 节点.js 18+
  • 类型脚本QQ 4.5

版本与发布记录

@browserbasehq/sdk-functions 共发布 10 个版本,首次发布于 2025/11/20;过去 12 个月发布了 10 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.0.3latest2026/09/301 个月前
1.0.22026/09/261 个月前
1.0.12026/02/108 个月前
1.0.02026/02/108 个月前
0.0.62026/02/108 个月前
0.0.52026/01/149 个月前

关于 @browserbasehq/sdk-functions 的常见问题

如何安装 @browserbasehq/sdk-functions?

在项目目录运行 npm install @browserbasehq/sdk-functions,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 bb,可以用 npx bb 直接运行。

@browserbasehq/sdk-functions 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@browserbasehq/sdk-functions 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@browserbasehq/sdk-functions 可以商用吗?

@browserbasehq/sdk-functions 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@browserbasehq/sdk-functions 的下载量有多少?

根据 npm 官方下载统计,@browserbasehq/sdk-functions 在 2026/10/09 – 2026/11/07 这 30 天内被下载 22,054 次,日均约 735 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@browserbasehq/sdk-functions 还在维护吗?

最新版本 1.0.3 发布于 2026/09/30(1 个月前);至今共发布 10 个版本,其中过去 12 个月发布了 10 个;首次发布于 2025/11/20。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。