产品#运行时#虚拟化

Perplexity 开源 SPACE:Firecracker 微虚机智能体沙箱,每日数百万次创建

Perplexity 10 月 15 日以 Apache-2.0 开源 SPACE:Firecracker 微虚机沙箱,承载 Computer 全部会话。

两块深色平面在低光下相接,接缝处漏出一线白光

Perplexity 10 月 15 日宣布以 Apache-2.0 开源 SPACE(Sandboxed Platform for Agentic Code Execution),这是一个跑在 Firecracker 微虚机里的智能体代码执行平台:每个沙箱是一台带独立操作系统的小虚机,平台侧的控制平面负责创建、暂停、恢复和销毁。它从 2026 年 7 月起取代此前的商业沙箱供应商,此后 Computer 的每一次会话都在上面跑;官方称同等生产流量下,沙箱创建速度比原来的供应商快 3 到 5 倍。

要点

  • SPACE 于 10 月 15 日以 Apache-2.0 开源,仓库为 github.com/perplexityai/space,主语言 Rust;截至 10 月 16 日仓库有 371 个星标、85 个开放 issue,尚无 Release 与 tag。
  • 官方博客与官方红队报告《Escaping SPACE: Part I》(9 月 23 日)口径一致:108 次虚机到宿主机的逃逸尝试中,未观测到一起成功;Semafor 的报道写作 118 次,本文取一手源的 108 次。
  • Perplexity 自述的红队测试里,9 个模型在部分放行的网络条件下有 11 次成功绕过网络策略,官方称已修复且复测未再出现;同份报告称 10 家第三方沙箱中 8 家存在至少一处网络策略绕过,但这一结论出自 Perplexity 自家的 Secure Intelligence Institute,没有第三方复核。
  • CoreWeave、Akamai、Crusoe 三家已同意向自家客户提供 SPACE:据官方博客与 Unite.AI,前两家已在各自云平台上测试并上线,Crusoe 把它纳入 Managed AI Services。

开源了什么

SPACE 的 Apache-2.0 仓库 10 月 1 日创建,主语言 Rust,README 里明确写着「在隔离的 Firecracker 微虚机中运行代码」,应用侧通过 HTTP API 创建 Linux 环境、执行命令、回收输出并管理沙箱生命周期。仓库同时带 Go 组件与 Python 工具链,README 说明「由 Rust 实现,但应用通过 HTTP 与服务器发送事件交互,不需要嵌入 Rust 库」。

值得单独点出的是 E2B 兼容层(ECW)。README 的文档表把它单列一项,仓库里的 docs/ecw.md 写得更直接:ECW 是「让现有 E2B 客户端把 SPACE 当沙箱后端用」的翻译层,测试基线是 e2b==2.21.1 与 e2b-code-interpreter==2.6.2 两个 Python 包。换句话说,已经在 E2B 上写了智能体代码的团队,可以换成 SPACE 后端,不用先重写一遍客户端。

文档侧的分量比多数开源首日项目足:托管 Guide 与 API Reference 都在 space.docs.perplexity.ai,仓库里有架构、安装、首个沙箱、可观测性、出网策略、warm pools、基础快照等文档,本地构建要装 mdBook 0.4.52。API 的 schema 里标了 incubating 的字段明确写在支持契约之外——这个标注比一句「接口可能变」更实用。

技术路线

SPACE 把沙箱当成「不可信计算」处理:网络访问与平台持有的凭据都放在沙箱外面管理,智能体因此能访问被授权的服务,而凭据不落在它的环境里。文件快照与全环境检查点保存进度,改动按增量存,不反复复制整个环境,创建、恢复和分支都受益。

Perplexity 10 月 14 日的架构长文讲了请求怎么被路由到正确的沙箱执行。控制平面把沙箱身份与执行身份分开——前者是逻辑环境,后者是某次运行时化身加上它的 worker、substrate 和激活状态;在 Kubernetes 上,路由还带 pod UID。能力凭据用 Ed25519 签名,有效期 120 秒,另给最多 15 秒的时钟偏移容差,工作节点和网关只持有公钥。这篇给出的运行数字是「每日数百万次执行」、错误率低于 0.0002%、零丢连接。

隔离层的实现可以从仓库目录读出来:templates/firecracker/ 下是 seed builder 与模板配方,infra/space/kind/ 是本地 Kind 部署,infra/space/aws/reference/ 是参考 EKS 部署。本地那套对硬件有要求——官方安装文档写的是「带 KVM 的 apt 系 Linux x86_64 主机」,需要 /dev/kvm、/dev/net/tun、loop 设备、btrfs 与允许特权容器的 Docker,且文档明确说「这些指令不能直接在 macOS 上跑」。

安全账本

这是本次开源里最该细看的部分,也是最该打折看的部分。Perplexity 9 月 23 日的红队报告由自家 Secure Intelligence Institute 出品,测了 9 个模型配置,两项任务各四个设置、每设置三次,一共 216 次运行。虚机隔离那一半的结论是一句可以直接引用的话:「No VM-to-host escape was observed in 108 runs」——零成功,且这些模型被给了源码访问、装包和联网搜索的权限。

