先看证据

Anthropic内部报告。权限提示减少84%
Anthropic遥测报告。用户批准约93%提示
macOS、Linux、Windows。项目README列出3类系统
文件系统与网络隔离。两道边界
2025年10月20日。沙箱发布说明日期
文章所述包体约11.4 MB,版本为0.0.81。关键事实

把机制串起来

输入先把素材压到可处理的规模

理解 srt,先抓住两点:沙箱不是让程序变聪明,而是把它能读写的文件、能连接的网络端点限制在明确范围内;操作系统内核负责执行这些边界。文件权限和网络权限是两道不同的门,只关一道,另一道仍可能让被提示注入操纵的程序造成损害。

机制再把计算集中到关键步骤

srt 分别配置文件系统和网络规则:默认可读但可拒绝特定路径,默认不可写、需明确放行路径;网络默认拒绝,再按域名规则放行。macOS 通过 sandbox-exec 加动态生成的 Seatbelt 规则执行限制;Linux 用 bubblewrap、绑定挂载和网络命名空间隔离;限制作用于被启动命令及其子进程。网络请求经宿主机代理中介,沙箱内进程只能通过指定本地通道访问代理,再由代理落实域名允许或拒绝规则;因此仅有域名配置而没有代理和系统层网络约束,并不足以形成边界。文件与网络

结果最后落到可验证的工作结果

['先按最小权限配置可写路径与网络域名。', '适合本机代理、MCP服务器及CI命令的边界控制。', '检查.env、SSH密钥等敏感路径是否被拒绝读取。', '高隔离需求别把它等同虚拟机;Windows目前为alpha。']

它不是把整个 Claude Code 装进沙箱

Anthropic 开源的 sandbox-runtime(简称 srt)是一套命令运行时限制工具,面向需要约束文件系统与网络访问的命令、MCP 服务器和其他进程。Anthropic 说明,Claude Code 使用它来沙箱化 Bash 工具;这不等于整个 Claude Code 都运行在 srt 的隔离范围里。它也可以独立用于自建智能体或普通命令行程序。

理解这个边界很重要,因为“智能体被沙箱保护”容易让人误以为模型、工具和宿主环境都处于同一层保护之下。srt 实际控制的是被它启动的进程及其子进程,而不是替开发者接管整个应用的安全设计。它提供的是一层操作系统级约束,不是对智能体行为的完整保证。

安全控制从每次询问转向预设边界

Claude Code 早期的控制方式,是在某些修改文件、运行命令或访问网络的操作发生时询问用户。逐项批准看似能让人把关,但高频提示会形成审批疲劳:如果用户习惯了连续点击批准,提示本身就不再可靠地代表审查。srt 改变的是控制节奏,让进程先在预设的权限范围内工作,只在越过边界时才需要额外处理。

这套思路落在两类规则上。按照项目 README 描述,文件读取默认允许、可通过规则拒绝;文件写入默认拒绝,必须明确开放路径;网络访问则默认拒绝,只有符合允许域名规则的流量才能通过。Anthropic 给出的理由是,两种隔离不能互相替代:限制网络仍可能让进程读出敏感文件,限制文件也不能阻止进程利用网络造成风险。

同一套意图,落在不同操作系统原语上

srt 不依赖另行管理 Docker 容器镜像或编排系统,但这不代表它完全不用容器式隔离机制。macOS 使用系统的 sandbox-exec 和动态生成的 Seatbelt 规则;Linux 使用 bubblewrap、绑定挂载和网络命名空间隔离。两者都把限制施加到被运行的命令及其子进程,而不是只拦截智能体发出的第一条命令。

网络访问还经过宿主机上的代理,再按域名允许或拒绝规则处理。Linux 通过绑定到沙箱内的 Unix socket 连接代理,macOS 则通过 Seatbelt 规则允许访问指定的本地端口。Windows 也列在项目支持范围内,但目前标为 alpha,采用专用账户、文件 ACL 和 Windows Filtering Platform 出站限制。对部署者来说,这意味着“跨平台”不等于三种系统拥有相同的成熟度或相同的运维前提。

84% 少掉的是提示,不是安全风险

Anthropic 报告称,在内部 Claude Code 使用中,启用沙箱后权限提示减少了 84%。这个数字说明固定边界可能减少了需要用户处理的审批次数,但它是厂商报告的内部结果,不是独立外部基准测试。材料没有提供足以把它直接换算成安全提升幅度的证据。

更稳妥的解释是:srt 试图让用户少做重复判断,把注意力留给真正越界的操作。提示变少本身不是风险变小的证明,尤其当允许路径或域名配置过宽时,进程仍可能在“已授权”的范围内做出不合预期的事。对团队而言,这个数字可以作为工作流变化的信号,不能代替对规则质量和实际威胁模型的评估。

落地时先审规则,再谈自动化程度

srt 可以通过命令行前缀运行,也提供 TypeScript 库接口;MCP 服务器的启动命令也可以改为由 srt 包裹。项目给出的配置方式允许团队列出网络允许域名,并明确文件读写规则。这让隔离边界有机会进入日常开发配置,而不是只存在于智能体产品内部。

但把进程放进沙箱,不会自动替团队决定哪些文件应可读、哪些目录可以写、哪些域名值得放行。Linux 还需要 bubblewrap、socat 和 ripgrep,macOS 需要 ripgrep,Windows 则仍处于 alpha 阶段;项目材料也将 srt 描述为 beta 研究预览。实际采用时,应先从最小文件写入范围和最小网络允许列表开始,再验证脚本及子进程的运行需求。只有当这些边界能被团队持续审查和维护时,减少逐项审批才是可接受的自动化,而不是把风险从提示框转移到配置文件里。