我在腾讯云 CVM 上实操 CubeSandbox:从部署到体验快照、克隆和回滚分享
本次实操运行在 OpenCloudOS 9(OpenCloud Operating System 9)上,现场算力由沐曦提供。腾讯云 CVM 和 API Key 也是现场统一发放的,所以整个过程可以直接从服务器登录开始。
一、本次实操目标三件事
第一,能不能在腾讯云 CVM 上顺利把环境搭起来;
第二,数字助手这条链路是不是能真正跑通;
第三,快照(Snapshot)、克隆(Clone)和回滚(Rollback)这些能力在实际操作里是不是足够直观。
跑完之后的感受是,这套东西的重点确实不只是“拉起一个沙箱”,而是把实例状态变成了可以保存、复制、恢复的对象。对做 AI Agent、沙箱调试或者并行实验的人来说,这个能力比单纯启动一个环境更有价值。
核心概念:CubeSandbox 的关键不是单次运行,而是把 实例状态 做成可管理的能力。
二、我的操作步骤(Initial Setup)
1. 登录服务器
先通过 SSH(Secure Shell)连进腾讯云 CVM:
ssh root@<服务器ip> -p 9888连上去之后,后面的操作就都在这台机器上完成。
2. 先装 PVM 内核
CubeSandbox 不是直接装完就能跑,它依赖 PVM(Protected Virtual Machine)相关内核,所以我先处理宿主机环境。
执行:
dnf install -y kernel-6.6.69-1.1.cubesandbox.oc9这一步可以理解成先把运行虚拟化沙箱所需要的底层能力补齐。
3. 切默认内核并重启
内核装完之后,还要把它切成默认启动项:
grubby --set-default /boot/vmlinuz-6.6.69-1.1.cubesandbox.oc9.x86_64如果命令执行成功,一般会看到The default is ...这一类回显,这不是报错。
然后继续配置 PVM 所需启动参数:
curl -sL https://cnb.cool/CubeSandbox/CubeSandbox/-/git/raw/master/deploy/pvm/grub/host_grub_config.sh | bash做完这一步之后,直接重启:
reboot三、重启之后我先确认宿主机状态(Host Verification)
服务器重启回来之后,我没有立刻继续下一步,而是先确认宿主机是不是已经切到了正确的内核。
1. 验证内核版本
执行:
uname -r预期看到:
6.6.69-1.1.cubesandbox.oc9.x86_64只要输出里能看到cubesandbox.oc9,这一步基本就算对了。
2. 加载 KVM 模块
然后加载 KVM(Kernel-based Virtual Machine)模块:
modprobe kvm_pvm再检查是否已经加载成功:
lsmod | grep kvm_pvm最后把它写到开机自动加载配置里:
echo 'kvm_pvm' > /etc/modules-load.d/kvm-pvm.conf到这里,宿主机层面的准备就差不多了。
四、正式安装 CubeSandbox(Install CubeSandbox)
宿主机环境准备完之后,我才开始安装 CubeSandbox 本体。
执行一键安装脚本:
curl -sL https://cnb.cool/CubeSandbox/CubeSandbox/-/git/raw/master/deploy/one-click/online-install.sh | CUBE_PVM_ENABLE=1 MIRROR=cn bash这一步比较直接,脚本跑完之后,主体服务就已经装上了。
1. 我是怎么判断它真的装好的
我没有只看安装脚本有没有报错,而是直接跑了一次模板创建。
cubemastercli tpl create-from-image \ --image cube-sandbox-cn.tencentcloudcr.com/cube-sandbox/sandbox-code:latest \ --writable-layer-size 1G \ --expose-port 49999 \ --expose-port 49983 \ --probe 49999跑完之后,再看
cubemastercli tpl list。如果模板状态是READY,那我才认为这套环境真的能用了。
五、进入 WebUI 后,我先把数字助手接起来(WebUI and Assistant Setup)
1. WebUI 登录信息
WebUI(Web User Interface)地址:http://<机器ip>:12088
默认账号:admin
默认密码:admin
登录进去之后,首页可以看到当前的沙箱实例和模板信息。
2. 配置模型服务
进入数字助手页面后,我先配了 LLM(Large Language Model)服务。这里填的是现场给的模型接入参数:
- Provider
OpenAI Compatible - LLM Base URL
https://newapi-2607.cubesandbox.com/v1 - 模型 ID
hy3-preview - LLM API Key
现场签到处发放的 Key - 凭证交付方式
凭证托管(推荐)
保存之后,密钥会由 CubeEgress 托管,沙箱内部拿不到真实 Key,这点对开发环境来说还是很重要的。
3. 安装 OpenClaw 镜像
配置完成后,我关闭弹窗,点击“去应用市场”,然后在应用市场里选择OpenClaw镜像安装到数字助手。
等模板制作完成之后,会弹出实例创建窗口。这里我给实例起了一个名字,同时把“状态管理模式”设置成完整快照型。
继续创建之后,等待几秒,数字助手就能初始化完成。
六、我实际遇到的两个问题(Issues I Hit)
1. OpenClaw 有时候点了不会立即跳转
这是我现场最先遇到的一个小问题。实例创建完之后,点击 OpenClaw,有时候页面不会马上进去。
这个时候不用先判断成服务异常,我这边实际试下来,很多时候只是第一次点击没反应。直接手动再点进去,一般就能正常打开。
2.sk密钥有时需要重新配置,再重新登录 OpenClaw
另一个更偏使用层面的问题是,OpenClaw 偶尔会出现需要重新配置sk密钥的情况。我的处理方式是重新回到数字助手的模型配置弹窗,把 Key 再配置一遍,然后重新进入 OpenClaw。
如果你已经确认镜像和实例都正常,但对话侧还是不工作,优先检查一次密钥配置是不是丢了或者没带上。
这个问题不一定每次都会出现,但既然实操里碰到了,我觉得最好直接写进来,免得后面的人卡住时没有排查方向。
七、我怎么验证快照能力(Snapshot Walkthrough)
OpenClaw 进来之后,我先在底部模型选择器里选了hy3-preview,然后发了一条简单的命令,看看它能不能正常操作文件。
1. 先写一个文件
我发送的 prompt 是:
往“/root/a.txt”写入“测试消息111”。然后 cat 一下文件给我。如果这一步返回正常,就说明当前对话实例已经具备可操作的工作环境。
2. 基于当前状态创建快照
确认/root/a.txt已经写进去之后,我回到 CubeSandbox 的实例卡片,点击“管理”,进入“状态管理”,然后点击“创建存档”。
这一刻我比较直观地理解了快照这个功能的意义:不是只保存一个文件,而是把这个实例当前的整个状态定格下来。
八、我怎么验证克隆能力(Clone Walkthrough)
有了快照之后,我接着做的是“创建分身”。
1. 从已有实例创建分身
在“状态管理”页面点击“创建分身”,等它创建完成之后,首页会多出一个新的分身卡片。
然后我进入分身的“Gateway 管理”页面。
2. 验证分身是否独立
一进去就能看到,历史对话和原始实例是同步的,这说明它的起点状态是一致的。
为了验证后续是否隔离,我在分身里执行:
往“/root/b.txt”写入“我是分身”。然后 cat 一下文件给我。然后再回到原始实例里输入:
帮我看看 /root/b.txt 这个文件内容。原始实例里看不到/root/b.txt,这就说明虽然分身是从原实例复制出来的,但从分叉之后开始,两边已经互不影响了。
九、我怎么验证回滚能力(Rollback Walkthrough)
最后我验证的是回滚,因为这个能力最像开发者日常会遇到的真实场景。
1. 先主动制造一次破坏
我在原始实例里输入:
帮我删除 /root/a.txt然后继续确认:
看看 /root/a.txt 还在不在?确认文件确实已经没了。
2. 回到快照时刻
接着我回到 CubeSandbox 控制台,进入原始实例的“状态管理”页面,选中之前创建的存档,点击右侧“回档”。
这个动作很快,基本是立即生效。
3. 检查回滚结果
重新进入原始实例的“Gateway 管理”页面后,可以看到对话历史已经退回到了打快照的时间点,刚才删除/root/a.txt的记录也不见了。
我最后又发了一句:
帮我看看这个文件 /root/a.txt 在不在?这时文件已经恢复了,说明整个环境状态确实被还原回去了。
十、从这次实操里,我比较在意的几个点(Developer Notes)
这次实操让我比较在意的,不是“功能有没有”,而是这些能力在开发者视角下是不是足够顺手。
第一,宿主机准备虽然步骤不多,但如果完全只给命令、不解释作用,第一次上手的人还是容易发懵。所以教程里最好把“为什么做这一步”和“做完之后应该看到什么”一起写出来。
第二,OpenClaw 的交互偶尔会有一点不稳定,比如第一次点击没进去,或者需要重新配置skKey 才能恢复可用。这类问题不算致命,但它们确实会影响第一次实操体验。
第三,快照、克隆和回滚这三件事放在一起之后,CubeSandbox 才开始真正体现出它的开发工具属性。尤其是在调试 Agent 行为、复现实验结果、做多分支尝试的时候,这种状态管理能力会很实用。
十一、相关链接(References)
- CubeSandbox 仓库
https://github.com/TencentCloud/CubeSandbox - OpenCloudOS 仓库
https://gitee.com/OpenCloudOS
