远程 Agent Browser
Remote Agent Browser 在隔离的 Vercel Sandbox 中运行 agent-browser。当 TypeScript 应用需要按需配置浏览器而无需管理本地 Chrome 进程时,可使用它。
Remote Agent Browser 是一个库,而不是 agent-browser 的 -p 提供程序。在应用中导入它,并使用返回的客户端运行 agent-browser 命令。
设置¶
在 Vercel 上,身份验证通过 VERCEL_OIDC_TOKEN 自动完成。对于本地开发,请链接 Vercel 项目并拉取其环境变量:
创建浏览器¶
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 |
timeoutMs | Sandbox 挂钟超时时间(毫秒) | 600000 |
vcpus | Sandbox 的 vCPU 数量 | 2 |
env | 用于 Sandbox 中命令的额外环境变量 | {} |
args | 应用于每条命令的全局 agent-browser CLI 参数 | [] |
proxy | 浏览器客户端的代理 URL 或代理配置 | (无) |
关于文件传输、代理配置、类型化 JSON 输出、keepalive 和稳定会话的示例,请参阅 Remote Agent Browser 仓库。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 agen/agent-browser