跳到主要内容
AI News HubLIVE
站内改写3 分钟阅读

Anthropic 发布 sandbox-runtime:为 AI 智能体提供操作系统级沙箱,无需容器

文章摘要

Anthropic 开源了 sandbox-runtime(srt),这是 Claude Code 沙箱化 bash 工具背后的操作系统级沙箱。它借助 macOS 的 Seatbelt 和 Linux 的 bubblewrap 限制进程可访问的文件与网络主机,无需启动容器,也可包裹自研智能体、本地 MCP 服务器和普通命令行程序。

来源MarkTechPost作者: Asif Razzaq
Anthropic 发布 sandbox-runtime:为 AI 智能体提供操作系统级沙箱,无需容器
报告错误

纠错通道尚未开通,可先复制下方文章信息留存。

查看更正说明
直接读正文

本文将讨论近期在开源社区引发关注的 Anthropic sandbox-runtime(简称 srt)。它是 Claude Code 沙箱化 bash 工具背后的操作系统级沙箱,用于限制一个进程能够访问哪些文件、能够连接到哪些主机,而且无需启动容器。srt 并不局限于 Claude Code:你自己的智能体、本地 MCP 服务器以及普通命令行程序都可以在它内部运行。

速览(TL;DR)

  • 体积与许可:npm 包 @anthropic-ai/sandbox-runtime v0.0.81,解包后约 11.4 MB,采用 Apache-2.0 许可,要求 Node.js 22.12+。
  • 运行环境:任何 macOS 或 Linux 开发机与 CI 机器均可。macOS 使用 Seatbelt;Linux 需要 bubblewrap、socat 和 ripgrep。Windows 支持处于 alpha 阶段。
  • 性能:Anthropic 内部使用数据显示,沙箱化使 Claude Code 的权限提示减少了 84%(为官方自报数据)。
  • 最佳情况:权限提示减少 84%,同时对整个进程树施加文件与网络限制。
  • 最差情况:仍属 beta 研究预览版,Windows 支持为 alpha。

什么是 Anthropic sandbox-runtime?

Anthropic sandbox-runtime 是一个开源工具,可以为任意进程套上文件系统与网络限制。安装方式为 npm install -g @anthropic-ai/sandbox-runtime,随后在命令前加上 srt 前缀即可运行。它既可作 CLI 使用,也可作为 TypeScript 库调用。

在 macOS、Linux 与 Windows 上如何工作?

srt 使用各操作系统自身的隔离原语,其限制覆盖整个进程树,包括脚本与子进程。

  • macOS:使用 sandbox-exec 配合动态生成的 Seatbelt 配置文件,仅需 ripgrep。
  • Linux:使用 bubblewrap 并移除网络命名空间,另外需要 socat 与 ripgrep。
  • Windows(alpha):使用专用的 srt-sandbox 账户、Windows Filtering Platform 出站围栏以及显式的文件 ACL。

流量只能通过宿主机上运行的 HTTP 与 SOCKS5 代理离开。在 Linux 上,这些代理位于绑定挂载进沙箱的 Unix 套接字后面;在 macOS 上,Seatbelt 配置只允许一个 localhost 端口。代理随后应用你的域名允许列表与拒绝列表。

为什么同时需要文件系统与网络隔离?

Anthropic 团队认为,只有其中一道边界而缺少另一道就会失效。如果没有网络隔离,被提示注入的智能体可能窃取 SSH 密钥并外传;如果没有文件系统隔离,它可能逃出沙箱并获得网络访问能力。

srt 的默认值遵循这一逻辑:读取默认在所有位置允许,除非被拒绝;写入默认在所有位置拒绝,除非被允许;网络访问默认拒绝,除非某个域名被加入允许列表。

如何为 MCP 服务器或你自己的智能体加上沙箱?

对于 MCP 服务器,只需把 .mcp.json 中的命令从 npx 改为 srt,并将原命令作为参数传入。规则随后写在 ~/.srt-settings.json 中,例如设置 network 的 allowedDomains(如 api.github.com、*.npmjs.org)与 deniedDomains,以及 filesystem 的 denyRead(如 ~/.ssh)、allowWrite(如 .)和 denyWrite(如 .env)。

对于你自己的智能体,该库提供 SandboxManager:调用 initialize(config) 启动代理,然后用 wrapWithSandbox() 返回一个可被 spawn 的包装后命令字符串。

