工程进阶 · 可靠 Agent 的工程模式

三类风险:滥用、失控、外部攻击

Anthropic 的安全分类框架:用户滥用 / 模型 Misbehavior / Prompt Injection

本页解决的问题

先给结论

「三类风险:滥用、失控、外部攻击」要解决的关键问题是什么?

Anthropic 的安全分类框架:用户滥用 / 模型 Misbehavior / Prompt Injection

判断标准

让这个结论先证明自己值得留下。 把这一页当成决策工具,而不是需要背下来的定义。把概念连到一个真实任务、一个可观察结果,以及一个能改变你判断的失败上。

下一步

写下一个问题:试完这个方法后,你能用什么证据回答它?

常见误区

结论听起来很完整,却没有检查最关键的假设。

安全分类框架

每种 AI 产品面对的威胁模型不同,但所有风险都可以归入三个类别。理解这三类风险是设计安全架构的第一步。

MISUSE
用户滥用
用户故意让 Agent 做不该做的事情。这是来自用户侧的主动威胁。
  • 利用 Agent 生成钓鱼邮件
  • 诱导 Agent 执行恶意代码
  • 利用 Agent 获取未授权的数据
  • 通过越狱攻击绕过安全限制
MISBEHAVIOR
模型失控
模型自发的错误行为:没人指使它,但它自己做了不该做的事。
  • 过度行动:用户只让查看文件,模型却自作主张修改了
  • 幻觉驱动操作:基于虚构信息执行了真实操作
  • 权限越界:模型尝试访问不属于当前任务的资源
  • 停不下来:Agent 进入无限循环
EXTERNAL ATTACK
外部攻击
第三方通过注入恶意内容来操控 Agent 的行为。攻击来自数据源,用户本身可能毫不知情。
  • Prompt Injection:网页/文档中嵌入攻击指令
  • 供应链攻击:恶意 MCP 服务器返回篡改数据
  • 数据投毒:训练数据中植入后门
  • 间接注入:通过 Agent 读取的邮件/文件注入指令
双层 Containment 策略

MODEL LAYER 模型层防线

通过训练让模型从内心倾向于安全行为,就像培养一个有良好价值观的员工。
  • RLHF/Constitutional AI 训练安全偏好
  • 模型学会拒绝危险请求
  • 模型在不确定时主动询问用户
  • 遵循最小权限原则

ENVIRONMENT LAYER 环境层防线

通过系统架构让危险操作无法执行,就像给仓库加锁,不依赖员工的自觉。
  • 沙箱隔离:代码执行在受限环境中
  • 权限控制:按任务粒度授权
  • 审批机制:高危操作需人工确认
  • 网络隔离:限制 Agent 的网络访问范围
两者互补,缺一不可。模型层是让 Agent 想做对的事,环境层是让 Agent 即使想做错也做不到。只靠 Prompt 告诉模型「别做坏事」是不够的,你还需要在架构上让坏事不可能发生。
MCP 的双重风险

Model Context Protocol 带来的新攻击面

SUPPLY CHAIN RISK
供应链风险
不可信的 MCP 服务器可能注入恶意内容。Agent 信任 MCP 返回的工具描述和数据,但这些数据可能已被篡改。一个恶意的 MCP 服务器可以通过修改工具描述来操控 Agent 的行为:Agent 以为自己在用「搜索文件」工具,实际上在执行删除操作。
PROMPT INJECTION
注入攻击
MCP 返回的内容可能包含攻击指令。即使 MCP 服务器本身没有恶意,它返回的数据(比如从网页抓取的内容)可能包含 Prompt Injection 攻击。Agent 处理这些数据时,可能被说服执行非预期的操作。
MCP 本质上扩大了 Agent 的攻击面。每多接入一个 MCP 服务器,就多了一个潜在的数据注入入口。产品设计者需要像审核第三方 SDK 一样审核每个 MCP 集成,信任但要验证。
Auto Mode 的实践数据

分类器 + 沙箱:高自主与低风险的组合

