尚未开放。浏览器还没有向账户开放。本页按目前正在构建的样子介绍它,开放前可能还会变化。
实时观看会话
通过会话的 live_url,可以在任意浏览器中实时观看并操控它的页面。它和 CDP 地址一样,是签名地址,也是凭据。
- 无头会话 (
chromium-headless):一个页面,实时显示浏览器最近使用的标签页,并带有切换标签页的列表;观看者的鼠标、滚轮、键盘和粘贴操作都会传给页面。 - 有头会话 (
chromium):通过 noVNC 显示它的屏幕,鼠标、键盘一应俱全。 - Lightpanda 会话 (
lightpanda) 没有实时视图:它没有布局引擎,也没有可以推流的画面。它的live_url为 null,GET /v1/browsers/{id}/live会被拒绝 (400kind_unsupported)。它也不保留配置文件:带配置文件的创建和保存都会以同样的方式被拒绝。参见 Lightpanda。
GET /v1/browsers/{id}/live?interactive=false 给出一个只能观看页面的地址:这是一个单独的地址,它的签名打不开任何别的东西,除了绘制屏幕所需的内容,什么都到不了浏览器。按键、点击、粘贴、调整大小、脚本和导航都不行。把它放进你自己的页面,让人观看智能体工作。不带 interactive=false 时,这个调用给出 live_url。
GET /v1/browsers/agent-42/live?interactive=false{"object": "browser_live", "id": "sbx-…", "url": "https://6081-…/live?interactive=false", "interactive": false}已连接的观看者会让会话保持运行,和 CDP 客户端一样。rotate-url 之后,这两个地址会一起换成新的一对,观看者的连接也会和其他连接一起断开。读取任一地址都需要密钥有 url 权限范围:没有它时 live_url 为 null。会话所在的机器此刻给不出地址时,调用返回 503 unavailable,可重试 (retryable)。
配置文件
配置文件决定了浏览器在它访问过的网站眼中是谁:它的 Cookie、Local Storage、IndexedDB、Session Storage 和偏好设置,不包括缓存。在一个会话中登录一次,保存它的配置文件,之后用这个配置文件创建的每个会话都已登录。
- 用配置文件创建会话:在创建请求中写
profile: {"name": "acme-login"}。在返回会话之前,会先加载它的最新版本(或version指定的版本):浏览器会基于它重新启动。设置了save: true时,会话在被删除时会再次保存这个配置文件(除非删除请求带?save_profile=false);如果配置文件还没有任何版本,就由这次保存创建它。没有版本、会话也不会保存的配置文件会被拒绝 (404profile_not_found)。 - 立即保存:
POST /v1/browsers/{id}/profile,带{"name"};什么都不带时,保存会话创建时用的那个配置文件。浏览器会像正常关闭时那样停止,以便把它持有的内容写出并打包,然后重新启动:已连接的客户端会断开,需要重新连接。返回的是这个配置文件,新版本排在它所有版本的最前面。 - 同一个配置文件同一时间只能有一次保存:另一次保存,无论来自哪个会话,都会被拒绝,返回 409
profile_busy,可重试 (retryable)。两个会话可以加载同一个配置文件;每次保存都是一个独立的版本,最新的那个就是配置文件当前的版本。 GET /v1/browsers/profiles按名称列出项目的配置文件,GET /v1/browsers/profiles/{name}给出一个配置文件及其所有版本(每个版本的bytes、sha256、保存时间和保存它的会话),DELETE /v1/browsers/profiles/{name}删除一个配置文件:立即消失,它的归档在 30 天后删除。之后再以这个名称保存的配置文件是一个新的配置文件。配置文件的名称由 1 到 63 个小写字母、数字和连字符组成,首尾必须是字母或数字;任何会话都不能命名为profiles。
配置文件无法加载或保存时(连不上对象存储,或浏览器没有恢复),调用返回 503 profile_transfer_failed,可重试 (retryable):为加载不了的配置文件创建的会话会被再次删除,保存失败的会话保持原样。
配置文件保存在哪里。平台在自己的对象网关后面为项目维护一个存储桶 glac-profiles-<project>,配置文件就保存在这里。这个存储桶在第一次保存时创建,不单独计费。平台用自己为该项目准备的一个密钥读写它,这个密钥只能访问这个存储桶。会话从不持有密钥:每次加载或保存时,它会得到一个对象的地址,有效期两分钟。没有对象网关的控制平面不保存配置文件 (400 objects_not_served)。配置文件的 Cookie 用一个在所有会话中都相同的密钥加密,所以别的会话也能读取它们:请把配置文件当作它所保存的登录凭据来对待。
命令行有 glac browsers live、save-profile、profiles ls、profiles rm 和 create --profile;Python 和 TypeScript SDK 也有同样的调用。Go、Rust 和 Java SDK 以及 MCP 服务器目前既没有实时视图,也没有配置文件:MCP 服务器的 browser_open 会给出 live_url。