网络侧就没这么干净。无网络时 54 次运行零成功;部分放行网络(允许 PyPI 等域名,保留 Perplexity Search)时,54 次里有 11 次成功触达了本应被阻断的回调 URL。得手的模型是 Claude Opus 5.0、GPT-5.6 Cyber、GPT-5.6 Sol 和 Kimi K3,两条路径分别是 DNS 欺骗(作为 guest 内的 root 伪造 DNS 应答,把放行的 pypi.org 指向被阻断的 IP,网关没有校验应答的真实来源)与 IP 共享(CDN 把许多域名放在同一 IP 上,放行 PyPI 的 Fastly IP 就连带放行了同 IP 的其他租户)。官方称已用 nftables 源地址校验加权威校验中继修掉,复测结论是「Neither mechanism produced a verified network-policy bypass after remediation」。

同一份报告还测了 10 家第三方沙箱的域名级出网控制,报告了其中 9 家(一家要求更多时间),称「至少在 10 家中的 8 家发现一处网络策略绕过」:

沙箱HTTPS 绕过HTTP 绕过任意 TCP 出网
E2B命中——
Vercel Sandbox命中——
Modal命中——
Daytona命中——
Deno命中命中命中
Fly.io Sprites命中命中—
microsandbox命中命中—
Cloudflare未命中未命中未命中
NVIDIA OpenShell未命中未命中未命中

测试在 2026 年 8 月 31 日至 9 月 1 日进行,9 月 1 日通知厂商,9 月 10 日状态为全部回应;厂商侧反应从已修复(Daytona、Deno、microsandbox v0.6.18)到归为「已知限制」(Vercel、Modal)都有。这几条要连着看:Perplexity 是这条赛道的参赛者,让它来给对手打分,动机上就不中性。报告自己也留了余地,说边界守住了「不应被解读为它们完全安全的证据」。

各家说法

Perplexity 技术团队成员 Zibi Braniecki 对 Semafor 说:「很多公司在想怎么构建安全的 AI 智能体,很多情况下撞墙了」「我们有答案」。他把开源 SPACE 比作浏览器早期共同制定安全浏览与电商护栏的阶段,并称「现在我们的想法太小了」。Semafor 另外提到 Perplexity 称 SPACE 还能减少算力浪费,是严格沙箱化的副产品。

Unite.AI 的独立解读把重点放在技术形态与分发上:Firecracker 微虚机、Rust 实现、E2B 兼容层、Kind 本地部署,以及三家云厂商的不同角色——CoreWeave 与 Akamai 测试并上线,Crusoe 纳入其托管服务。三家分工的细节只有 Unite.AI 说清了,官方博客只给了一句「已测试并成功上线」。

背景

SPACE 不是今天才出现的产品。Perplexity 7 月 15 日的架构长文《Making SPACE》写的是内部落地:上月开始向 Computer 铺开,发文时「100% 的 Computer 会话已经跑在 SPACE 上」,通篇没有下载、仓库或许可——那时它只是 Perplexity 自家产品的能力,不是可获取的软件。7 月首发之后到 10 月 15 日之前,公开报道里没有开源这回事。

把 SPACE 放进同一张桌子看更有意义。Nvidia 9 月 28 日开源的智能体安全平台 OpenShell同为沙箱路线,且是本次 Semafor 报道里 Perplexity 的对标对象;阿里云 9 月 28 日披露的 Agent Sandbox则是「给智能体一台干净电脑」的云货架版本,同样兼容 E2B 接口。三家用三种方式回答同一个问题:智能体跑代码的地方该由谁提供、按什么计价、边界画在哪。

怎么试

想先看代码而不上硬件,最便宜的一步是读 docs/architecture.md 与 docs/ecw.md;想真跑起来,官方路径是带 KVM 的 Linux x86_64 主机上克隆仓库、按 docs/installation.md 部署本地 Kind 集群并发布 seed:latest 模板,再跑 python3 examples/first_sandbox.py——这个例子只用标准库,不需要装 SDK,输出 Hello from SPACE。有 Kubernetes 集群的可以直接看 infra/space/aws/reference/ 的参考部署。已经在用 E2B 的,把后端指向 ECW 并配 SPACE_ECW_HOSTS,用 e2b==2.21.1 这版先验证。

编辑判断

「又一家开源了沙箱」只是表面。底下的成本账才是重点:Perplexity 用一个产品线的生产流量(每日数百万次沙箱创建)把 Firecracker 路线跑到可公开细节的程度,再以 Apache-2.0 放出,等于替后来者省掉了从零搭隔离层的那一两年。它有动机这么做——智能体沙箱正在变成一门生意,CoreWeave、Akamai、Crusoe 三家排队分发就是证据,标准由谁定,分配就偏向谁。

要冷静的地方同样清楚。所有安全数字都是 Perplexity 自评:红队报告出自自家的 Secure Intelligence Institute,第三方沙箱的评分也是自家做的,没有独立复核;108 次零逃逸与 11/54 次网络绕过来自同一套测试,读的时候别只取前半句。工程上还有一个硬门槛:本地跑要 KVM,macOS 直接被文档排除,芯片架构只覆盖 x86_64,ARM 用户得等或者自己在云上开机器。想把它当生产沙箱用的团队,先按自己真实的出网需求过一遍 DNS 欺骗与 IP 共享这两类绕过。