hiw3c 日报精选
MarkTechPost RSS 全文

Perplexity Open-Sources SPACE,一种适用于人工智能代理的Firecracker MicroVM沙箱环境

原文标题 · Perplexity Open-Sources SPACE, a Firecracker MicroVM Sandbox for AI Agents

Perplexity公司已经将作为其所有智能体任务运行的基础平台——SPACE沙箱开源了。PERPLEXITY SPACE沙箱为每个智能体的任务提供了独立的Firecracker微虚拟机。凭证管理和外部流量控制都可以在该虚拟机之外进行。该代码已在GitHub上以Apache 2.0许可证发布。对于正在开发智能体代码的团队来说,这种经过实战验证的隔离方案非常实用。……关于Perplexity公司开源

来源:MarkTechPost · www.marktechpost.com

正文为英文,可一键机器翻译(仅首次需要等待)

Perplexity has open-sourced SPACE, the sandbox platform behind every task in Perplexity Computer. The Perplexity SPACE sandbox gives each agent task its own Firecracker microVM. Credentials and outbound traffic are controlled from outside that VM. The code ships under Apache 2.0 on GitHub. For teams building coding or browsing agents, this is a production-tested isolation layer they can self-host.

TL;DR

  • Size: Rust codebase, release 0.8.0, the public baseline. HTTP API plus server-sent events.
  • Runs on: A Linux x86_64 host with KVM, /dev/kvm, btrfs and Docker. Local Kind (Kubernetes) or direct mode. No macOS.
  • Performance: In production, median create latency fell from 185 ms to 60 ms versus Perplexity’s previous provider.
  • Best: 0 of 108 VM-to-host escape attempts succeeded across 9 frontier models.
  • Worst: Before fixes, agents bypassed the egress policy in 11 of 54 partial-network runs.

What is Perplexity SPACE?

SPACE (Sandboxed Platform for Agentic Code Execution) is Perplexity’s platform for running agent code in isolated microVMs. Applications call its HTTP API to create Linux environments, run commands and stream output.

A template supplies the starting filesystem. A sandbox is one instance of that template, with its own VM and writable disk. Many commands can run inside one sandbox.

Perplexity’s launch thread explains the design goal. Agents run commands, install packages and call services with root inside the sandbox. The host stays outside the guest’s control. Agent work is long-running, stateful and branching, so it must survive restarts.

How does SPACE isolate agents?

Each sandbox is a Firecracker microVM with its own guest kernel. A per-sandbox network gateway on the host enforces egress policy on every outbound connection.

Secrets never enter the guest. Per Perplexity’s July engineering post, credentials are injected at the network layer. The credential store adds hierarchical scoping, rate limits and audit logging.

The architecture guide splits the system into 4 parts. These are a PostgreSQL-backed API, controllers, worker services and a data plane. Worker services manage VMs, networking, volumes, templates and credentials. btrfs copy-on-write creates each root filesystem.

How do pause, suspend and restore work?

Sandboxes move through 4 states: running, paused, suspended and deleted.

  • Paused: VM memory stays resident on the worker. This is not a durable snapshot.
  • Suspended: VM memory, runtime state and root filesystem are snapshotted. Active resources are released.
  • Idle default: sandboxes suspend after 6 hours without activity.

For fast creates, Kubernetes deployments use warm pools of booted sandboxes. Single-node setups use base snapshots instead.

In production, the 90th-percentile create latency dropped from 447 ms to 89 ms. Perplexity reports that 100% of Computer sessions run on SPACE.

Did SPACE survive a red-team test?

Perplexity’s Escaping SPACE: Part I report tested 9 models with root inside the guest. The study ran 216 runs across 2 tasks and 4 settings.

  • Sandbox escape: 0 of 108 runs reached the host-side secret.
  • No-network bypass: 0 of 54 runs succeeded.
  • Partial-network bypass: 11 of 54 runs succeeded before fixes. 4 models found a path.

