Skip to content

本页介绍的是本地沙箱。有关云端行为及其限制,请参阅对比本地沙箱与云沙箱。

用 sbx run claude 创建且不带任何额外标志的沙箱具有以下安全态势。

网络默认值 ​

所有出站 TCP 流量(包括 HTTP、HTTPS 和 SSH)都会被阻止,除非有显式规则允许该 目标。出站 UDP 默认关闭。要使用它,需要开启 experimental UDP feature 并添加 UDP 允许规则。ICMP 被阻止。DNS 查询使用沙箱的内部解析器,该解析器会强制 执行 network policy。

运行 sbx policy ls 查看当前安装生效的 network 规则。规则可以按机器用 sbx policy CLI 自定义,也可以在组织范围内集中管理。组织级规则的优先级高于本地规则。请参阅 Sandbox governance。

工作区默认值 ​

当你没有传入工作区路径时,sbx run 会挂载当前目录。智能体可以在该目录内读取、 写入和删除任何文件,包括隐藏文件、配置文件、构建脚本和 Git hooks。

当你在 sbx create 中省略工作区路径时,沙箱不会挂载宿主工作区。智能体会使用沙箱 模板的默认工作目录。Docker 提供的智能体模板使用 /home/agent/workspace。如果模板 没有定义可用的绝对工作目录,daemon 会使用该路径。该目录中的文件在停止和重启之间 保留,并在你删除沙箱时被删除。可用的工作区模式,以及直接挂载会话结束后需要审查的 内容,请参阅 Workspace isolation。

共享技能默认值 ​

为受支持的智能体创建的沙箱,默认会以只读方式挂载一个持久的共享技能存储。 skills.defaultMode 设置可以改变 这一默认值,--skills 则在创建时覆盖它。拥有 readwrite 访问权限的沙箱可以修改 其他参与沙箱加载的技能,包括以 readonly 访问权限挂载的沙箱所加载的技能。创建 沙箱时使用 --skills=off 可以省略共享存储。已存在的沙箱会保留原有挂载,直到被 重新创建。请参阅 Share agent skills。

凭据默认值 ​

除非你用 sbx secret 或环境变量提供凭据,否则沙箱无法使用任何凭据。提供凭据后, 宿主侧代理会把它们注入到出站 HTTP 头中。智能体无法读取原始凭据值。

配置说明请参阅 Credentials。

沙箱内的智能体能力 ​

智能体在沙箱 VM 内部以完全控制权运行:

  • sudo 权限(智能体以非 root 用户身份运行,但拥有 sudo 权限)
  • 一个私有的 Docker Engine,用于构建镜像和运行容器
  • 通过 apt、pip、npm 以及其他包管理器安装软件包
  • 对 VM 文件系统的完整读写权限

智能体在 VM 内安装或创建的一切,包括软件包、Docker 镜像、无挂载工作区文件和配置 变更,都会在停止和重启之间保留。当你用 sbx rm 删除沙箱时,VM 及其内容会被删除。 直接挂载的工作区文件和共享技能存储仍留在宿主上,作为克隆来源的仓库也一样。

默认被阻止的内容 ​

以下内容对所有沙箱都被阻止,无法通过策略配置更改:

  • 访问显式挂载的工作区和共享技能存储之外的宿主文件系统
  • 宿主 Docker daemon
  • 沙箱之间的直接网络通信
  • 直接对外的 ICMP 连接

到不在允许列表中的目标发出的出站 TCP 连接同样默认被阻止,但你可以用 sbx policy allow 添加允许规则。