AI 编码代理(如 Claude Code)需要执行各种操作——读取文件、编写代码、运行命令、发出网络请求。管理这些操作的安全边界通常需要繁重的容器化(Docker)或频繁的用户权限提示。Sandbox Runtime 由 Anthropic 开发,提供了第三条路径:轻量级的操作系统级别沙箱,在不需要容器开销的情况下强制执行安全策略。
graph LR
A[AI 代理工具命令] --> B{Sandbox Runtime}
B -->|策略允许| C[正常执行]
B -->|策略阻止| D[返回权限错误]
C --> E[文件系统:允许 /src、/tmp]
C --> F[网络:允许 *.npmjs.org]
C --> G[系统:允许读取,拒绝写入 /etc]
D --> H[需要用户批准或策略更新]
Sandbox Runtime 与基于容器的沙箱相比如何?
| 方面 | Docker 容器 | Sandbox Runtime |
|---|---|---|
| 隔离级别 | 完整操作系统虚拟化 | 进程级别限制 |
| 启动时间 | 1-5 秒 | < 100 毫秒 |
| 内存开销 | 50-200 MB | < 10 MB |
| 文件系统访问 | 独立的文件系统 | 受限的主机文件系统 |
| 网络访问 | 独立的网络堆栈 | 受限的主机网络 |
| GPU 访问 | 复杂的穿透 | 原生访问 |
| 二进制兼容性 | 必须匹配容器 OS | 原生主机环境 |
| 设置复杂度 | 需要 Docker 安装 | 原生二进制或 Homebrew |
可以配置哪些沙箱策略?
| 策略领域 | 示例规则 | 用途 |
|---|---|---|
| 文件系统读取 | /src/**、/usr/lib/**、$HOME/** | 允许读取项目文件 |
| 文件系统写入 | /src/output/**、/tmp/** | 允许保存生成的文件 |
| 文件系统拒绝 | /etc/shadow、/.ssh/** | 阻止敏感文件访问 |
| 网络允许 | registry.npmjs.org:443、api.github.com:443 | 允许包安装、git push |
| 网络拒绝 | *:22、*:3306 | 阻止 SSH、数据库访问 |
| 进程执行 | node、python3、go、git | 允许特定命令 |
| 进程拒绝 | sudo、rm -rf / | 阻止危险操作 |
性能影响
| 操作 | 无沙箱 | 使用 Docker 容器 | 使用 Sandbox Runtime |
|---|---|---|---|
| 文件读取(100 MB) | 2 毫秒 | 5 毫秒(卷挂载) | 2 毫秒 |
| 文件写入(100 MB) | 3 毫秒 | 8 毫秒(卷挂载) | 3 毫秒 |
| 网络请求 | 50 毫秒 | 51 毫秒(NAT) | 50 毫秒 |
| 进程启动 | 1 毫秒 | 500 毫秒(容器) | 2 毫秒 |
| 内存分配 | 原生 | +50 MB 开销 | +2 MB 开销 |
常见问题
什么是 Sandbox Runtime? Anthropic 的开源轻量级 OS 级别沙箱工具,无需 Docker。
如何工作? 使用 macOS seatbelt 和 Linux seccomp-bpf 定义精确的进程访问边界。
支持哪些平台? macOS 和 Linux。Windows 尚未支持。
如何安装?
macOS:brew install anthropic/sandbox-runtime/sandbox-runtime。Linux:从 GitHub 下载。
减少多少权限提示? 与 Claude Code 搭配使用时减少 84%。
延伸阅读
- Sandbox Runtime GitHub 仓库 – 源代码、版本和文档
- Anthropic 的 AI 代理安全研究 – Anthropic 的安全研究
- Apple Seatbelt Sandbox 文档 – macOS sandbox 框架文档
- Linux seccomp-bpf 指南 – Linux seccomp 过滤器文档
- Claude Code 文档 – 官方 Claude Code 文档(与 Sandbox Runtime 集成)
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!