anthropics/sandbox-runtime

A lightweight sandboxing tool for enforcing filesystem and network restrictions on arbitrary processes at the OS level, without requiring a container.

Anthropic Sandbox Runtime (srt)

它是什么

  • 一个轻量级、操作系统级别的沙箱,允许你在严格的文件系统和网络限制下运行任何命令(或 AI 代理服务器),无需 Docker 或完整容器。
  • 由 Anthropic 为 Claude Code 构建,作为研究预览,使自主代理更安全。

为什么对 AI 很重要

  • 现代 AI 代理通常在主机上运行代码(例如,模型上下文协议服务器)。如果这些代码被攻破,可能读取机密或连接互联网。srt 为开发者提供了一种简单的方法来锁定这些进程。
  • 支持 macOS、Linux 和 Windows,使用每个平台的原生沙箱机制。

关键功能

  • 网络允许/阻止列表 – 默认阻止所有出站流量;你可以明确列出允许的域名。
  • 文件系统读写控制 – 默认允许所有读取,除非你拒绝某个路径;默认拒绝所有写入,除非你允许某个路径。细粒度的 denyRead、allowRead、allowWrite、denyWrite 规则。
  • Unix 套接字和 IPC 限制 – 你还可以阻止本地套接字访问。
  • 实时违规监控 – 在 macOS 上,它读取沙箱违规日志;在所有平台上,它记录被阻止的网络/文件访问。
  • 动态重新配置 – 运行中的沙箱可以通过专用文件描述符(--control-fd)接收新的 JSON 配置。
  • 库和 CLI – 直接使用 srt 命令或导入 TypeScript 库(@anthropic-ai/sandbox-runtime)将沙箱嵌入你自己的工具中。

底层工作原理

平台 使用的原语
macOS sandbox‑exec 与生成的 Seatbelt 配置文件
Linux bubblewrap (bwrap) 加上自定义网络命名空间和主机端 HTTP/SOCKS5 代理
Windows 专用本地用户账户(srt‑sandbox)加上 Windows Filtering Platform (WFP) 规则

代理调解所有网络流量,在转发请求前应用允许/拒绝列表。文件系统规则在启动时嵌入沙箱配置文件,因此子进程无法绕过。

典型工作流程

  1. 创建设置文件(~/.srt-settings.json 或自定义路径),描述允许/拒绝的域名和文件路径。
  2. 使用 CLI 包装命令:
    srt "curl https://example.com"
    
    命令在沙箱内运行;任何不允许的网络或文件访问都会被阻止并报告。
  3. (可选)作为库使用 – 实例化 SandboxManager,调用 wrapWithSandbox 获取命令字符串,然后使用 child_process.spawn 生成。
  4. 监控违规 – 调用 SandboxManager.getViolationsForCommand 或使用辅助函数,该函数用被阻止操作的摘要注释 stderr。

示例:沙箱化 MCP 服务器

// .mcp.json 沙箱前
{
  "mcpServers": { "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem"] } }
}

将命令替换为 srt 并添加一个设置文件,拒绝写入敏感文件夹。如果服务器尝试写入那里,现在将失败并返回 EPERM。

安装

npm install -g @anthropic-ai/sandbox-runtime

(该包附带编译后的二进制文件 srt 和 TypeScript 库。)

高级功能

  • --control-fd – 通过管道向运行中的沙箱发送 JSON 配置更新;每行在验证后替换整个配置。
  • 按命令网络允许列表 – 为特定命令 ID 注册临时允许列表,当工具需要临时访问私有注册表时很有用。
  • 询问回调 – 提供一个函数,当连接不匹配任何规则时调用;回调可以批准或拒绝请求并附带自定义原因。

限制 / 状态

  • 该项目处于 Beta 研究预览 阶段;API 和配置格式可能更改。
  • 在 Windows 上,文件系统 ACL 更改仅在沙箱启动时应用;后续配置更新无法修改它们。
  • 默认配置(无设置文件)允许无限制读取、无写入、无网络访问。

了解更多

  • Claude Code 沙箱文档
  • Anthropic 工程博客文章:Beyond Permission Prompts: Making Claude Code More Secure and Autonomous

TL;DR:srt 是一个跨平台 CLI/库,将任何进程包装在原生操作系统沙箱中,让你精细控制它可以读取/写入哪些文件以及可以联系哪些网络主机——对于安全运行 AI 代理或服务器组件而无需完整容器至关重要。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目