AI 智能体自主调研沙箱工具:遇到环境限制后自动迁移到 GitHub Actions 验证
Simon Willison 让 Claude Code 中的模型自主测试 smolvm 沙箱能力,因运行环境不支持嵌套…
开发者 Simon Willison 在一篇博客中记录了一次由 AI 智能体主导的研究实验:他让 Claude Code for web 中的模型对一个名为 smolmachines(也称 smolvm)的沙箱服务进行端到端测试,目标是用它来安全地执行不可信的 Python 与 JavaScript 代码,限制其 CPU 与内存资源、屏蔽网络访问,并仅允许访问指定范围内的文件系统。
任务原定在 Claude Code 环境内完成
智能体的设计目标是,把 smolvm 当作一个快速、轻量的安全沙箱,用于处理用户提交的数据转换任务等不可信代码。但在 Claude Code for web 的默认容器中,测试很快卡住了。智能体自动写下的排查记录显示:当前容器本身运行在 Firecracker 微虚拟机之上(Linux 6.18.5-fc-v20,4 vCPU、15 GB RAM),并且没有暴露 /dev/kvm,也没有 vmx/svm 等 CPU 虚拟化指令,因此无法支持嵌套虚拟化。
- 容器内的 smolvm 启动按预期失败,报错信息为「kvm not available」。
- 智能体随即切换思路(Plan B):GitHub Actions 的 Ubuntu runner 会暴露 /dev/kvm,因此可以在该 runner 中真实地安装并运行 smolvm。
- 智能体创建了一个临时的 GitHub Actions workflow 用于执行测试,收集日志后再在最终提交中移除该 workflow。
一个「穷尽办法」的实例
Willison 把这次实验当作 AI 智能体「不放弃」的又一个案例:当首选执行环境被技术限制挡在门外时,模型没有止步于报错,而是自行评估了替代方案的可行性,并落到了具体的工程动作——临时开 workflow、用完即删。这种「遇到障碍 → 自动寻找可行替代路径 → 落地执行」的链式行为,正是当前 agent 类能力被反复验证的方向。
适用范围与局限
需要指出的是,这并不是一个完整的产品评测:原文并未给出 smolvm 在资源限制、网络隔离、文件系统沙箱等方面的具体 API、参数或量化性能数据,更多是记录「能不能用」以及「在受限环境中如何用」的流程。读者如果关心 smolvm 的具体隔离机制,仍需查阅其官方文档。
