打造 SPACE:为长期运行的智能体提供安全高效的运行时

SPACE 是 Perplexity 的安全、高效沙盒平台,支持长期运行的智能体工作流和快速、隔离的代码执行。

作者Perplexity Engineering

随着智能体工作流变得更长且更具自主性,AI 智能体运行的环境与其背后的模型同样重要。智能体需要执行实际工作,例如运行代码、编辑文件系统以及执行历时数小时或数天的多步骤任务。用户希望智能体能够访问其执行这些任务所需的工具和文件,同时也需要确信即使智能体已被攻陷,他们的系统依然能够保持安全。沙盒让这一切成为可能:这是一个隔离的环境,智能体可以在其中自由运行,同时确保主机、其他租户和敏感凭据保持受保护状态。

传统的基于容器的沙盒方法并非为这些任务而设计。它们通常假设任务是短生命周期、无状态的,且以内核作为单一故障点。相比之下,智能体会话是长生命周期的且有状态的:智能体积累了数小时的上下文、工作文件系统以及正在运行的进程,这些都无法简单地丢弃并从零开始重建。此外,内部工作负载在默认情况下应被视为不可信,因此需要更强大的安全措施。长时间运行的智能体会话需要一种能够隔离恶意客户机、保留其状态,并能实现大规模运行的底层平台。

沙盒工程的主要挑战源于安全性、功能性和效率之间常常产生的紧张关系。例如:

  • 授予更广泛的访问权限可以让智能体完成更多任务,但也向您不信任的工作负载暴露了更多的系统内容。
  • 沙盒之间共享的内容越多,创建速度就越快,但攻击面也会随之扩大。
  • 创建快照越频繁,恢复能力就越强,还能支持回滚等功能,但也会耗费更多时间和存储空间。

智能体沙盒(例如执行代码所需的沙盒)、使用 智能体技能 (Agent Skills) 或在 Computer 查询中执行 代码搜索 (Search as Code) 流水线的智能体沙盒,都需要兼顾上述三者。在过去的几个月里,我们一直在努力构建支持我们产品的下一代智能体基础设施。今天,我们推出了 SPACE(用于智能体代码执行的沙盒平台):这是一个专为智能体工作流构建的沙盒平台,它在规模化应用中具备安全性、可靠性和高效性。上个月,我们开始部署 SPACE 作为支持 Perplexity Computer 的沙盒层。在过去的一周里,它安全支持了数百万次沙盒创建和数千万次重连,启动时间比我们之前的解决方案快 3-5 倍。

本文介绍了 SPACE 背后的架构和设计决策。截至今天,100% 的 Computer 会话现已在 SPACE 上运行。我们很高兴能在更多界面上部署此平台,从而为我们的用户和开发者提供一流的智能体运行时。

架构

从宏观层面看,该系统分为三层。

控制平面是系统的大脑,负责决定应存在的内容及其位置。它由 API 网关和集群级状态管理模块组成。

节点本地服务是执行控制平面计划所需的本地机制。它们负责管理沙盒生命周期、存储、网络以及其背后的特权操作。

沙盒是隔离的执行环境本身。它作为一个虚拟机实现,并配有 space 守护进程:这是一个客户机内部的后台进程,为工作负载代理文件系统、进程和网络访问。

SPACE 的架构分为三层:无状态控制平面;管理沙盒生命周期、存储和安全门控的节点本地服务;以及沙盒本身。

控制平面

API 网关是入口点。传入的请求经过身份验证和授权,然后被转换为期望状态的记录。

控制平面在设计上是无状态的,所有持久化信息都卸载到共享数据库中。它跟踪集群级沙盒信息,例如它们被分配到哪个节点、运行在何处,以及是否已备份到持久存储中。它不断地将期望状态与观测到的状态进行比较,并推动两者趋于一致。操作是幂等的,因此控制平面可以在任何崩溃、重启或部分故障后自动恢复。

节点本地服务

节点本地服务执行准备模板、启动沙盒、连接网络以及运行主机端运行时服务的实际工作。每个节点运行一组小型守护进程来管理置于其上的每个沙盒,节点是这些沙盒实时状态的单一事实来源。

沙盒管理器了解哪些沙盒正在运行、暂停、挂起或停止,以及它们的实际资源占用。它以非特权模式运行,并将所有特权工作委派给节点管理器,这是代理底层原语的单一根进程。存储在本地进行且持久保存:当前沙盒状态的快照保存在节点上,卷管理器根据需要将快照和模板移入移出对象存储,以启用跨节点操作。安全门控守护沙盒的访问范围:凭据管理器在服务级授权下控制凭据注入,网络网关执行每个沙盒的出口策略。

