跳转至

远程 Agent Browser

Remote Agent Browser 在隔离的 Vercel Sandbox 中运行 agent-browser。当 TypeScript 应用需要按需配置浏览器而无需管理本地 Chrome 进程时,可使用它。

Remote Agent Browser 是一个库,而不是 agent-browser 的 -p 提供程序。在应用中导入它,并使用返回的客户端运行 agent-browser 命令。

设置

pnpm add remote-agent-browser

在 Vercel 上,身份验证通过 VERCEL_OIDC_TOKEN 自动完成。对于本地开发,请链接 Vercel 项目并拉取其环境变量:

vercel link
vercel env pull .env.local

创建浏览器

import { AgentBrowser } from "remote-agent-browser";

const browser = await AgentBrowser.create();

try {
  await browser.exec("open", {
    args: ["https://example.com"],
  });

  const snapshot = await browser.exec("snapshot");
  console.log(snapshot.stdout);
} finally {
  await browser.close();
}

通过同一客户端发出的命令共享同一页面、cookies、标签页和元素引用。工作完成后,务必关闭可丢弃的客户端。

稳定浏览器会话

当浏览器身份需要跨进程边界保持时,请使用稳定的 ID:

const browser = AgentBrowser.session({
  id: `chat:${chatId}`,
});

const stopKeepalive = browser.keepalive();

try {
  await browser.exec("open", {
    args: ["https://example.com"],
  });
} finally {
  stopKeepalive();
}

第一条命令会查找或创建指定的 Sandbox。稍后使用同一 ID 的进程可以附加到该 Sandbox。如果已过期的 Sandbox 恢复,Chromium 将全新启动,内存中的页面状态会重置。

自定义浏览器镜像

默认镜像是 remote-agent-browser:latest。要使用自定义镜像,请传递 Vercel Container Registry 的仓库、标签、摘要或完全限定引用:

const browser = await AgentBrowser.create({
  image: "vcr.vercel.com/my-team/my-project/my-browser:v1",
});

你还可以设置 REMOTE_AGENT_BROWSER_IMAGE 来为每个客户端配置镜像。

选项

选项描述默认值
image包含 agent-browser 和 Chromium 的 Vercel Container Registry 镜像remote-agent-browser:latest
timeoutMsSandbox 挂钟超时时间(毫秒)600000
vcpusSandbox 的 vCPU 数量2
env用于 Sandbox 中命令的额外环境变量{}
args应用于每条命令的全局 agent-browser CLI 参数[]
proxy浏览器客户端的代理 URL 或代理配置(无)

关于文件传输、代理配置、类型化 JSON 输出、keepalive 和稳定会话的示例,请参阅 Remote Agent Browser 仓库。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 agen/agent-browser