← 全部期次
第二十六期 · 18:27

AI Agent 的沙箱到底是什么

不是安全等级,是任务边界|技术解析 · 同行向

本视频含 AI 生成内容(音频由 AI 合成,已按平台要求声明)。

本期聊什么

我们给客户做故障诊断助手时踩过一次坑:代码节点要把中间结果落到文件、下一个节点读回来,跑起来一直报错。查了半天才发现,那个节点跑在一个沙箱里,文件系统是只读的,连系统临时目录都不给写。后来我们把这件事记成一句话:沙箱禁写文件。

但那句话只回答了一个问题,有些事在里面做不了。到底哪些做不了?换成别的隔离方式又会怎样?没人给过一张能对照的表,所以我们自己量了一遍:27 项探针覆盖文件系统、网络、执行能力、运行环境、状态五组,搭六种执行环境(无隔离基线、普通容器、收紧容器、只读根加工作区卷、远端一次性、远端长驻),同一份探针跑六遍。

四条反直觉发现。一、容器的默认身份是最高权限,系统权限清单里带着一组权限、十四项,不是空的,身份必须自己显式指定。二、只读根不等于锁住了:只读根加一块可写临时区、再加一条出网的路,它照样能在运行期给自己装工具,我们实测装包成功且当场可用;想堵死这条路,要同时做到没有可写的安装目录、并且网络是断的。三、资源超限不是报错,是被内核打死:设了内存上限再让它分配两个 G,结果是退出码 137,进程被 SIGKILL,agent 自己的异常捕获兜不住,日志也一起消失,兜底只能在外部。四、状态保不保留跟隔离级别无关,由容器生命周期决定:一次性容器两次运行互不影响,长期容器第二次能看到上一次的痕迹。

我们还拆了一个真实平台(Dify)的沙箱做对照:它在同一个产品里配了两套沙箱,代码节点那套收得极紧,根目录只剩五项、写文件报权限拒绝、域名解析与子进程全被系统调用白名单拦下;命令行工作区那套必须有可写空间和受控出网,隔离重点从关死转成管住出口。同一个产品,两个任务形态不同,答案就不同。

落点是一句判据:按「任务要碰什么、要活多久、出错的代价能不能回滚」三问选隔离级别。隔离强度不是安全等级,是任务边界;沙箱不是把 agent 关起来,是提前告诉它哪里能走,以及走错的代价。

完整实测数据、每级完整命令与复现材料见下方文章。

时间轴
  1. 00:00开场
  2. 00:28从一次报错说起
  3. 01:42不只是安全设备
  4. 03:25沙箱回答三个问题
  5. 04:10我们是怎么量的
  6. 05:18发现一:默认最高权限
  7. 06:32发现二:只读根不等于锁住
  8. 07:49发现三:超限是被打死
  9. 08:41发现四:状态看生命周期
  10. 10:17网络现象:代理白名单
  11. 11:06Dify 为什么配两套沙箱
  12. 15:02怎么选:一条判据
  13. 17:12收尾:边界说得清
本期的文字版

联系我

邮箱contact@fishsun.cn

点击邮箱直接写信 · 扫码加微信沟通

微信

微信二维码

扫码加微信 · 备注「门户」更快通过