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) 规则 |
代理调解所有网络流量,在转发请求前应用允许/拒绝列表。文件系统规则在启动时嵌入沙箱配置文件,因此子进程无法绕过。
典型工作流程
- 创建设置文件(
~/.srt-settings.json或自定义路径),描述允许/拒绝的域名和文件路径。 - 使用 CLI 包装命令:
命令在沙箱内运行;任何不允许的网络或文件访问都会被阻止并报告。srt "curl https://example.com" - (可选)作为库使用 – 实例化
SandboxManager,调用wrapWithSandbox获取命令字符串,然后使用child_process.spawn生成。 - 监控违规 – 调用
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 代理或服务器组件而无需完整容器至关重要。
相关
- 项目
- 项目
- 项目
- 项目
- 项目