U
产品发布

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

Anthropic开源其支撑Claude Code沙盒化bash工具的底层组件sandbox-runtime(srt),以操作系统原生隔离机制为任意进程施加文件系统与网络边界,无需容器或虚拟机。官方内测数据显示其将Claude Code权限弹窗削减84%。本文详解其原理、平台支持、配置方式与同类方案对比。

👁 32阅读 💬 0评论
Anthropic开源sandbox-runtime:无需容器的AI Agent系统级沙盒
📝 全文约 2149 字 · 预计阅读 5 分钟

Anthropic将其内部支撑Claude Code沙盒化bash工具的底层组件——sandbox-runtime(简称srt)正式开源。这款工具的核心卖点是:它直接调用操作系统自带的隔离原语,为任意进程套上文件系统与网络访问的硬边界,全程不需要启动Docker容器或虚拟机。它也并不与Claude Code绑定,开发者自己的Agent程序、本地MCP服务器乃至普通命令行工具,都可以放进这个沙盒里运行。

它是什么:一个前缀命令搞定进程级隔离

sandbox-runtime是一个开源工具,能够用文件系统和网络双重限制包裹任何进程。安装方式为npm install -g @anthropic-ai/sandbox-runtime,随后只需在原命令前加上srt前缀即可运行。它既可以作为CLI使用,也提供TypeScript库接口,方便集成进自定义Agent流程。

具体规格方面,npm包为@anthropic-ai/sandbox-runtime v0.0.81,解压后约11.4 MB,采用Apache-2.0许可证,要求Node.js 22.12及以上版本。它可以在任何macOS或Linux开发机以及CI环境中运行,Windows支持目前处于alpha阶段。

平台实现:调用各系统原生隔离机制

srt并不重新发明隔离技术,而是利用各操作系统自身的隔离原语,且限制覆盖整个进程树,包括脚本与子进程。在macOS上,它通过sandbox-exec配合动态生成的Seatbelt配置文件工作,仅需ripgrep依赖。在Linux上,它使用bubblewrap并移除网络命名空间,需要额外安装socat和ripgrep。Windows alpha版本则采用专用srt-sandbox账户、Windows Filtering Platform出站围栏以及显式文件ACL,一次性安装即可启用。

所有出站流量只能经过运行在宿主机上的HTTP与SOCKS5代理。Linux上,这些代理位于通过bind-mount进入沙盒的Unix socket之后;macOS上,Seatbelt配置仅放行一个localhost端口。代理层负责执行用户配置的域名allowlist与denylist,且放行前会检查目标是否解析到回环或云元数据IP地址。

为什么文件系统与网络必须双管齐下

Anthropic团队的论证是:只设一道边界必然失败。若没有网络隔离,被提示注入的Agent可以把SSH私钥外传;若没有文件系统隔离,它可能逃出沙盒后重新获得网络访问能力。srt的默认策略正是围绕这一逻辑设计的。

默认规则为:读取默认全局允许,除非显式deny;写入默认全局拒绝,除非显式allow;网络访问默认全拒,只有出现在allowedDomains中的域名才能连通。违规行为会被记录日志,供Agent读取并作出反应。

如何沙盒化MCP服务器与自有Agent

对MCP服务器,只需把.mcp.json中的启动命令从npx改为srt,并将原命令作为参数传入。规则集中保存在~/.srt-settings.json中,例如网络部分可配置allowedDomains为api.github.com与*.npmjs.org,文件系统部分可设置denyRead为~/.ssh、allowWrite为当前目录、denyWrite为.env。这样Agent既能正常调用GitHub与npm接口,又碰不到敏感凭据。

对自研Agent,库层面暴露SandboxManager接口:调用initialize(config)启动代理,随后wrapWithSandbox()会返回一条包装后的命令字符串,可直接spawn执行。整个流程为:Agent发出命令,srt读取配置并启动代理,OS层面在整个进程树上强制执行边界,流量统一走代理,未知域名则被拦截或交由ask回调决策。

84%数据的含义与同类方案对比

Anthropic报告称,在其内部Claude Code使用中,沙盒化使权限弹窗数量减少了84%——即以100为基准,开启沙盒后降至16。需要强调这是自我报告数据,而非外部基准测试,其出处为2025年10月的Anthropic工程博客。这组数字瞄准的是审批疲劳问题:整天点击approve的开发者最终会停止真正阅读批准内容,而固定边界让Agent在界内自由作业,只在边界处才请求人工确认。

与同类方案相比:Codex CLI同样基于OS原语、本地运行、Apache-2.0许可,但网络默认关闭需手动开启;Docker Sandboxes采用microVM,属于容器方案;E2B基于Firecracker microVM,面向云端或BYOC部署,网络默认开启。srt的优势在于轻量无容器、网络默认全拒、支持通配符与端口的域名白名单。

局限与展望

短板同样明确:srt目前仍是beta研究预览版,Windows支持处于alpha阶段,且84%为自我报告数字。作为一种沙盒化思路,它以最低摩擦换取安全边界,对Agent生态的意义在于把安全从可选附加项变为默认基础设施。随着MCP与Agent工具链持续扩张,这类系统级、零容器的沙盒方案有望成为开发者桌面的标准配置,Anthropic后续的迭代与社区采用情况值得关注。

💬 评论