Anthropic 开源 sandbox-runtime:为 AI 智能体提供无容器 OS 级沙箱
Meet Anthropic’s sandbox-runtime: OS-Level Sandboxing for AI Agents, No Containers - MarkTechPost
Anthropic 开源 sandbox-runtime(srt),以 OS 级隔离限制进程可访问的文件和网络主机,无需启动容器,npm 包 @anthropic-ai/sandbox-runtime v0.0.81 采用 Apache-2.0 许可,要求 Node.js 22.12+。macOS 使用 Seatbelt,Linux 依赖 bubblewrap、socat 和 ripgrep,Windows 支持处于 alpha 阶段。Anthropic 称内部 Claude Code 使用中权限提示减少 84%,该数字为自报数据;网络默认拒绝,流量经主机侧代理按域名白名单放行。
推荐理由
AI 评分 70
原文给出了 srt 在 macOS、Linux、Windows 上的隔离机制和与 Codex CLI、E2B 的对比,便于判断无容器沙箱的适用边界。
主题
正文 · AI 翻译
将我们添加为 Google 首选来源
在本文中,我们将讨论近期备受关注的开源项目 Anthropic 的 sandbox-runtime(srt),它是 Claude Code 沙箱化 bash 工具背后的操作系统级沙箱。Anthropic sandbox-runtime 限制进程可以访问哪些文件、可以连接哪些主机。它无需启动容器即可实现这一点。它也不绑定于 Claude Code。你自己的智能体、本地 MCP 服务器以及普通命令行程序都可以在其中运行。
简要说明
体积: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 库使用。
TEXTTABLELAYOUT你的 PDF 解析器真的解析正确了吗?omni_parse_bench · 对文本、表格和布局评分 · 开源在 GitHub 上加星→赞助
sandbox-runtime 在 macOS、Linux 和 Windows 上如何工作?
srt 使用各操作系统自身的隔离原语。其限制覆盖整个进程树,包括脚本和子进程。
macOS:使用 sandbox-exec 和动态生成的 Seatbelt 配置文件。仅需 ripgrep。
Linux:使用移除了网络命名空间的 bubblewrap。还需要 socat 和 ripgrep。
Windows(alpha):使用专用的 srt-sandbox 账户、Windows 筛选平台出站防护以及显式文件 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() 返回一个可启动的包装后命令字符串。
84% 这个数字意味着什么?
Anthropic 报告称,在内部 Claude Code 使用中,沙箱化使权限提示减少了 84%。这是自报数字,并非外部基准测试结果。其目标是缓解审批疲劳。整天点击“批准”的开发者会不再阅读自己批准的内容。固定的边界让智能体可以在其中自由工作,只在边界处请求批准。
真正的权衡:严格的允许列表与可用的智能体
编码智能体不只是编辑文件。它们会安装依赖、拉取文档并调用 API。允许列表设得太严,npm install 就会失败。设得太松,沙箱就几乎起不到保护作用。srt 提供了几个调节参数来把握这一中间地带:
通配符和端口:如 *.npmjs.org 或 api.example.com:443 这样的条目。
询问回调:决定没有规则覆盖的主机,并可返回模型会读取的原因。
按命令允许列表:仅为一次调用开放某个注册表。
实时更新:--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)
是否需要容器或虚拟机否否是(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%(内部数据)。
允许列表的广度才是真正的安全调节旋钮;宽泛的域名可能导致数据泄露。
Asif Razzaq网站 | + 文章作者简介 ⮌
Asif RazzaqNVIDIA 发布 Nemotron 3.5 Bolt E4B 4GB:一款面向本地语音智能体、游戏角色和机器人的开放小型语言模型
Asif RazzaqMoonshot AI 发布 Kimi K3.1 Pro:一款总参数 2.8T/激活参数 104B(MoE)的模型,支持 1M 上下文
Asif RazzaqYou.com 推出推理路由器:12 个开放权重模型,提供 99.9% 正常运行时间 SLA
$uv pip install omni-parse-bench✓文本✓表格✓布局→ 按页评分在 GitHub 上加星→赞助
相关文章更多来自作者
NVIDIA 发布 Nemotron 3.5 Bolt E4B 4GB:一款面向本地语音智能体、游戏角色和机器人的开放小型语言模型
Moonshot AI 发布 Kimi K3.1 Pro:一款总参数 2.8T/激活参数 104B(MoE)的模型,支持 1M 上下文