跳到正文
RadarAI· MarkTechPost(RSS)·· 6 小时前AI 评分71

Anthropic 开源 sandbox-runtime:无需容器的操作系统级 AI Agent 沙箱

AI 导读

Anthropic 开源 sandbox-runtime(srt),这是 Claude Code 沙箱 bash 工具背后的操作系统级沙箱,用 macOS Seatbelt、Linux bubblewrap 等原生机制限制任意进程的文件与网络访问,无需容器。

正文 · AI 翻译

MarkTechPost· Asif Razzaq·2026-10-24 19:12· 4 小时前AI 评分73

认识 Anthropic 的 sandbox-runtime:面向 AI 智能体的操作系统级沙箱,无需容器

AI 导读

Anthropic 开源的 sandbox-runtime(srt)是 Claude Code 沙箱 bash 工具背后的操作系统级沙箱,用 macOS Seatbelt、Linux bubblewrap 等原生隔离机制限制任意进程的文件与网络访问,无需容器,npm 包 @anthropic-ai/sandbox-runtime v0.0.81,Apache-2.0 协议。

正文 · 原文

本文将讨论近期热门的 Anthropic 开源项目 sandbox-runtime (srt),它是 Claude Code 沙箱 bash 工具背后的操作系统级沙箱。Anthropic sandbox-runtime 限制进程可以访问哪些文件、可以连接哪些主机。它无需启动容器即可做到这一点。它也不绑定于 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 库使用。

sandbox-runtime 在 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 中的 command 从 npx 改为 srt。将原始命令作为参数传入。规则随后位于 ~/.srt-settings.json 中:

复制代码已复制使用其他浏览器

{
  "network": { "allowedDomains": ["api.github.com", "*.npmjs.org"], "deniedDomains": [] },
  "filesystem": { "denyRead": ["~/.ssh"], "allowWrite": ["."], "denyWrite": [".env"] }
}

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

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

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

真正的权衡:严格的允许列表 vs 可工作的智能体

编码智能体做的不仅仅是编辑文件。它们安装依赖、拉取文档并调用 API。允许列表设得太严,npm install 就会失败。设得太松,沙箱就保护不了什么。srt 提供了几个调节参数来把握中间地带:

  • 通配符和端口: 诸如 *.npmjs.org 或 api.example.com:443 的条目。
  • 询问回调: 决定没有规则覆盖的主机,并可返回模型会读取的理由。
  • 按命令允许列表: 仅为 1 次调用开放注册表。
  • 实时更新: --control-fd 在命令运行时替换网络列表。
  • 解析地址检查: 阻止解析到回环或云元数据 IP 的允许名称。
  • 拒绝域名理由: 告知智能体被批准的替代方案,例如 HTTPS git 远程仓库。

它与其他智能体沙箱相比如何?

功能Anthropic sandbox-runtimeOpenAI Codex CLI 沙箱Docker SandboxesE2B
隔离操作系统原语:Seatbelt、bubblewrap、Windows 账户 + WFP操作系统原语:Seatbelt、bubblewrap、原生 Windows 沙箱每个沙箱一个 microVM每个会话一个 Firecracker microVM
运行位置本地机器本地机器本地机器云或 BYOC(AWS、GCP)
需要容器或 VM否否是(microVM)是(托管 microVM)
可在其自身智能体之外使用是,CLI + 库适用于任何进程内置于 Codex是,sbx CLI 适用于编码智能体是,JS 和 Python SDK
网络默认全部拒绝;代理允许列表在 workspace-write 中关闭;配置开关首次启动时选择策略(例如全部拒绝、平衡)默认开启;可禁用
域名允许列表是,通配符 + 端口未披露(文档记录了开/关切换)是,通配符 + 端口是,allowOut 支持通配符(基于 SNI/Host)
许可证Apache-2.0Apache-2.0未披露Apache-2.0(SDK)
状态Beta 研究预览;Windows alpha随 Codex CLI 发布已发布产品已发布产品

关键要点

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

查看 GitHub 仓库、Anthropic 工程博客文章 和 Claude Code 沙箱文档。所有功劳归于该项目的研究者。另外,欢迎在 Twitter 上关注我们,别忘了加入我们的 150k+ ML SubReddit 并订阅 我们的新闻通讯。等等!你在 Telegram 上吗?现在你也可以在 Telegram 上加入我们。

需要与我们合作推广您的 GitHub Repo 或 Hugging Face 页面或产品发布或网络研讨会等? 联系我们

文章 Meet Anthropic’s sandbox-runtime: OS-Level Sandboxing for AI Agents, No Containers 首次出现在 MarkTechPost。

来源:MarkTechPost · marktechpost.com

来源:RadarAI · aihot.news