代码智能体的沙盒执行
绝不要在主机上运行模型生成的代码——请使用 gVisor、Firecracker 或 E2B 沙盒。
代码智能体的沙盒执行 是 CoddyKit 上的免费 AI Agents 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Agents 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Agents 课程共包含 4 节课。
本课时的部分内容尚未翻译,以英文显示。
为什么需要沙箱?
代码代理(Devin、Claude Code、OpenDevin)会运行模型生成的代码。如果您在主机上运行这些代码,模型就可以:
- 读取您的机密信息或接口密钥
- 删除文件
- 发起出站网络调用
- 挖掘加密货币
沙箱 = 限制损害范围的隔离环境。
隔离级别
| 级别 | 工具 | 用途 |
|---|---|---|
| 进程 | subprocess + chroot | 安全性低,仅用于开发 |
| 容器 | Docker | 较好的默认选择 |
| VM / microVM | Firecracker、gVisor | 强隔离 |
| 托管沙箱 | E2B、Daytona | 最容易用于生产环境 |
Docker Sandbox Basics
docker run \
--rm \
--network=none \
--memory=512m \
--cpus=0.5 \
--read-only \
--user=nobody \
-v /tmp/work:/work:rw \
python:3.11-slim \
python /work/script.py网络隔离
--network=none 会禁用出站流量。某些任务需要有限的互联网访问——请使用仅允许特定主机的出站代理。
资源限制
上限可以防止 CPU 或内存失控:
--memory——RAM 上限--cpus——CPU 份额--pids-limit——进程数量--ulimit——文件描述符数量
Firecracker / gVisor
如果需要比 Docker 更强的隔离:
- Firecracker——由 AWS 提供的 microVM,被 Lambda 使用
- gVisor——Google 提供的用户空间内核,可直接替代 Docker
- Kata Containers——结合 Docker 使用体验与 VM 隔离
E2B 托管沙箱
E2B(e2b.dev)通过接口为您提供远程沙箱:
# pip install e2b
import e2b
sandbox = e2b.Sandbox(template='python', api_key='...')
result = sandbox.run_code('print(2 + 2)')
print(result.stdout) # '4'
sandbox.close()Daytona
Daytona 提供类似的托管沙箱功能,面向开发工作区。
文件系统沙箱
仅以读写方式挂载代理需要的内容;其他所有内容都设为只读或隐藏:
docker run -v ${PWD}/workdir:/workdir:rw \
-v ${PWD}/readonly:/readonly:ro ...时间限制
限制执行的实际耗时,以防止无限循环:
docker run --rm --stop-timeout 30 ... \
python -c 'import resource; resource.setrlimit(resource.RLIMIT_CPU, (30, 30)); exec(open("/work/script.py").read())'日志记录
捕获每条命令、每个输出和每次文件更改。对于高风险代理,请记录完整的沙箱会话审计日志。
多租户沙箱
为每位用户分别提供沙箱,可以防止用户污染彼此的状态。每次会话都启动一个全新的沙箱;会话结束后将其拆除。
成本与安全性
更强的隔离意味着更高的成本(每个 VM 都有额外开销)。请根据风险匹配隔离级别:
- 面向用户的教程或沙箱功能:Docker 已经足够
- 会接触机密信息的生产代码:Firecracker / E2B
网络封锁
如何防止代码代理发起任何出站网络调用?
回顾
NEVER 在您的主机上运行模型生成的代码。请根据风险选择隔离级别:开发环境使用 Docker,生产环境使用 gVisor / Firecracker / E2B。限制 CPU、内存、运行时间和网络。
常见问题解答
「代码智能体的沙盒执行」课时是免费的吗?
是的 — 「代码智能体的沙盒执行」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Agents 课程的其余内容,请升级到 CoddyKit PRO。 AI Agents 课程共包含 4 节课。
「代码智能体的沙盒执行」这节课中我会学到什么?
绝不要在主机上运行模型生成的代码——请使用 gVisor、Firecracker 或 E2B 沙盒。 你通过在浏览器中直接运行的动手代码来练习 AI Agents,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 AI Agents 需要有经验吗?
无需任何先前经验。CoddyKit 上的 AI Agents 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「代码智能体的沙盒执行」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 AI Agents 课中编写并运行代码吗?
能。每节 AI Agents 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 提示词注入防御
- 输出过滤(Llama Guard、NeMo)
- 代码智能体的沙盒执行
- 工具访问控制