跳转到主要内容
当专家需要「动手做事」——写代码、运行程序、操作文件——它不是在某台共享服务器上执行,而是在一个专属的云端隔离容器中操作。这是袋袋的声明式沙盒架构:每次对话都拥有自己的完整开发环境,互不干扰,用完即走。

为什么需要沙盒?

安全隔离

AI 执行的代码可能有错误甚至风险。沙盒确保任何操作都被限制在容器内,无法影响宿主系统或其他用户。

环境一致

预装完整的开发工具链(Node.js、Python、系统工具),专家不需要花时间配环境,上来就能干活。

状态持久

文件系统在对话期间持久化。专家写的代码、安装的依赖、生成的文件,下次消息还在。

按需启动

只有当专家真正需要执行工具时才创建沙盒,纯对话不付资源成本。

沙盒生命周期

1

按需创建(Lazy Provision)

沙盒不在对话开始时创建,而是等到专家第一次需要执行工具操作时才启动。纯文字对话零资源消耗。
2

亚秒级热启动

基于预热的容器镜像,沙盒从创建到可用通常在 1 秒以内完成。用户几乎感知不到等待。
3

跨消息持久化

同一会话内的多条消息共享同一个沙盒实例。专家在第一条消息中安装的依赖,在第五条消息中仍然可用。
4

空闲休眠

对话暂停时沙盒自动休眠,释放计算资源。文件系统通过云文件存储(CFS)持久化,不会丢失。
5

无缝恢复

用户再次发消息时,沙盒被唤醒到上次的文件系统状态。专家可以无缝继续之前的工作。

镜像预烘焙

沙盒不是一个空白容器——它预装了丰富的开发工具链,让专家开箱即用:
  • Node.js + bun(JavaScript/TypeScript 全栈)
  • Python 3 + uv 包管理器(数据科学 + AI 开发)
  • TypeScript 编译器 + 语言服务器
  • Biome 代码格式化与静态分析
  • pandas、numpy、matplotlib、seaborn
  • scipy、scikit-learn
  • Pillow 图像处理
  • openpyxl Excel 处理
  • Pandoc 文档格式转换
  • WeasyPrint PDF 渲染
  • Tesseract OCR 文字识别
  • ImageMagick 图像处理
  • Poppler PDF 工具
  • TanStack Start(预烘焙 + node_modules)
  • FastAPI / Flask(Python Web)
  • 完整的 HTTP 客户端工具链
预烘焙策略的核心思想是「把等待时间从运行时转移到构建时」。用户不需要等 npm installpip install——几百 MB 的依赖在镜像构建时就已经安装好了。

工作目录架构

这种设计让专家可以快速从模板起步(零安装延迟),同时保证用户的实际工作不会被后续镜像更新影响。

Dev Server 懒启动

Web 预览是专家常用的能力——让用户实时看到代码的视觉效果。但 Dev Server 是资源密集型进程: 不变式:Dev Server 唯一的启动入口是专家主动调用初始化工具。不做预览的对话(数据分析、脚本执行、文档处理)永远不付 Dev Server 的内存和 CPU 成本。

网络与安全策略

沙盒具备受控的网络访问能力:

出站访问

专家可以访问外部 API、下载资源、进行网络请求。这对 Web 开发和数据采集是必需的。

进程隔离

每个沙盒是独立的 Linux 容器,具有完整的进程命名空间隔离。一个用户的操作绝不可能影响另一个用户。

资源上限

CPU、内存、磁盘用量都有容器级别的硬限制,防止恶意或失控的程序耗尽共享基础设施。

文件系统隔离

云文件存储按会话隔离挂载,跨会话不可访问。即使同一用户的不同会话也看不到彼此的文件。

Provider 抽象

沙盒系统采用 Provider 抽象设计,使底层实现可以透明切换: Runtime 不关心容器的具体实现细节——它通过统一的 Provider 接口与沙盒交互。这意味着未来可以无缝接入新的容器供应商,而上层的 Agent 逻辑无需任何改动。

文件同步与预览

沙盒中专家创建的文件可以被用户实时预览和下载:
  • 代码文件:语法高亮展示,支持 diff 对比
  • Web 项目:通过 Dev Server 实时预览,支持 HMR 热更新
  • 数据文件:表格、图表内联渲染
  • 文档:PDF、Markdown 即时预览
用户还可以将沙盒中的文件同步到云端存储,在对话结束后继续访问。
沙盒是袋袋「AI 不只是说,还能做」理念的技术基石。没有它,专家只能生成文本;有了它,专家可以写代码、运行程序、创建项目、生成文档——像一个真正的数字同事一样工作。

设计权衡