Claude Opus 5.0, GPT-5.6 Sol, GPT-5.6 Cyber and Kimi K3 found bypasses. The attacks used DNS spoofing and shared CDN IP addresses.

Perplexity then added source-address validation through nftables. The gateway now terminates TLS and checks both SNI and HTTP host against the allowlist. In the retest, no model produced a verified bypass.

The same team tested 10 third-party platforms. 8 showed at least one network-policy bypass. Perplexity disclosed the results to every affected vendor.

Back</button><button class="btn" id="psx-next">Next state ▶</button></div> </div> <div class="pane" data-p="2"> <div class="bars" id="psx-rt"></div> <div class="note">9 models, 216 runs, root inside the guest. Fixes: nftables source-address validation, TLS termination with SNI + Host allowlist checks. Source: Perplexity, Escaping SPACE: Part I (Sep 23, 2026).</div> </div> <div class="pane" data-p="3"> <div class="bars" id="psx-lat"></div> <div class="note">Production launch-week traffic, SPACE vs Perplexity's previous sandbox provider. Lower is better. Source: Perplexity engineering blog (Jul 15, 2026).</div> </div> <div class="pane" data-p="4"> <div class="tw"><table> <tr><th>Feature</th><th>SPACE</th><th>E2B Runtime</th><th>microsandbox</th></tr> <tr><td>Isolation</td><td>Firecracker microVM</td><td>Firecracker microVM</td><td>libkrun microVM</td></tr> <tr><td>License</td><td>Apache 2.0</td><td>Apache 2.0</td><td>Apache 2.0</td></tr> <tr><td>Language</td><td>Rust</td><td>Go</td><td>Rust</td></tr> <tr><td>Perplexity egress test</td><td>0 bypasses after fix</td><td>HTTPS bypass, mitigation planned</td><td>HTTP + HTTPS bypass, fix in v0.6.18</td></tr> </table></div> <div class="note">Egress results from Perplexity's tests on Aug 31 to Sep 1, 2026, for the versions tested.</div> </div> <div class="ft"><span>Sources: github.com/perplexityai/SPACE · perplexity.ai/hub/blog</span><b>© Marktechpost</b></div> </div> <script> (function(){ var R=document.getElementById('pplx-space-x'); function post(){try{parent.postMessage({psxHeight:R.offsetHeight+40},'*')}catch(e){}} var tabs=R.querySelectorAll('.tab'),panes=R.querySelectorAll('.pane'); var D=['<b>Guest microVM.</b> Each task gets its own Firecracker microVM with its own guest kernel. The agent can run commands and install packages as root. The host stays outside its control.', '<b>Per-sandbox gateway.</b> All guest egress passes through a host-side gateway. It now terminates TLS and requires both SNI and HTTP Host to be allowlisted and DNS-attributed.', '<b>Outside services.</b> Credentials never enter the guest. They are injected at the network layer, with scoping, rate limits and audit logging.']; var det=document.getElementById('psx-detail'),boxes=R.querySelectorAll('.box'); function showD(i){boxes.forEach(function(b,j){b.classList.toggle('act',i==j)});det.innerHTML=D[i];post()} boxes.forEach(function(b){b.addEventListener('click',function(){showD(+b.dataset.d)});b.addEventListener('mouseenter',function(){showD(+b.dataset.d)})}); showD(0); var L=['<b>Running.</b> Processes execute. Live VM memory and the writable filesystem are kept.', '<b>Paused.</b> Execution stops. VM memory stays resident on the worker. This is not a durable snapshot.', '<b>Suspended.</b> VM memory, runtime state and root filesystem are snapshotted. Active VM resources are released. Default: suspend after 6 hours idle.', '<b>Deleted.</b> The sandbox is no longer available through the API.']; var li=0,sts=R.querySelectorAll('.st'),ld=document.getElementById('psx-life'); function life(){sts.forEach(function(s,j){s.classList.toggle('on',j==li)});ld.innerHTML=L[li];post()} document.getElementB