Glac 在 Firecracker microVM 中运行 OCI 镜像:每个实例都是一个独立的 microVM,空闲时休眠,有需要时唤醒。方块把镜像作为服务运行,每个服务有自己的地址,也叫一个方块(在 API 中叫 app),没有请求时它的实例休眠;它的存储卷(在 API 中叫云盘)是不随使用它们的实例消失的磁盘。托管应用运行在方块之上:沙箱,即供 AI 智能体运行命令的机器;以及尚未开放的浏览器和数据库。先从获取密钥开始;平台的各个页面介绍计算、区域、地址、项目、日志、价格和限制如何运作,每个产品都有概览、快速入门,以及说明它如何运作的各个页面。
开始
- 入门:创建账户和 API 密钥,安装 glac 命令行或某个 SDK,并在每个产品上迈出第一步。
平台
- 计算:所有产品运行的基础。任意 OCI 镜像,每个实例都是独立的 Firecracker microVM;带键或不带键的实例,实例何时休眠、什么会唤醒它,以及方块和沙箱如何构建在它之上。
- 区域:三个区域 na、eu 和 ap;沙箱、方块和云盘在哪里创建;某个区域无法承接时会怎样;以及流量如何按区域计价。
- 地址:方块、沙箱链接和自定义域名的地址,经过平台前面的代理(TLS、DDoS 防护、缓存)或直连平台,以及代理的限制。
- 网络:流量如何到达沙箱或方块,又如何离开。经过代理和直连的地址、SSH、项目的私有网络、沙箱自己的 IPv6 地址及其开放的端口、网络规则,以及计费内容。
- 项目与密钥:账户负责付款、拥有成员,并在经过验证的地址接收通知;其余一切都在它的项目中。API 密钥属于一个项目,有各自的权限范围;令牌只能打开一个沙箱;控制台负责人员登录。
- 日志、指标与追踪:方块的日志汇成一条流(实例的输出、每个请求一行、平台做了什么),还有它的指标、平台为每个请求记录的 span,以及把它们导出到任意 OpenTelemetry 接收端。
- 价格与套餐:免费版和付费版两种套餐、各自包含什么、所有产品共用的一张价目表(其中包括按区域计价的流量和云盘),以及余额、充值、自动充值和支出上限如何运作。
- 限制:各套餐允许账户同时拥有和保有多少、创建东西的速度上限,以及 API 本身的限制。
- 提高限制:套餐的哪些限制可以应单个账户的要求提高,以及如何申请。
方块
- 方块:把任意 OCI 镜像作为方块运行,即一个有自己地址的服务(在 API 中叫 app)。有请求时实例启动,请求停止后实例休眠;每次部署都是一个可以回滚到的版本。
- 方块快速入门:用 glac 命令行、Python SDK 或控制台把镜像部署为方块,修改它、查看日志并回滚。
- 部署与版本:应用的每次部署都会产生一个版本,版本构建完成并就绪后承接流量。版本由什么构成,版本失败时会怎样,以及如何回滚。
- 实例与扩缩容:应用的实例在有请求时启动,请求停止后休眠,休眠一段时间后被删除。实例的数量、运行位置,以及如何在响应之后让工作继续。
- 键控实例:应用的每个键(一个用户、一个会话、一个租户)一个实例,第一次见到这个键时创建,并连同内存和磁盘一起保留,供之后带同一个键的每个请求使用。
- 地址与协议:方块在 glac.run 下的默认地址、自定义域名、在互联网上没有地址的方块,以及能到达实例的协议。
- 服务与 Compose:每个应用都是其项目中的一个服务。服务在项目的私有网络上互相发现,共享变量,一起部署,把数据保存在云盘上,还可以从 Compose 文件导入。
沙箱
- 沙箱:为每个 AI 智能体、用户或任务提供一台独立的机器,几毫秒内从任意 OCI 镜像创建。运行命令、读写文件、打开终端;空闲时休眠,唤醒时进程仍在运行。
- 沙箱快速入门:用 glac 命令行、Python SDK 或控制台创建沙箱、在里面运行命令、复制文件、打开它的某个端口、创建快照并分叉。
- 命令、文件与终端:从任意镜像创建沙箱、运行命令并读取输出、读写文件,以及终端。
- 休眠与唤醒:沙箱何时进入休眠、什么会唤醒它、里面的程序如何让它保持运行或在休眠前得到通知、重启,以及长时间休眠后的删除。
- 快照与分叉:快照保存运行中沙箱的内存、进程和磁盘;沙箱可以回到快照、从快照启动,或分叉成多个副本,各自从这一刻继续运行。
- 链接、令牌与 SSH:本身就是凭据的沙箱端口链接、公开端口、在一段时间内能打开某个沙箱的令牌,以及用你自己的密钥登录 SSH。
- 网络规则与机密:沙箱能访问互联网上的哪些地方、能向某个主机发送哪些请求,以及在请求出站时才加入的机密,里面的代码永远拿不到它们。
浏览器
尚未向账户开放:这些页面按目前正在构建的样子介绍它。
- 浏览器:托管的 Chromium 会话,由 Playwright、Puppeteer 或任何其他 Chrome DevTools Protocol 客户端从外部驱动。有客户端连接时会话保持运行,最后一个客户端离开后,会话连同它的页面一起休眠。
- 会话:/v1/browsers 的调用、创建会话时用什么、会话包含什么、用名称再次找到会话、会话何时运行和休眠、新地址,以及它的网络。
- 实时视图与配置文件:实时观看会话的页面,以及给只可观看的人的地址;会话的配置文件,即它的 Cookie 和存储,由平台保存,并加载到新会话中。
云盘
- 云盘:项目的磁盘,不随使用它的沙箱和方块消失。同一时间只有一个沙箱写入云盘;云盘在写入的同时被复制到所在区域的对象存储,所以区域中的任何机器都能挂载它。
- 云盘快速入门:用 glac 命令行、Python SDK 或控制台创建一个云盘,在一个沙箱里写入,再在下一个沙箱里读取。
- 云盘的工作方式:在沙箱或方块中挂载云盘、唯一的写入方、云盘存放在哪里、如何计费,以及项目最多能保有多少。
- 云盘的快照与分叉:快照把云盘保存为某一时刻的状态,作为它在所在区域对象存储中的一个版本,无需复制。可以把云盘恢复到快照,从快照分叉出新云盘,任意多个沙箱也都可以以只读方式挂载它。
- 共享存储卷与备份:存储卷是云盘底层的磁盘。共享存储卷是同一台机器上的多个沙箱同时挂载的文件系统;备份把存储卷复制到对象存储中,可以从备份创建新的存储卷。
数据库
尚未向账户开放:这些页面按目前正在构建的样子介绍它。
- 数据库:为项目提供的托管 Postgres(16、17 或 18),位于项目的私有网络上,没有任何请求时休眠,有连接时唤醒。由方块的一个有状态服务和一个云盘构成,二者只由数据库修改。
- PostgreSQL:数据库运行的软件:PostgreSQL 16、17 或 18,带 pgvector、PostGIS、TimescaleDB、pg_cron 等;所有者可以创建的扩展、角色、新数据库如何初始化,以及平台固定的设置。
工具
- glac 命令行:一个可执行文件,管理 Glac 的所有产品(方块、沙箱、云盘),以及项目、项目的机密和账单,供终端前的人、CI 中的脚本和编程智能体使用。
- Python SDK:Python SDK,一个客户端,每个产品(方块、沙箱、云盘)一个命名空间,外加平台本身的调用。只依赖标准库,支持 Python 3.9 及以上。
- TypeScript SDK:Glac 的 TypeScript SDK,一个客户端,每个产品(方块、沙箱、云盘)一个命名空间,支持 Node 23.6 及以上,没有任何依赖(只用 fetch、WebSocket 和 node:crypto)。
- Go SDK:Go SDK,一个客户端,每个产品(方块、沙箱、云盘)一个字段。只依赖标准库,支持 Go 1.21 及以上;context 作为第一个参数,错误作为返回值,使用函数式选项。
- Rust SDK:一个客户端,每个产品(方块、沙箱、云盘)一个命名空间,平台本身的调用直接在客户端上。阻塞式调用,返回 Result,链式选项,四个依赖,不需要异步运行时。
- Java SDK:Java SDK,一个客户端,每个产品(方块、沙箱、云盘)一个命名空间,外加平台本身的调用。支持 Java 17 及以上,基于 JDK 自带的 java.net.http,没有任何依赖。
- MCP 服务器:把 Glac 的产品作为工具交给 AI 智能体:可部署的方块、可在其中工作的沙箱,适用于 Claude Code、Claude Desktop、Cursor 或任何 Model Context Protocol 客户端。