Simon Willison短讯
smolmachines / smolvm 作为不可信 Python 和 JavaScript 的沙箱
作者让 Claude Fable 5 在 Claude Code for web 中评估 smolmachines.com 作为快速安全沙箱的可行性,目标是限制 CPU、内存、网络和文件系统访问。由于环境不支持嵌套虚拟化,Claude 改用 GitHub Actions 运行测试,展示了其主动解决问题的能力。
我让运行在Claude Code for web中的Claude Fable 5执行了以下研究任务:
对https://smolmachines.com进行测试,将其作为快速安全的沙箱。探索用它运行不受信任的Python和JavaScript代码需要什么条件,要求能够限制其占用的RAM和CPU时间(防止“while true”死循环),无网络访问权限,且文件系统访问仅限于指定文件。目标是能够用它执行用户提供的任务,例如数据转换。
它很快遇到了一个问题:Claude Code for web环境无法运行smol machines。引用它写的笔记:
这个Claude Code容器:Linux 6.18.5-fc-v20(本身是Firecracker虚拟机),4 vCPU,15GB RAM。没有/dev/kvm,没有vmx/svm CPU标志 → 不支持嵌套虚拟化。smolvm machine run按预期失败:“kvm not available”。备选方案:GitHub Actions ubuntu运行器确实暴露了/dev/kvm → 通过该分支上的临时工作流运行真实测试套件,收集日志,在最终提交中移除工作流。
而备选方案正是它所做的——安装smolvm,直接在GitHub Actions运行器上针对该分支运行这些测试。
这是对Claude Code for web环境限制的一个创造性解决方案。也是Fable始终积极主动的又一例证。