Anthropic sandbox-runtime

2天前发布 10 00

sandbox-runtime 是面向本地AI智能体、MCP服务的轻量OS级沙盒方案,不靠容器,一套规则同时管住文件树和出站网络;适合给 Claude Code、自建 Agent 做安全围栏,大幅减少权限弹窗,但属于Beta预览版本,Windows支持还不成熟,白名单配置是安全的关键。

所在地:
Anthropic
收录时间:
2026-10-25
Anthropic sandbox-runtimeAnthropic sandbox-runtime

Anthropic 开源 sandbox-runtime(srt),就是 Claude Code 内置 bash 工具背后的沙盒组件。它不依赖 Docker、容器或者虚拟机,直接调用操作系统原生隔离原语,对整棵进程树施加文件读写、出站网络限制;不限于 Claude Code,普通命令行、自建AI智能体、MCP服务都可以套上这个沙盒。

基础信息

  • 包名:@anthropic-ai/sandbox-runtime,当前 v0.0.81,Apache-2.0 协议
  • 环境要求:Node.js 22.12+;macOS / Linux 稳定,Windows 仅 Alpha
  • 依赖:macOS 仅需 ripgrep;Linux 需要 bubblewrap、socat、ripgrep
  • 形态:同时提供 CLI 命令 srt 和 TypeScript SDK 库

跨平台隔离实现原理

统一思路:进程所有出站流量强制走本机 HTTP/SOCKS5 代理,由智能体执行域名黑白名单;文件权限按规则管控,规则对全部子进程生效。

  • macOS:调用 sandbox-exec,动态生成 Seatbelt 配置文件
  • Linux:bubblewrap 做挂载与网络命名空间隔离,搭配 Unix socket 代理
  • Windows(alpha):创建独立沙盒账户、WFP 防火墙、ACL 文件权限控制

权限默认策略:读默认放行、写入默认禁止、网络默认全部阻断,靠白名单放开需要的域名与写入路径。

接入方式

  1. CLI 使用:命令前加 srt,直接包裹任意程序
  2. MCP 服务器改造:修改 .mcp.json 启动命令,用 srt 包裹原启动指令;规则统一写在 ~/.srt-settings.json,可以配置域名黑白名单、禁止读取 ssh 密钥、限制 .env 写入等
  3. 自研Agent:使用 SandboxManager SDK,调用 wrapWithSandbox() 生成受沙盒保护的执行命令

核心设计亮点与权衡

  • 内部测试:Claude Code 使用后权限审批弹窗下降 84%(官方自测数据),解决开发者频繁点批准产生的审批疲劳;划定固定安全边界,只在超出边界时询问用户
  • 丰富调参能力:域名支持通配符+端口;未知域名可触发 Ask 回调;支持单次临时放行、运行时动态更新规则;校验域名解析结果,防止指向云元数据、回环地址
  • 取舍难点:白名单太严会导致 npm install、API 请求失败;白名单过宽则沙盒防护形同虚设,需要根据智能体任务精细裁剪

和同类沙盒方案横向对比

  • sandbox-runtime:本地OS原语,无容器,独立通用库,网络默认拒绝,Beta
  • OpenAI Codex CLI Sandbox:本地OS原语,无容器,绑定Codex
  • Docker 沙盒:依赖容器,本地运行,策略启动时选定
  • E2B:Firecracker微VM,云托管,默认网络放行

相关导航