Skip to content

沙箱系统限制 AI 代理的文件操作和命令执行权限,通过平台适配的隔离机制保护用户系统安全。

为什么需要 Sandbox

AI 代理具有执行任意命令和修改文件的能力,这带来了安全风险——代理可能生成意外或恶意的命令。沙箱系统通过限制代理的文件系统访问和网络访问范围,确保代理只能操作 workspace 内的文件,无法访问敏感系统文件或执行危险操作。

核心原理

  1. 平台适配SandboxManager 根据平台自动选择 Seatbelt(macOS)、Landlock+Bwrap(Linux)或 Restricted Token(Windows)
  2. 命令包装SandboxManager::transform() 将原始命令包装为在沙箱中执行的 SandboxExecRequest
  3. 双层防御ExecPolicy(策略层)在执行前评估命令权限,平台沙箱(隔离层)在执行时强制限制
  4. 权限扩展:通过 additional_permissions 支持用户审批后临时扩展访问范围

在源码中的实现

  • codex-rs/sandboxing/src/manager.rsSandboxManagerSandboxTypeSandboxCommandSandboxExecRequest
  • codex-rs/sandboxing/src/seatbelt/ — macOS Seatbelt 实现
  • codex-rs/sandboxing/src/bwrap/ — Linux Bubblewrap 实现
  • codex-rs/linux-sandbox/src/lib.rs — Linux 沙箱辅助二进制
  • codex-rs/execpolicy/src/policy.rsPolicyDecisionNetworkRule

相关概念