第3章 Sandbox 沙盒环境
Vercel Sandbox 支撑的聊天功能会在一个隔离的 Vercel Sandbox 环境中运行你的项目,该环境托管了代码、开发服务器、终端以及 Agent 工具。v0 中的 VM 驱动聊天在一个隔离的虚拟机中运行,托管项目文件、执行你在聊天界面看到的实时预览,并代你执行命令。不同聊天之间的状态绝不会发生泄漏。
什么是 Sandbox
v0 的 Sandbox 基于 Vercel Sandbox 构建,这是一台轻量级虚拟机,能在数秒内启动完整的 Node.js 环境。它取代了旧版基于浏览器的预览,后者无法运行服务器代码、API 路由或真实的数据库连接。由于 Sandbox 运行的是真实的 Node.js 环境,预览的行为与项目部署到 Vercel 后保持一致。
在哪里看到 Sandbox
在 VM 驱动的聊天中,Sandbox 体现在三个地方:
预览标签页:在 Sandbox 中运行的你的应用。Sandbox 内的开发服务器提供此 URL 服务。 控制台面板:包括日志(开发服务器的输出)和终端(一个 Shell,除了 v0 通过其 Bash 工具执行的操作外,你还可以直接在此运行命令)这两个标签页。 代码查看器:浏览和编辑工作区文件,并添加代码注释作为下一个提示词的上下文。详见代码查看器。
内部运行内容
每个 Sandbox 都包含:
Node.js,开箱即用地提供 pnpm、npm、yarn 和 bun。你可以安装项目所需的任何依赖项。 感知框架的开发服务器。v0 会自动检测 Next.js、Vite 和通用的 Node.js 项目,并在正确的端口上启动相应的命令。 来自你关联的 Vercel 项目的环境变量,你的应用和在 Sandbox 中运行的任何 Agent 工具均可使用。
这与 v0 的 Bash 工具和预装 Agent 运行的环境相同。
隔离边界
Sandbox 沿三个维度进行隔离:
边界 含义 每聊天 每个 VM 驱动的聊天拥有独立的 Sandbox。文件、环境变量和正在运行的进程绝不会从一个聊天跨越到另一个。 每用户或团队 Sandbox 归属于聊天所有者。除非你分享该聊天,否则其他用户无法访问。 与生产环境隔离 Sandbox 绝不会与你的已部署应用运行在同一台机器上。部署运行在独立的 Vercel 基础设施上,拥有独立的环境变量。
在上述边界之上,Sandbox 网络策略(Sandbox Network Policy)控制 Sandbox 允许访问的出站主机。默认为允许所有。团队所有者可从团队设置中配置此策略。
生命周期
对于 VM 驱动的聊天,v0 会在聊天首次需要 Sandbox 时创建一个,例如当你生成需要服务器或导入仓库的代码时。
创建后:
同一聊天的文件系统会在会话之间持久化。你或 v0 编写的文件在你稍后回来时依然存在。 池化 Sandbox 初始生命周期为 30 分钟。这是 v0 分配或占用 Sandbox 时分配的初始超时,而非你能工作的最长时间。 活跃且正在运行的 Sandbox 会自动延长。当 Sandbox 剩余时间不足 5 分钟时,状态检查和 Agent 的心跳保活机制会将其延长 10 分钟。 Sandbox 自创建起最多运行 24 小时。自动延长绝不会超过此绝对上限。 非活动或已停止的 Sandbox 不会因保活而恢复。在你下次访问或操作时,如果 Sandbox 仍可用,v0 会复用它;如果已过期,v0 会重新创建。你无需手动启动或停止它。
启动新的 VM 驱动聊天会创建新的 Sandbox。状态不会从旧聊天携带过来,除非你明确进行分支或导入。
了解 v0 如何在 Sandbox 内运行命令 上一页 Agentic 功能 下一页 Vercel 集成