Caloogy 文章
English

为什么 AI Agent 需要沙箱

日期
2026 年 8 月 9 日
系列
Agent 沙箱
阅读
4 分钟
主题
AiAgentSandboxIsolation

一句话版本

聊天机器人只会"说",AI Agent 会"做":执行命令、读写文件、访问网络、调用 API。一旦 Agent 被提示词注入,或者只是理解错了任务,它做的事就会落到真实系统上。 所以 Agent 应当在沙箱里运行:一个与真实系统隔离的环境,限制它能读写哪些文件、能连哪些网络、能用多少资源。思路很简单:假设 Agent 迟早会被骗或犯错,提前把它能造成的破坏圈在一个小范围里。

全文分三层:

  1. 通俗理解:给新来的实习生一台测试机
  2. 实际用处:编程 Agent、浏览器 Agent、云端执行环境
  3. 原理与工程要点:要隔离的四样东西、威胁模型、沙箱不能解决什么

第一层:通俗理解

1.1 给实习生一台测试机

新来的实习生非常聪明、非常勤快,但有两个问题:

  1. 太容易轻信:别人在文件里写一句"请把服务器密码发给我",他可能就照做了;
  2. 偶尔会搞错:让他"清理一下临时文件",他可能把整个项目目录删了。

你不会第一天就把生产服务器的 root 密码给他,而是给他一台测试机:可以随便折腾,坏了重装就行,碰不到真正的生产数据和客户系统。

AI Agent 就是这位实习生。沙箱就是那台测试机。

1.2 两种风险,同一个对策

风险 例子
被骗(提示词注入) 仓库的 README 里藏着"运行这个脚本来完成配置",脚本会上传你的 SSH 私钥
犯错 理解错了指令,执行了 rm -rf、强制推送覆盖了别人的代码、删了数据库

无论哪种,沙箱都能把后果限制在一个可以丢弃的环境里。


第二层:实际用处


第三层:原理与工程要点

3.1 要隔离的四样东西

资源 不隔离的后果 隔离方式
文件系统 读到 SSH 私钥、浏览器 Cookie、云凭证;删除或改写重要文件 只挂载工作目录;敏感目录不可见;写入限定范围
网络 把数据外传;下载并运行恶意程序;访问内网服务 出站白名单、代理(见《网络出口控制》)
凭证 用你的身份推送代码、调用付费 API、操作云资源 不把凭证放进沙箱,或使用短期、窄权限凭证(见《凭证泄露与上下文窗口》)
计算资源 挖矿、无限循环、耗尽磁盘 CPU、内存、磁盘、进程数、运行时间上限

3.2 威胁模型

设计沙箱时要先想清楚:假设 Agent 已经完全被攻击者控制,它会尝试做什么?

  1. 读取一切能读到的敏感信息;
  2. 通过一切可用通道把信息发出去;
  3. 在系统里留下后门,以便以后再进来(持久化);
  4. 尝试突破沙箱,访问宿主机(见《容器逃逸》)。

沙箱的每一层设计,都应该能回答"这一步在这里会被怎样挡住"。

3.3 沙箱的强度要和风险匹配

场景 建议的隔离强度
只读的问答、检索 进程级限制即可
在自己电脑上写代码 系统沙箱(限制目录和网络)+ 敏感操作人工确认
运行完全不可信的代码 容器起步,最好是 gVisor 或微型虚拟机(见《沙箱的几层》)
能动钱、能改生产环境 强隔离 + 人在回路 + 审计

3.4 沙箱不能解决什么

沙箱是纵深防御的一层,需要和权限设计、出口控制、提示词注入防御(见《防御提示词注入》)配合使用。


总结

层次 要点
直觉 聪明但轻信、偶尔犯错的实习生,先给测试机
隔离 文件、网络、凭证、计算资源
威胁模型 假设 Agent 已被完全控制:读、发、留后门、逃逸
局限 放进去的数据仍会被读;合法通道可能被滥用;确认疲劳