沙盒

沙盒本身是一个虚拟机 (VM),拥有自己的客户机内核,在硬件隔离边界之后运行用户的工作负载。由于每个沙盒都有自己的内核,被攻破的工作负载无法回落到共享主机内核作为单一故障点;即使它成功利用了其客户机内核,这种安全失陷也仅限于沙盒的虚拟机边界,而不会传播到其他工作负载。

每个虚拟机内部都运行一个 space 守护进程,作为轻量级智能体来调节平台在客户机内部执行的每一个动作或修改。它处理文件系统访问和进程管理。它还报告客户机就绪状态并跟踪活动,以便平台知道沙盒何时闲置并可以暂停或回收。关键在于,space 守护进程不直接与客户端通信,而是通过私有的虚拟机内通道与主机通信。这保持了所有客户机交互都在受控路径上,并将沙盒自身的网络完全预留给工作负载的出站流量。

三大支柱:安全性、功能性和效率

接下来,我们将深入探讨 SPACE 必须在三个支柱上提供的关键属性:安全性、功能性和效率。如前所述,这三者之间存在相互制约。然而,如果我们希望支持能够达到当今模型能力的强大智能体,我们就不能在任何方面做出妥协。安全性防止不可信、可能具有敌意的工作负载损害主机、其他租户或用户的机密。功能性为智能体提供它们所需的丰富生命周期。效率使得这一切在有限的内存、磁盘和计算资源下具备经济可行性。

安全性:保护数据和系统

沙盒平台需要强大的安全性,以确保在沙盒内运行的错误代码甚至恶意代码不会在其他地方造成有害影响。如果不执行严格的出口控制并防止机密进入沙盒,智能体的一个错误步骤就可能泄露用户的密钥或导致数据外泄。

SPACE 通过结合虚拟机和主机级隔离与严格控制的通信通道、凭据管理和加密,强制执行分层安全。

SPACE 采用分层方法来确保沙盒的安全性。沙盒隔离有两个组成部分:虚拟机隔离和主机操作系统进程隔离。两者都必须被攻破才能实现跨沙盒访问。与沙盒的通信受到严格控制;进程只能通过专用通道进行通信。网络网关强制所有出口流量通过它。space 守护进程是(不受信任的)沙盒与(受信任的)平台之间唯一被授权的通道。

凭据永远不会存在于智能体可能窃取它们的地方。凭据存储位于沙盒边界之外,负责凭据的生命周期。它通过可插拔的保险库后端存储和检索机密,使用分层范围解析凭据,管理注入方法和过期时间等元数据,并对所有访问执行速率限制和审计日志记录。需要时,凭据在网络层注入或由浏览器智能体自动填充,而不是直接进入沙盒。

数据在静态状态下受到保护。SPACE 支持 BYOK(自带密钥)来保护外部存储的数据。加密密钥来自客户的密钥管理服务,永远不会进入沙盒。如果企业撤销了密钥,其数据将变得无法读取。

功能性:赋能智能体工作流

为了支持智能体工作流,沙盒需要丰富的生命周期支持。它们必须能够快速且大规模地创建,因为智能体可能一次启动多个沙盒,而不应等待其中任何一个启动完成。它们必须能够无限期持续存在,因为会话可能持续数分钟或数月。它们必须能够干净地暂停,有时是长时间暂停,例如当任务因人工输入而受阻时。并且它们必须支持分支、回滚和崩溃恢复,以便会话可以分支、撤销错误步骤或在故障后恢复,而不是重新开始。

SPACE 支持上述所有功能。它将完整的沙盒生命周期建模为显式状态机,这使得创建、暂停、恢复、挂起和还原等操作成为可能。

这一核心沙盒状态子集和状态转换实现了丰富的生命周期支持。

快照是大多数此类功能背后的机制。调度程序会定期运行并捕获两种类型的快照:磁盘快照(文件系统的时间点副本)和完整快照(整个已暂停虚拟机的检查点)。磁盘快照捕获频繁,而完整检查点捕获频率较低。所有内容都保留在节点上,保留期按层级衰减。这些快照可用于会话内恢复;例如,磁盘快照可用于回滚文件系统以撤销破坏性命令,完整检查点允许崩溃的沙盒在最近的运行点恢复,而不是从冷盘启动。

当沙盒被挂起时,虚拟机被暂停,拍摄完整快照,并将完整快照中的工件上传到对象存储。数据库行跟踪该快照,只有在每个工件都已上传后,快照才变为可还原,因此部分上传的快照永远不会被恢复到损坏的状态。还原是挂起的逆操作。由于快照位于对象存储而不是原始节点上,因此任何节点都可以将沙盒恢复。调度程序选择一个节点,该节点下载工件,在模板之上重新应用文件系统增量,并将虚拟机从其捕获的状态中恢复。

