我们如何在不同产品中约束 Claude
原文:How we contain Claude across products
导读
Claude 在不同产品中拥有不同能力:聊天、编码、浏览、工具调用、文件编辑和外部系统操作。containment 的目标不是让 agent 不能行动,而是让它在明确、可审计、可恢复的边界内行动。
说明:本文按 Agent Learning 的中文阅读页格式,对原文结构与关键技术细节做逐节中文转述与解读;为避免整篇镜像转载,正文保留原文章节脉络、关键数字和术语,但不做逐字复刻。
核心观点
- 不同产品风险不同,containment 必须按场景设计,而不是只靠一套通用规则。
- 防线通常由模型行为、harness policy、tool permission、sandbox、network policy 和 audit log 共同组成。
- agent containment 要限制文件、网络、工具、凭据和外部写入。
- 系统必须区分用户指令、外部内容、工具结果和模型记忆,避免 prompt injection 混淆数据与指令。
- 可信度不是二元属性,而是随来源、权限和任务上下文变化。
- 好的 containment 让 Claude 更自主,因为低风险动作可以在默认边界内顺畅执行。
正文
Three types of risk, three components of defense
文章将 Claude 产品中的风险拆成不同类型:泄露敏感信息、执行越权动作、被不可信内容诱导偏离用户目标。每类风险都需要不同控制面。
单靠模型层对齐不足以覆盖这些场景。更稳的做法是多层防线:模型遵守政策,harness 限制工具和权限,系统层用 sandbox、network isolation、credential vault 和 audit log 限制后果。
这种组合的价值在于,即使某一层判断失误,其他层仍能降低损害范围。
Patterns for containing agents
agent 越能行动,越需要把能力分层。读文件、写文件、访问网络、调用外部系统、使用凭据、发布结果,这些动作的风险并不相同。
containment pattern 的目标是给低风险探索足够空间,同时把高风险能力放在更窄接口后面。比如凭据通过 vault 或 proxy 使用,而不是暴露给模型生成代码可读取的环境。
这也是用户体验问题。好的边界减少无意义 permission prompt,让用户把注意力放在真正需要判断的动作上。
Trusting what the agent reads
agent 会读取网页、issue、代码、邮件、文档和工具返回,其中很多文本都可能包含恶意指令。系统必须区分“用户授权的指令”和“外部内容中的文字”。
prompt injection 的本质,是利用语言界面把数据伪装成指令。如果外部内容能让 agent 访问凭据、发请求或修改文件,风险就会被放大。
因此 containment 需要和 context engineering 结合:来源、权限、可信度和可执行能力都应进入 harness 的策略判断。
Looking ahead
随着 agent 能力增强,containment 不能只在产品发布时设计一次。模型、更强工具、新 MCP server、新工作流都会改变风险面。
未来的 containment 更像运行时策略系统:根据任务、用户、数据来源、工具权限和组织策略动态决定可做什么。
它的成功标准不是完全消灭风险,而是让风险可理解、可审计、可恢复,并与产品价值匹配。
Summary
文章最终传达的是一种架构观:安全不是单点模型分类器,而是模型、harness、工具、隔离、凭据和日志共同构成的产品系统。
Claude 越多地进入真实工作,containment 越需要从“阻止模型说错话”扩展到“限制 agent 行动后果”。
这也是 agent 产品走向企业环境的前提。
深度解读
这篇文章可以看作 Anthropic 对 agent 安全工程的总览。它真正关心的不是让 Claude 更保守,而是让 Claude 的自主性建立在系统边界之上。没有 containment,增强工具能力会线性增加风险;有了 containment,更多低风险动作可以自动化,高风险动作则通过权限、隔离和审计被收束。对工程团队来说,这意味着安全不应最后接入,而应与工具设计、context pipeline 和部署架构同时设计。
落地启示
- 按读、写、外联、凭据、发布和权限提升对 agent 动作分层。
- 把凭据放进 vault/proxy,不要暴露给 sandbox 中的生成代码。
- 区分用户指令与外部内容,给工具结果标注来源和可信度。
- 为高风险工具配置 policy、approval、rate limit 和 audit log。
- 把 containment 作为持续演进的运行时策略,而不是一次性安全清单。