跳转到内容

沙箱执行模式:隔离环境中的 Agent 操作

沙箱执行模式:隔离环境中的 Agent 操作

1. 概念定义

沙箱执行(Sandbox Execution)为 Agent 提供隔离的文件系统和命令执行环境。Agent 在沙箱内的读写、命令执行操作不会影响宿主系统,从而在执行不受信任的代码或命令时保护宿主安全。

核心概念:

  • 虚拟路径:Agent 看到的路径(如 /mnt/user-data/)映射到宿主机的物理路径
  • Provider 模式:通过统一的 Sandbox 接口,支持多种后端(Local、Docker、Kubernetes)
  • 生命周期管理:每个任务 acquire 一个沙箱实例,完成后 release

2. 沙箱模式对比

模式隔离级别性能适用场景
Local低(仅目录隔离)最快开发调试、受信任环境
Docker中(容器隔离)中等生产部署、多用户场景
Kubernetes高(Pod 隔离)较慢大规模并发、企业部署

3. 虚拟路径系统

Agent 不直接操作宿主机路径,而是通过虚拟路径:

虚拟路径的好处:

  • 可移植性:Agent 代码不依赖具体的宿主机目录结构
  • 安全性:路径翻译层作为第二道防线,防止路径穿越攻击
  • 一致性:不同沙箱模式(Local/Docker)使用相同的虚拟路径

4. 沙箱工具集

典型的沙箱提供以下工具:

工具功能安全考量
bash执行 shell 命令最高风险,仅在 Docker/K8s 模式启用
ls目录列表仅显示沙箱内目录
read_file读取文件内容限制读取范围
write_file写入文件限制写入范围,支持追加模式
str_replace字符串替换精确修改文件内容

5. 陷阱与规避

5.1 Local 模式的安全风险

Local 沙箱仅通过目录隔离,Agent 的 bash 命令可以直接操作宿主机。

规避:Local 模式默认禁用 bash,仅启用文件读写工具。

5.2 路径穿越攻击

Agent 可能尝试通过 ../ 逃逸沙箱目录。

规避

  • 路径翻译层在每次操作前验证目标路径
  • 拒绝解析到沙箱根目录之外的路径

5.3 沙箱资源泄漏

沙箱实例未及时 release,导致容器/目录堆积。

规避

  • 中间件在 Agent 运行结束时自动 release
  • LRU 缓存限制沙箱实例数量
  • 定期清理超时的沙箱

参考来源