效率:优化时间和空间

仅在真空环境中实现上述功能是不够的;它们还必须在严格的资源限制下实现。节点上的内存和磁盘是有限的,用户希望智能体尽可能快地运行,因此生命周期操作在时间和空间上都必须低成本。我们无法负担每次创建、暂停或分支沙盒时复制完整机器镜像的开销。

一个关键的设计选择使这成为可能:文件系统。SPACE 使用 btrfs 作为沙盒存储的节点内文件系统。Btrfs (B 树文件系统) 将写时复制文件系统与集成逻辑卷管理相结合。这有几个优点:

Reflink 复制速度很快,因为您共享底层的数据区段,因此只需复制元数据。

快照是原子的且快速的,因为您只需创建一个新的根目录。

所需的存储空间极小,因为您只存储已更改的内容。

因此,沙盒可以快速创建和恢复。我们不每次从零开始创建沙盒,而是保留一个热池,其中包含已在磁盘上具体化的常用模板,并通过将请求绑定到模板匹配的 Pod 来满足请求。给予该沙盒自己的可写根文件系统,实际上是写时复制克隆,而不是完整副本。当没有合适的热 Pod 时,我们按需具体化模板;我们将针对同一镜像的并发请求合并为一次下载,这样一系列相同的请求就不会演变成一系列相同的工作量。

结果是一个既强大、轻量级又极速的沙盒运行时。当我们推出 SPACE 时,我们在相同的生产流量上将其与之前的沙盒提供商并行运行。在发布周期间,SPACE 在整个分布范围内的沙盒创建速度快了三到五倍。具体而言,中位数创建延迟从 185 毫秒下降到 60 毫秒(提升 3.1 倍),第 90 百分位延迟从 447 毫秒下降到 89 毫秒(提升 5.0 倍)。我们在其他性能和资源使用指标上也观察到了类似的数量级改进。

在直接比较中,SPACE 沙盒的创建延迟比我们之前的沙盒解决方案快达 5 倍。

它还使滚动磁盘快照变得容易,因为它们速度快、空间效率高,并且不需要暂停沙盒。此外,高效的增量存储减少了存储这些快照所需的空间。

结论

在设计复杂系统时,往往会倾向于孤立地选择单一目标进行优化。但前沿智能体的开发者要求安全性、功能性和效率达到同等水平。通过 SPACE,我们致力于在这三个支柱上实现帕累托改进。

每一个独立的设计选择都可以同时服务于多个目标,从而使这种微妙的平衡成为可能。每个沙盒的虚拟机为每个工作负载提供自己的内核,通过强隔离加强安全性,同时也提供了快照所依赖的干净检查点边界。Btrfs 实现了快照、分支以及智能体运行时所需的其他必要操作的高效实现。space 守护进程将所有客户机交互保持在受控的主机端路径上,在保护客户机-主机边界的同时,保留了智能体的操作自由。中央网络网关在不向客户机泄露机密的情况下,调节出口流量和凭据注入。

这些及其他设计决策的成果是一个能够在规模化应用中实现现实世界智能体编排的平台。SPACE 提供了基础,在此基础之上,长期运行的有状态智能体可以安全地处理任意复杂程度或持续时间的工作,而无需牺牲性能或安全性。

今天,SPACE 已经支持了数百万次 Perplexity Computer 会话。我们打算让 SPACE 成为在任何环境下配置和控制沙盒的统一层:从 Linux 微虚拟机到 Windows 客户机,再到用户自己的本地机器。我们正在努力将 SPACE 推向这些新环境,以便开发者能够发布在用户工作的任何地方都能正常运行的 AI 产品。

如果您渴望塑造推动明日最前沿智能体的计算层,我们邀请您 加入我们的团队。

引用

BibTeX
@online{perplexity2026MakingSpaceSecureAndEfficientRuntimesForLongRunningAgents,
  author = {{Perplexity} and Kumar Pallav and Nick Dujay and Zibi Braniecki and Dmitry Pervukhin and Gigi Sayfan and Mostafa Abdelraouf and Nikhil Birmiwal and Rohin Bhasin and Shrikant Pandhare and Nikitha Lokareddy and Phi Hoang and Claire Beamer and Jeremy Yang and Jerry Ma},
  title = {{Making SPACE: Secure and efficient runtimes for long-running agents}},
  date = {2026-07-15},
  url = {https://www.perplexity.ai/hub/blog/making-space-secure-and-efficient-runtimes-for-long-running-agents}
}