Anthropic 最近发了一篇工程文章,讲 Claude.ai、Claude Code 和 Claude Cowork 在不同产品里怎么限制 AI Agent 的行动范围。
这个题目容易被一句话带过:用了沙箱。但真正要紧的不是这四个字。
Agent 和普通聊天机器人不一样。它可能读文件、调用工具、访问网络、执行代码。只要它开始“动手”,安全问题就不再只取决于模型听不听话,而取决于系统给了它多少机会。
开发者 Simon Willison 在转述这篇文章时提到一个常见痛点:很多沙箱产品不是没有隔离,而是文档太薄。外部用户很难判断它到底挡住了什么,又把什么留给了默认配置、用户权限或产品例外。
这也是这次披露最有价值的地方。Anthropic 至少把笼子长什么样说清了一部分。
三个 Claude 产品,三种隔离边界
Anthropic 披露的产品差异很明确。Claude.ai、Claude Code、Claude Cowork 不是同一套运行环境,也不是同一种隔离方案。
| 产品 | 运行位置 | 披露的隔离机制 | 读者该看什么 |
|---|---|---|---|
| Claude.ai | 云端服务 | gVisor | 云端执行环境、文件边界、网络出口控制 |
| Claude Code | 用户本地机器 | macOS 用 Seatbelt,Linux 用 Bubblewrap | 本地文件权限、凭据是否进入执行环境 |
| Claude Cowork | 完整桌面环境 | macOS 用 Apple Virtualization framework,Windows 用 HCS | VM 边界、共享目录、剪贴板、网络访问 |
这张表说明一件事:沙箱不是一个统一答案。
云端产品、本地开发工具、桌面自动化环境,面对的风险不同。Claude.ai 更像云端受控执行。Claude Code 跑在用户机器上,天然贴近代码仓库、配置文件和本地凭据。Claude Cowork 使用完整虚拟机,边界更重,但也会遇到桌面环境常见的共享和外联问题。
Anthropic 给出的核心原则很朴素:限制 Agent 能触达的范围。凭据如果从未进入沙箱,就无法从沙箱里被拿走。无论原因是用户误操作、模型找到“有创意”的路径,还是攻击者诱导,前提都一样:它得先碰得到。
这句话对开发团队很有用。它把安全讨论从“模型会不会犯错”拉回到“系统有没有把危险东西递给它”。
文档透明度,决定沙箱能不能被信任
gVisor、Seatbelt、Bubblewrap、HCS 都不是新鲜名词。它们分别来自云端隔离、操作系统沙箱、Linux 用户空间隔离和 Windows 容器/虚拟化体系。
问题不在名词本身,而在产品怎么用。
很多 AI 产品会写“代码在安全环境中运行”“工具调用受限”。这类说法听起来安全,但对安全评审帮助有限。真正需要回答的是更细的问题:
- Agent 能不能读用户主目录?
- 能不能访问项目外的文件?
- 网络出口是全开、白名单,还是按接口限制?
- 凭据是在宿主侧代理使用,还是被注入沙箱?
- 日志、上传、调试接口会不会绕过原本的边界?
这些问题决定企业能不能上线 Agent,而不是宣传页上的安全形容词。
对 AI Agent 开发者来说,Anthropic 这篇文章的参照价值在这里:你不一定采用同一套技术,但要能给出同等颗粒度的答案。
对安全工程师和企业管理员来说,动作也更直接。采购或内测时,不要只问“有没有沙箱”。要把评审表改成三列:Agent 能读什么、能写什么、能连到哪里。供应商答不上来,就应该延后上线,至少不能接入真实凭据和敏感目录。
这里也有现实约束。披露不等于外部验证,文档清楚也不等于配置永远安全。尤其是本地工具和桌面 Agent,最终边界可能被用户授权、管理员策略、共享目录和网络规则重新打开。
所以我更在意的不是 Anthropic 选了哪个沙箱,而是它愿不愿意把边界讲到可审计。能审,才有讨论安全的起点。
文件外泄路径提醒:例外最容易打穿边界
Simon Willison 还特别提到一个旧风险:api.anthropic.com/v1/files 曾被视为 Claude Cowork 的文件外泄向量。
这个细节比“用了完整虚拟机”更值得记住。
很多泄露不一定来自正面突破沙箱。它可能来自产品功能、文件上传接口、同步机制、调试入口、插件权限。边界设计得再硬,只要某个例外路径能把文件带出去,风险就会从侧门发生。
这也是 AI Agent 安全和传统应用安全不同的地方。Agent 会主动组合工具。它可能把本来分散的能力串起来:读文件、整理内容、调用接口、上传结果。单看每一步都像正常功能,连起来就可能变成外泄路径。
Anthropic 的开源 srt(Anthropic Sandbox Runtime)也因此值得安全团队看一眼。开源运行时不会自动带来安全,但它提供了一个可复核的样本。团队可以对照自己的执行环境,看策略是否完整,默认权限是否过宽,网络出口是否被低估。
更现实的做法不是马上迁移到某个工具,而是做一次边界盘点:
| 要盘点的对象 | 最少要问的问题 | 可能的动作 |
|---|---|---|
| 文件系统 | Agent 默认能读哪些目录?能否访问仓库外文件? | 收窄默认目录,敏感路径默认不可见 |
| 凭据 | API key、SSH key、云账号令牌是否进入沙箱? | 改为宿主侧代理,减少明文注入 |
| 网络出口 | Agent 能连任意域名,还是只能连白名单? | 对上传、文件接口、外部 API 做限制 |
| 产品例外 | 文件上传、日志、调试、插件是否绕过隔离? | 把例外路径纳入审计,而不是只审主流程 |
目前还看不清的是,Anthropic 这些隔离机制在复杂企业部署中的默认策略有多严格。哪些由厂商控制,哪些由管理员配置,哪些又会被用户授权改变,仍要看具体产品形态和部署方式。
但主线已经很清楚:Agent 越接近真实工作流,安全责任越会向下传递。模型厂商给边界,集成商接工具,企业 IT 配权限,开发团队放凭据。任何一层图省事,沙箱都会从硬边界变成软建议。
回到开头那个问题:这次 Anthropic 到底做对了什么?
不是证明 Claude 已经安全无虞,而是把“安全”从一句口号拆成了可讨论的边界。对 Agent 产品来说,这比多喊一遍安全愿景更有用。
