沙盒 API:AI 代理的隔离代码执行环境

代理工作流通常需要确定性执行。当代理需要进行统计分析、生成图表、验证计算或转换数据集时,它需要具有精确输出的确定性执行。代理对计算内容进行推理,沙盒则负责计算。

专为 Perplexity 构建,现已作为服务提供

我们构建了沙盒以在内部支持此模式。Perplexity Computer、我们的金融代理以及深度研究 (Deep Research) 都在沙盒环境中执行代码。Computer 每分钟运行数千个会话。金融代理使用沙盒进行实时市场数据计算。深度研究在工作流中利用沙盒进行文件生成、数据处理和格式转换。沙盒 API 现已将相同的执行环境作为独立服务提供。

具有持久文件系统的有状态会话

每个会话都在其各自隔离的 Kubernetes Pod 中运行。开发者无需管理底层基础设施:我们负责供应、网络连接和清理。支持的语言包括 Python、JavaScript 和 SQL,且每个会话均可安装运行时包。

会话是有状态的。持久文件系统通过 FUSE 挂载。FUSE 守护进程拦截文件操作并将其转换以供代理使用:读取、写入、列出文件以及跟踪自会话创建以来的修改。在一步中创建的文件可在后续步骤中使用。长时间运行的工作流可以暂停,数小时后恢复,并保持完整状态继续执行。每个会话最多支持五个后台进程。

默认零信任

安全架构默认假定代码不受信任。沙盒没有直接的网络访问权限。当需要出站连接时,流量通过在沙盒外运行的出口代理进行路由。该代理根据目标域匹配出站请求并注入相应的凭据。在沙盒内执行的代码绝无法访问原始 API 密钥或密钥信息。内置的超时和资源限制强制执行执行边界。

作为编排层的代理 API

沙盒 API 将作为代理 API 中的工具提供,允许编排运行时在工作流中委托确定性代码执行。代理决定计算内容,将其分派至沙盒,观察输出,并继续其推理循环。使用相同的 API 密钥,相同的积分额度。

沙盒 API 即将推出。我们将很快开放内测,文档可在 docs.perplexity.ai 获取。