84% 这个数字意味着什么?

Anthropic 报告称,内部 Claude Code 使用中沙箱化将权限提示减少了 84%。这是自报数字,并非外部基准测试。其目标是缓解“审批疲劳”:整天点击“批准”的开发者最终会不再阅读自己批准的内容。固定边界让智能体可以在边界内自由工作,只在边缘处请求授权。

真正的权衡:严格的允许列表与可用的智能体

编码智能体不只是编辑文件,它们还会安装依赖、获取文档、调用 API。允许列表太严格,npm install 会失败;太宽松,沙箱便几乎起不到保护作用。srt 提供了若干调节项来寻找中间地带:

  • 通配符与端口:如 *.npmjs.org 或 api.example.com:443。
  • Ask 回调:决定没有规则覆盖的主机如何处理,并可返回一个模型能读取的理由。
  • 按命令允许列表:仅为某一次调用临时开放某个注册源。
  • 实时更新:--control-fd 可在命令运行期间切换网络列表。
  • 解析地址检查:阻止解析到回环地址或云元数据 IP 的被允许域名。
  • 拒绝域名理由:告诉智能体被认可的替代方案,例如改用 HTTPS git 远程地址。

与其他智能体沙箱的对比

  • 隔离方式:Anthropic sandbox-runtime 使用 OS 原语(Seatbelt、bubblewrap、Windows 账户 + WFP);OpenAI Codex CLI 沙箱使用 OS 原语(Seatbelt、bubblewrap、原生 Windows 沙箱);Docker Sandboxes 为每个沙箱一个 microVM;E2B 为每个会话一个 Firecracker microVM。
  • 运行位置:srt 与 Codex 在本机;Docker Sandboxes 在本机;E2B 在云或 BYOC(AWS、GCP)。
  • 是否需要容器或虚拟机:srt 不需要;Codex 不需要;Docker Sandboxes 需要(microVM);E2B 需要(托管 microVM)。
  • 能否在其自身智能体之外使用:srt 可以,提供 CLI + 库,适用于任意进程;Codex 内置于 Codex;Docker Sandboxes 提供 sbx CLI 供编码智能体使用;E2B 提供 JS 与 Python SDK。
  • 网络默认值:srt 默认全部拒绝,经代理允许列表;Codex 在 workspace-write 下默认关闭,可配置开关;Docker Sandboxes 在首次启动时选择策略(如全部拒绝、平衡);E2B 默认开启,可禁用。
  • 域名允许列表:srt 支持通配符与端口;Codex 未披露(文档仅有开/关切换);Docker Sandboxes 支持通配符与端口;E2B 通过 allowOut 支持通配符(基于 SNI/Host)。
  • 许可:srt 为 Apache-2.0;Codex 为 Apache-2.0;Docker Sandboxes 未披露;E2B 的 SDK 为 Apache-2.0。
  • 状态:srt 为 beta 研究预览,Windows 为 alpha;Codex 已随 Codex CLI 发布;Docker Sandboxes 为已发布产品;E2B 为已发布产品。

要点

  • srt 在操作系统层为任意进程加沙箱,无需容器。
  • macOS 使用 Seatbelt,Linux 使用 bubblewrap,Windows 处于 alpha。
  • 网络默认拒绝;每个连接都经过宿主机侧的允许列表代理。
  • Anthropic 报告 Claude Code 权限提示减少 84%(内部数据)。
  • 允许列表的宽窄才是真正的安全旋钮;过宽的域名可能导致数据外泄。

你可以查看 GitHub 仓库、Anthropic 工程博客以及 Claude Code 沙箱文档以了解更多细节。所有功劳归于该项目的 safety 研究者。

展开要点与分析

文章情报

工程师进阶

要点

  • srt 以 npm 包 @anthropic-ai/sandbox-runtime v0.0.81 发布,解压后约 11.4 MB,采用 Apache-2.0 许可,需 Node.js 22.12+。
  • macOS 使用 Seatbelt,Linux 依赖 bubblewrap、socat 和 ripgrep,Windows 支持仍为 alpha。
  • 默认策略为读取宽松、写入默认拒绝、网络默认拒绝并经过宿主机代理白名单。
  • Anthropic 称内部使用中沙箱将 Claude Code 的权限提示减少了 84%(自我报告数据)。

要点与分析由自动化流程生成,可能有误,请结合原始来源核实。