概述
基于腾讯云开发 CloudBase,为 Vibe Coding 平台(如 Lovable、Bolt.new、Vercel v0、OpenClaw)提供从 Agent 运行 → 代码执行 → 应用部署 → 多租户隔离 的全链路基础设施,让您的用户通过一句话就能获得一个可用的、有完整后端的应用。
本方案目前为灰度测试阶段,如需使用请联系产品团队。
您面临的挑战
构建一个生产级的 Vibe Coding 平台,您需要解决以下核心问题:
| 挑战 | 问题描述 | CloudBase 方案 |
|---|---|---|
| 安全的代码执行 | LLM 生成的代码需要在隔离环境中运行,不能影响生产服务器,也不能暴露平台密钥 | Sandbox 沙盒 — 隔离容器,按需创建/销毁,工作 区持久化 |
| Agent 编排与调度 | Agent Loop 需要管理 Prompt 编排、工具路由、会话持久化,以及模型的灵活切换 | Agent Loop + MaaS 模型服务 |
| 完整的应用后端 | 用户生成的应用需要数据库、API、文件存储、用户认证等后端能力,而非仅仅是静态页面 | 应用后端与托管 — 数据库、云函数、云存储、身份认证、静态/容器托管,一站式提供 |
| 多租户隔离 | 每个用户的数据、计算、存储必须严格隔离,同时平台方需要统一管理和计费 | 多租户架构 — 一租户一环境,天然资源隔离,支持 CAM 和白标两种权限方案 |
整体架构
整体采用 N+1 架构——1 个平台 CloudBase 环境承载 Vibe Coding 平台本身(Agent Loop、Sandbox、模型推理),N 个用户 CloudBase 环境承载用户生成的应用(数据库、云函数、托管等),环境之间天然隔离:
核心设计原则:受控信任边界
- Agent Loop(受信任):平台方编写的确定性代码,持有全部凭证,负责编排和决策
- LLM(不受信任):模型输出不可预测,不感知任何密钥
- Sandbox(不受信任):执行 LLM 生成的代码,仅持有 当前用户的环境级密钥
为什么 Agent Loop 与 Sandbox 必须分离?
这一设计借鉴了 Anthropic 提出的 Brain / Hands 分离架构——Agent Loop 是"大脑"(Brain),负责推理与决策;Sandbox 是"双手"(Hands),负责执行代码。两者必须运行在不同的进程甚至不同的容器中,原因如下:
1. 安全隔离:凭证不可从沙箱触达
如果 Agent Loop 和 Sandbox 运行在同一个容器内,LLM 生成的恶意代码(例如通过 Prompt 注入)只需读取环境变量,就能获取平台凭证,进而创建不受限的新会话并扩散攻击。分离后,Sandbox 内没有任何平台级凭证,即使被攻破,攻击面也被限制在单个用户的环境级密钥范围内。
2. 故障隔离:组件可独立失败与替换
耦合架构下,容器成为不可丢失的"宠物"——一旦 Sandbox 内的用户代码导致 OOM 或容器崩溃,整个 Agent 会话都会丢失。分离后,Sandbox 变成可随时丢弃和重建的"牲畜",Agent Loop 只需从会话日志中恢复状态,重新挂载一个新的 Sandbox 即可继续工作。
3. 性能优化:推理不必等待容器启动
许多 Agent 交互(如纯对话、Prompt 编排、工具路由判断)根本不需要 Sandbox。耦合架构下,每次会话都必须等待容器启动,导致首 Token 延迟(TTFT)显著增加。分离后,不需要执行代码的请求可以立即开始推理,按需再启动 Sandbox。
4. 弹性扩展:多 Brain 调度多 Hands
分离架构使得一个 Agent Loop 可以按需调度多个 Sandbox(例如同时在不同容器中执行前端构建和后端部署),也可以多个 Agent Loop 实例共享同一个 Sandbox 池,实现更灵活的资源调度。
详细的信任边界设计和请求生命周期,参考 Agent 运行 - 受控信任边界。
核心能力
| 能力 | 解决什么问题 | 详细文档 |
|---|---|---|
| Agent 运行 | Agent Loop 编排、Sandbox 安全执行、MaaS 多模型接入,驱动「对话 → 编码 → 部署」全流程 | Agent 运行 |
| 应用后端与托管 | 为 Agent 产物提供数据库、云函数、云存储、身份认证等后端能力,以及静态托管、容器托管、自定义域名等部署能力 | 应用后端与托管 |
| 多租户隔离 | 一租户一环境,计算/数据/存储/网络天然隔离,支持 CAM 与白标两种权限方案,统一管理、统一计费 | 多租户架构 |
| 开源参考实现 | 基于 CloudBase 的完整开源 Vibe Coding 平台,可直接部署或作为起点二次开发 | OpenVibeCoding |