~83%
权限弹窗减少比例
2
核心组件
Auto Mode 通过两个核心组件实现了高自主 + 低风险的平衡:
分类器
判断操作是否安全
+
沙箱
即使误判也不会造成破坏
=
高自主 + 低风险
分类器负责快速判断每个操作的风险等级:安全操作直接执行,可疑操作才弹窗询问。沙箱作为第二道防线,确保即使分类器误判,代码执行也不会对系统造成真实损害。两者组合,让用户减少了约 83% 的确认弹窗,同时保持了安全性。
安全不是加一层提示词就够的,需要结构性设计。理解三类风险(滥用、失控、攻击),在模型层和环境层同时构建防线,才能让 Agent 在实际生产环境中安全运行。

「安全分类框架」里的风险边界在哪里

「每种 AI 产品面对的威胁模型不同,但所有风险都可以归入三个类别。理解这三类风险是设计安全架构的第一步」把安全问题从一句“请模型不要犯错”拉回到权限、数据和环境。真正需要保护的是:模型即使判断失误,系统也不能让错误变成不可逆的结果。

把模型建议和实际权限分开

在「每种 AI 产品面对的威胁模型不同,但所有风险都可以归入三个类别。理解这三类风险是设计安全架构的第一步」涉及的流程中,要分别检查用户能要求什么、模型能建议什么、工具实际允许什么,以及谁有权批准写入或发送。网页、文档和工具返回值都可能携带不可信指令,不能因为它们看起来像说明就自动提升权限。

  • 过度行动:用户只让查看文件,模型却自作主张修改了
  • Prompt Injection:网页/文档中嵌入攻击指令
  • 供应链攻击:恶意 MCP 服务器返回篡改数据

安全设计必须包含失败和恢复

结合「每种 AI 产品面对的威胁模型不同,但所有风险都可以归入三个类别。理解这三类风险是设计安全架构的第一步」做一次反向演练:加入错误输入、缺失凭证或迟迟不到的审批,确认系统会拒绝、暂停并留下可追踪信息,而不是继续执行到底。

从「安全分类框架」走到「MODEL LAYER 模型层防线」

「安全分类框架」先把问题落在「每种 AI 产品面对的威胁模型不同,但所有风险都可以归入三个类别。理解这三类风险是设计安全架构的第一步」上;到了「MODEL LAYER 模型层防线」,讨论继续推进到「通过训练让模型从内心倾向于安全行为,就像培养一个有良好价值观的员工。 RLHF/Constitutional AI 训练安全偏好 模型学会拒绝危险请求 模型在不确定时主动询问用户 遵循最小权限原则」。两段连起来,重点就不只是记住一个结论,而是看清它成立所依赖的条件。

把这条判断带到下一个场景

做安全判断时,把“模型想做什么”和“系统允许做什么”分开,逐个检查数据边界、工具权限、人工确认和失败后的恢复路径。

  • 「安全分类框架」:每种 AI 产品面对的威胁模型不同,但所有风险都可以归入三个类别。理解这三类风险是设计安全架构的第一步
  • 「MODEL LAYER 模型层防线」:通过训练让模型从内心倾向于安全行为,就像培养一个有良好价值观的员工。 RLHF/Constitutional AI 训练安全偏好 模型学会拒绝危险请求 模型在不确定时主动询问用户 遵循最小权限原则
  • 「最后的要点」:RLHF/Constitutional AI 训练安全偏好

最后的「最后的要点」把讨论落到「RLHF/Constitutional AI 训练安全偏好」。回看这条线索时,最值得保留的是:当输入、规模或风险改变,哪些判断需要重新做一遍。

标记为已学完 阅读进度会自动记录
← 上一篇下一篇 →

继续阅读

同一条线上的下一篇。

文章讨论

读到这里,留下一个判断。

把刚想明白的地方、还没想通的问题,留给下一位一起学习的人。

正在讨论 三类风险:滥用、失控、外部攻击 可靠 Agent 的工程模式
3条讨论文章讨论 · 与共学社区同步
在共学社区查看
AM
Asha Morgan内容编辑
观点实践记录

我把这篇文章里的一个判断改写成了今天可以验证的小实验。比记住结论更有用的是,知道下一步要观察什么。

文章讨论7 有帮助
LH
Lin Harper独立开发者
观点观点

读完以后我先回头找它成立的条件,而不是直接把方法搬进项目。这个顺序让后面的取舍清楚很多。

文章讨论5 有帮助
KM
Kiki Moore产品运营
问题问题

如果把这个判断放到真实工作里,最先需要补的约束是什么?我想知道从阅读到第一次实践之间,哪一步最值得先做。

文章讨论4 有帮助