Sandbox
沙箱让 Agent 执行的代码/命令运行在隔离环境,限制副作用。
详解
沙箱(Sandbox)是与宿主系统隔离的受限执行环境。Agent 生成并运行代码时,代码应只在容器或虚拟机内活动:只能访问显式挂载的文件,默认不暴露生产数据库、云凭证和宿主路径,网络要么关闭要么走白名单,执行后清理环境。为什么必须用沙箱?Agent 生成的代码有可能是错的(幻觉),也可能被攻击者通过间接注入植入恶意逻辑;一旦直接在宿主机上运行,后果轻则覆盖文件,重则 RCE(远程代码执行)或凭证泄漏。常见实现是 Docker 容器,但 Docker 不是安全银弹,需配合只读文件系统、资源限额、非 root 用户和 seccomp 等限制;更严格的场景会用 gVisor 或 Firecracker 微型虚拟机。
一个类比
像孩子玩的"沙盒游戏区"——里面的沙子随便堆随便挖,倒了也没事;但沙子不能跑到游戏区外面去弄脏整个客厅。AI 的沙箱同理:代码在里面爱怎么跑怎么跑,出了这个圈什么都碰不到。
举个例子
Agent 接到任务:"帮我分析这段 CSV,计算平均值。"
它生成了如下代码:
import pandas as pd; df = pd.read_csv('data.csv'); print(df.mean())
如果直接在宿主机执行,万一 Agent 被注入了恶意指令,生成的代码变成了
import os; os.system('rm -rf /')
——整台机器的文件就没了。
用沙箱(Docker 容器)执行时:容器只挂载了那一份 CSV,没有网络,没有其他文件权限。即使 rm -rf / 也只是把这个一次性容器清空,宿主机毫发无损。PYTHON 示例
相关概念
- → Coding Agent· 编码 Agent
- → Human-in-the-Loop· 人在回路