当大模型公司竞相展示智能体的推理与任务执行能力时,一个敏感话题往往被有意无意地回避:这些能调用API、操作文件、与互联网交互的智能体,究竟要如何从第一天起就被安全地部署?Anthropic近日以罕见的坦诚发布了一篇工程回顾,系统梳理了Claude系列产品在两年的运营中,遭遇的三种主要攻击面:用户误用、模型异常行为与外部攻击。这并非一篇泛泛的理念文章,而是一次事无巨细的事故案例分析,配以具体的架构演进方案。
Anthropic的核心防护逻辑建立在一个三重隔离机制之上。最基础的一层是环境控制。以Claude Code为例,它运行在一个配备虚拟网络和严格出站规则的双层沙箱内,默认阻止所有外部网络连接,并在特定场景下(如Git操作)通过代理桥接。这层架构的直接目标就是防范沙箱逃逸,防止恶意指令越过容器直接操作宿主系统。相比之下,claude.ai的AI对话产品使用了一个经过强化的虚拟机,隔离在单独的数据面集群中,它不仅要防止模型访问用户的其他聊天记录,还要抵御来自外部Web内容的攻击,例如恶意网站尝试通过构建的HTTP请求来污染会话状态。
防护的第二层聚焦于模型行为的引导与约束。Anthropic明确指出,无论系统提示词写得多详细,单纯依靠模型自身的“道德感”来阻止恶意行为是远远不够的。为此他们对Claude进行了特定训练,使用强化学习与对抗样本,让它学会辨识并拒绝非法的代码执行请求。同时,在运行时,系统会实时监控Claude对外部MCP服务器、第三方SDK插件的调用行为,实施细粒度的审批策略,例如,哪些API接口是允许调用的,哪些文件路径是只读的,以及哪些外部域名是完全禁止连接的。
最前沿的一层防护体现在外部内容与权限管理上。针对Claude Cowork这样的多模态智能体,它可能会被要求访问第三方SSO系统、读取外部报告或编辑协作文档。Anthropic为此设计了一套“最小权限代理集”,要求MCP服务器必须声明其能访问的资源类型与操作范围,智能体本身不具备直接访问企业级数据的能力。这实际上是一种架构上的妥协:智能体越开放,风险面越大,所以必须用显式权限声明来替代隐式信任。
纵观这三层防护,最值得开发者借鉴的是Anthropic对于沙箱逃逸与钓鱼攻击的实战复盘。他们发现,即使是精心设计的沙箱,也无法抵御源自用户自身账户的恶意指令传递。一名攻击者如果获得了用户对Claude Code的授权(例如通过欺骗用户同意执行一个被污染的npm包),那么沙箱的存在意义就非常有限——因为它授权了“合法”的恶意行为。这引申出一个残酷的现实:智能体安全的终点不单单是代码防御,而是用户行为安全与身份验证的更强耦合。
这篇文章的价值在于,它终结了关于智能体安全是“理论问题”还是“工程问题”的争论。Anthropic给出的答案是:它首先是一个工程问题,而且必须是一个通过事故驱动不断迭代的工程问题。对于正在构建Agent系统的团队而言,最直接的教训是:不要幻想一次性的安全设计,要建立起从沙箱监控、行为基线到权限审计的持续安全运营机制。对于平台方而言,更透明的安全日志与可审计的模型调用链,将是建立开发者信任的核心壁垒。