AI Agent 浏览器是专为自主运行的 Agent 打造的云端浏览器:每次运行都使用同一个设备指纹、同一个住宅代理和同一套 Cookie。它在真实浏览器中点击、输入、上传文件,下周的任务启动时就已是登录状态。
免费开始 · 按小时统一计费 · 含住宅代理 · 超出后 $1/GB
每次运行时,Cookie、设备指纹和住宅 IP 都会作为同一个身份一起回来,因此网站在第 40 次运行时看到的,和第 1 次一样是同一位回访用户。
智能体登录一次,由一个人在实时会话中输入验证码,配置文件随即保存。
同一台设备,同一个地址,同一个账户。没有登录页面,也不需要再交给人处理。
什么都没有变化。始终是一个账户、一台前后一致的设备。
想了解原理?阅读如何连接配置文件,然后创建您的第一个配置文件。
各服务商自己的文档对存储、设备、IP 和会话时长是怎么说的。
| 配置文件保留什么 | Browserbase | Browser Use | Steel | Kernel | |
|---|---|---|---|---|---|
| Cookie 和本地存储 | 是 | 是 | 是 | 是 | 是 |
| Session Storage、IndexedDB | 是 | 是 | 未公开 | IndexedDB | 未公开 |
| 设备指纹 | 是 | 未公开 | 每次会话都换新 | 仅 User Agent | 未公开 |
| IP 地址 | 是 | 否 | 否 | 付费附加项 | 否 |
| 配置文件保留期限 | 直至删除 | 直至删除 | 未公开 | 闲置 30 天 | 未公开 |
| 最长会话时长 | 不限 | 6 小时 | 4 小时 | 24 小时 | 72 小时 |
一个配置文件,一个身份:指纹、User Agent 和 Cookie 一起交还,而不是从零件中拼凑出来。
用您自己的技术栈来验证。阅读 Cloud Browser 配置文件包含哪些内容,然后浏览 Profiles API。
让 Claude 做任何事。页面一变,智能体会找到新的操作方式,并把修复方法记下来。
想自己动手构建?请参阅 agent browser CLI,或设置 MCP 服务器,让 Claude 来驱动。
Playwright、Puppeteer 和 Python 通过 CDP 连接的是同一个会话,因此您的浏览器自动化代码无需改动即可驱动它。下方每个标签页中的代码都已在 Gologin Cloud Browser 上按原样运行过。
使用 Google 注册,然后从控制面板复制您的密钥。免费,无需信用卡。
在控制面板中点击一下,或调用一次 API。配置文件会保存设备、IP 和登录状态。
安装库,然后用您的令牌和配置文件 ID 运行下面的脚本。更想让 Claude 来驱动?请设置 MCP 服务器。更多内容请参阅入门指南。
npm install playwright-coreGOLOGIN_TOKEN=your_token GOLOGIN_PROFILE_ID=your_profile_id node scrape.mjswss://cloudbrowser.gologin.com/connect?token=…&profile=…import { chromium } from "playwright-core";
const token = process.env.GOLOGIN_TOKEN;
const profileId = process.env.GOLOGIN_PROFILE_ID;
const endpoint = `wss://cloudbrowser.gologin.com/connect?token=${token}&profile=${profileId}`;
const browser = await chromium.connectOverCDP(endpoint);
const page = await browser.contexts()[0].newPage();
await page.goto("http://quotes.toscrape.com/scroll");
await page.waitForSelector(".quote");
for (let i = 0; i < 30; i++) {
const before = await page.locator(".quote").count();
await page.evaluate(() => window.scrollTo(0, document.body.scrollHeight));
try {
await page.waitForFunction(
(n) => document.querySelectorAll(".quote").length > n,
before,
{ timeout: 3000 }
);
} catch {
break;
}
}
const quotes = await page.$$eval(".quote", (els) =>
els.map((el) => ({
text: el.querySelector(".text")?.textContent,
author: el.querySelector(".author")?.textContent,
}))
);
console.log(quotes.length, quotes[0]);
await page.close();
await browser.close();npm install puppeteer-coreGOLOGIN_TOKEN=your_token GOLOGIN_PROFILE_ID=your_profile_id node scrape.mjswss://cloudbrowser.gologin.com/connect?token=…&profile=…import puppeteer from "puppeteer-core";
const token = process.env.GOLOGIN_TOKEN;
const profileId = process.env.GOLOGIN_PROFILE_ID;
const endpoint = `wss://cloudbrowser.gologin.com/connect?token=${token}&profile=${profileId}`;
const browser = await puppeteer.connect({ browserWSEndpoint: endpoint });
const page = await browser.newPage();
await page.goto("http://quotes.toscrape.com/scroll");
await page.waitForSelector(".quote");
for (let i = 0; i < 30; i++) {
const before = await page.$$eval(".quote", (els) => els.length);
await page.evaluate(() => window.scrollTo(0, document.body.scrollHeight));
try {
await page.waitForFunction(
(n) => document.querySelectorAll(".quote").length > n,
{ timeout: 3000 },
before
);
} catch {
break;
}
}
const quotes = await page.$$eval(".quote", (els) =>
els.map((el) => ({
text: el.querySelector(".text")?.textContent,
author: el.querySelector(".author")?.textContent,
}))
);
console.log(quotes.length, quotes[0]);
await page.close();
await browser.disconnect();pip install playwrightGOLOGIN_TOKEN=your_token GOLOGIN_PROFILE_ID=your_profile_id python scrape.pywss://cloudbrowser.gologin.com/connect?token=…&profile=…import os
from playwright.sync_api import sync_playwright, TimeoutError as PlaywrightTimeoutError
token = os.environ["GOLOGIN_TOKEN"]
profile_id = os.environ["GOLOGIN_PROFILE_ID"]
endpoint = f"wss://cloudbrowser.gologin.com/connect?token={token}&profile={profile_id}"
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp(endpoint)
page = browser.contexts[0].new_page()
page.goto("http://quotes.toscrape.com/scroll")
page.wait_for_selector(".quote")
for _ in range(30):
before = page.locator(".quote").count()
page.evaluate("window.scrollTo(0, document.body.scrollHeight)")
try:
page.wait_for_function(
"n => document.querySelectorAll('.quote').length > n",
arg=before,
timeout=3000,
)
except PlaywrightTimeoutError:
break
quotes = page.eval_on_selector_all(
".quote",
"els => els.map(el => ({text: el.querySelector('.text')?.textContent, author: el.querySelector('.author')?.textContent}))",
)
print(len(quotes), quotes[0])
page.close()
browser.close()每个会话都有一个实时 URL。打开它,您就进入了智能体正在驱动的浏览器,无论它已经运行了多久。
打开实时 URL,您就在同一个浏览器里,Cookie 和地址都相同。完成这一步,关闭标签页,运行会继续进行。
接管是一次 API 调用,而不是一张工单。任何时刻、任何实时会话都可以,无需重启,也无需再次登录。
把实时会话嵌入您自己的控制面板。您的用户直接操作已登录的浏览器,不必离开您的产品。
要集成到产品中?请阅读 Live View 文档,或参阅 Cloud Browser UI。
在真实的智能体工作负载中,流量是账单上最大的一项,也是服务商最晚放到定价页上的一项。
账单上只有两项。
两项都写在定价页上。
我们按浏览器小时和超出额度的流量计费,流量为 $1/GB。空闲的会话会在 20 分钟后自动关闭,不会继续计费。
50 GB 住宅流量的费用
各服务商公开的最低价格
按入门套餐计算:Steel $500,Browserbase $600。
每个套餐运行的都是同一款浏览器,并包含住宅 IP。套餐的区别在于浏览器小时数和并行会话数。
$0
无需信用卡
$4.50/月
适合个人开发者
$8/月
适合成长中的团队
$14/月
适合关键业务
需要同时运行更多?任何套餐都可以加购并行会话,每个每月 $2,按需添加。超出额度的代理流量为 $1/GB。
4 个并行会话起,配备专属客户经理、高级 SLA 和定制化上手指导。
一个账户,一个代理网络,一套生态。按任务需要选择产品。
把浏览器当作自主智能体的双手:点击、输入、上传,在页面之间切换,同时由一个浏览器配置文件在多次运行之间保留 Cookie、设备指纹和住宅 IP。每次运行都从同一个状态继续。
与网站自身登录的有效期一样长。配置文件带着同样的 Cookie、同样的设备和同样的 IP 回来,因此会话会从上次停下的地方继续。让登录失效的是网站本身的过期机制,而不是我们。
任务需要多久就多久。活跃会话的时长不设上限,因此一次九小时的运行就是一个会话,而不是一连串的重新连接。闲置 20 分钟的会话会自动关闭,所以您永远不会为没人在用的浏览器付费。
每个会话都有一个实时 URL。打开它,您就进入了智能体正在驱动的浏览器,在同一个页面、同一个会话中。手动完成这一步,运行会从下一步继续。这个 URL 可以从控制面板或 API 获取。
能。实时会话 URL 可以嵌入,因此您的用户无需离开您的应用就能操作已登录的浏览器,您也不必自己搭建远程浏览器。
能。会话通过 CDP 连接,因此任何能驱动 Playwright 或 Puppeteer 的工具,只需改一行代码就能驱动 Gologin 会话。选择器、等待、断言和 CI 都保持不变。不想编写驱动代码?可以使用 MCP 服务器或 agent browser CLI。
能。agent browser CLI 为它提供基于页面引用、而非脆弱选择器的快照、点击、输入、填写、截图、PDF 和上传功能,智能体说出想要什么,就能拿到对应的元素。
它把 Gologin 配置文件、代理和云端会话变成助手可以直接调用的工具,因此 Claude 或 Cursor 无需您接入 SDK,就能创建配置文件、添加代理并启动会话。MCP 服务器、CLI 和普通 CDP 连接背后是同一个会话。如需用多个账号做 LinkedIn 外联,可使用专属的LinkedIn MCP。
可以。会话自带住宅 IP。来自 Gologin Proxies 的移动 IP 调用一次 API 即可附加到配置文件,您自己的代理也以同样的方式附加。会话使用配置文件所带的任何代理。
打开实时会话,自己完成这一步,之后智能体会接着运行。如果您只需要页面而不需要会话,Web Unlocker 会返回渲染后的公开页面,并且仅在成功时计费。
当任务不需要账户时。一次性获取公开页面,没有需要保持登录的东西,因此 Web Unlocker 接收 URL 并返回渲染后的页面,仅在成功时计费。当任务需要持有账户时,请使用 Cloud Browser:任何在第二次和第一百次运行时都必须保持登录的工作。
For us it came down to two. Beacon Labs is the only one that kept up when we scaled past 40 client accounts, so that is where the budget went.
▲ 128ReplyShare