智能体免疫系统
一套参考架构,用于在企业中运行 AI 智能体而不把信任集中于其中任何一个。身份、最小权限、围堵、监督与恢复这五层,假定总有某个智能体终将出错或被劫持,并让那一天变得可以承受而非灾难性的。防御的单位是单次运行,而不是整支队伍。
关键概念
- 预设已被攻破:问题不是智能体会不会做错,而是它做错时能够触及多远。
- 按次运行的身份:每次运行携带自己的短时凭据,绝不使用共享的运维账号。
- 围堵先于预防:影响半径是设计出来的,不是指望出来的——被劫持的一次运行波及一项任务,而非整片资产。
- 恢复是一个设计面:追踪、撤销与停止要事先建好,而不是事故中临时凑出来。
定义
智能体免疫系统是一种分层的运行时架构,它通过按次运行的身份、限定于任务的权限、执行与出网的围堵、按风险设置的人工监督以及可追溯的恢复,在允许 AI 智能体对企业系统采取真实行动的同时,限定单次运行所能触及、观察或破坏的范围。
架构
这套架构把惯常的问题反了过来。它不问如何阻止智能体犯错——面对一个会推理的系统,没有任何护栏能可靠做到——而是问它犯错的那一刻能够触及多远。每一层都是触及范围的边界,各层彼此独立,因此其中一层失守不会把其余各层一并打开。
身份是地基。每次运行都会获得一份短时凭据,绑定到任务、发起主体以及它声明需要的工具。智能体之间不共享服务账号:出问题时,痕迹指向的是一次运行而非一支队伍,撤销的代价是一枚令牌,而不是整片资产的轮换。
权限限定于任务,并随任务失效。工具代理只授予运行事先声明的那一小组能力——读这张工单、写这条记录——并拒绝其余一切;于是,一次说服模型去尝试更多的提示注入,找不到可以调用的对象。
围堵假定前两层可能被攻破。执行发生在没有环境凭据的沙箱中;出网流量经过允许列表,因此外泄无处可送;而智能体产出的一切都会在边界处编码,使其输出不会成为下一个系统的指令。
监督是由人承担问责的位置,按风险而非默认设置:不可逆或受监管的动作会暂停等待批准,低置信度的结果会带着完整的运行上下文上报。对一切都设闸会毁掉自动化,并训练评审者不读就点通过。
恢复闭合了这个环。每次运行都在单一关联 ID 之下跨模型、工具与重试被追踪;在目标系统允许的情况下,动作都设计有配对的补偿操作;紧急停止可以停下一类运行,而不必让整个平台停摆。
请求流程
- 1. 请求:任务到达,附带发起主体以及声明的工具与数据范围。
- 2. 签发:代理铸造一份绑定该声明、限定于本次运行的短时身份。
- 3. 准入:运行在沙箱中启动,没有环境凭据,并带有出网允许列表。
- 4. 行动:每次工具调用都按本次运行的范围授权;范围之外的一律拒绝并记录。
- 5. 闸门:不可逆或受监管的动作暂停等待人工批准,并附上上下文。
- 6. 输出:产出在边界处编码,使其在下游不会被当作指令执行。
- 7. 收尾:身份失效,痕迹在其关联 ID 之下封存,补偿操作仍然可用。
组件
参考场景
- 上下文
- 一家示例企业,在工单、财务与内部知识领域运行着数十个智能体,每个智能体都可以读写记录系统。
- 场景
- 检索环节摄入了一份文档,其中注入的指令要求智能体导出客户记录。模型照做了,但导出工具不在本次运行声明的范围内,调用被拒绝;尝试被记录,异常规则停止了该次运行,关联 ID 让响应者一次查询就拿到完整链路。
- 技术
- 按次运行的凭据签发、带范围的工具代理、沙箱执行、出网允许列表、边界编码、按风险的批准闸门与关联追踪。
- 负载
- 持续的后台自动化,并在业务流程前后形成尖峰;稀少而影响重大的动作只占调用的一小部分,风险恰恰集中在那里。
- 结果
- 参考目标而非实测结果:被劫持的运行被限定在其声明范围内,每一次拒绝都可归因到具体运行,任何已执行的动作都可追踪,并在目标系统允许时可被补偿。
优势
- 一个出错或被劫持的智能体,代价是一项任务,而不是整片资产。
- 事故可归因到一次运行而非共享账号,因此响应有的放矢,撤销成本低廉。
- 提示注入大部分价值落空:说服模型并不能赋予它从未拥有的能力。
- 监督精力集中在真正不可逆的动作上,批准因此仍然有分量。
风险
- 声明的范围与智能体真实所需逐渐脱节,团队不断放宽,直到最小权限只剩名义。
- 设闸过多会训练评审者不读就批准,那比不设闸更糟。
- 沙箱与代理带来额外的时延与运维面,小规模部署未必值得。
- 有些对外的影响无法补偿:已发出的邮件、已支付的账单都收不回来。
KPI
- 拥有独立短时身份的运行占比
- 承重的那项管控。任何低于 100% 的数字都意味着仍有路径在使用共享凭据。
- 被拒绝的越界工具调用
- 按运行计数。数字上升说明的是环境,未必是设计的失败。
- 每次运行的影响半径
- 单次运行若被完全劫持所能触及的系统与记录数量。这正是该架构存在的目的所要缩小的数字。
- 设闸动作比例与批准时延
- 两者都重要:比例过高会毁掉自动化,时延过长会让团队关掉闸门。
- 追踪完整度
- 能在单一关联 ID 之下端到端重建的运行占比,包含重试与模型切换。
- 撤销所需时间
- 从检测到一次运行的能力消失为止。使用短时凭据时,这个时间应接近其到期时长,而不是一次轮换。
成本与扩展
- 身份代理与工具代理位于每次调用的热路径上,因而决定了上限;它们无状态、可水平扩展,但其时延在每次使用工具时都要支付。
- 对短运行而言,沙箱启动主导成本;用温沙箱池来换取时延,是以隔离深度作交换,应当是一个明确的决定。
- 人工批准不是线性扩展的,才是真正的约束:随着队伍变大,设闸的集合必须保持很小,否则队列本身就成了故障。
- 追踪存储随运行数乘以工具调用数增长;采样对可观测性可行,对审计不可行,因此两套留存策略应当分开。
已观测到的失效模式
- 某处栈中残留一份共享服务凭据,悄无声息地瓦解了按次运行的身份。
- 出网允许列表被绕过——经由一个本身会转发数据的已批准目的地。
- 追踪在一次重试或一次模型切换处断裂,事故链条再也无法重建。
- 批准队列积压,闸门被「临时」关闭以便清空队列。
- 工具输出在下一步被当作可信输入,围堵退化为一道会漏的单一边界。
经验教训
- 先设计影响半径,再谈能力:智能体能触及多远,是比它能做什么更难的问题,先回答它会让其余部分变得可处理。
- 按次运行的身份是承重的一层;没有它,其他任何管控都是针对一个你叫不出名字的主体施加的。
- 对一切都触发的闸门等于什么都不触发:把人工批准留给不可逆的动作。
- 假定模型会被说服,并据此设计,使说服不等于授权。
- 恢复要在系统平静时建好;没有人会在事故当中设计补偿操作。
技术
示例
- 检索到的文档中注入的指令要求导出数据;该工具不在本次运行范围内,调用被拒绝并记录。
- 财务智能体起草一笔付款,由人在执行前批准,批准上附有该次运行的追踪。
- 行为异常的一类智能体被紧急停止,队伍中其余部分继续运行。
- 一次事故从单一关联 ID 重建出来,跨越三个模型、九次工具调用与两次重试。
常见问题
- 为什么是免疫系统而不是防火墙?
- 防火墙假定内外之间存在边界。运行智能体的企业没有这条边界:智能体已经在里面,带着真实凭据在行动。免疫系统把入侵视为常态,把投入放在识别、围堵与修复上,而不是放在一道周界上。
- 这不就是多绕几步的最小权限吗?
- 最小权限是五层中的一层,也是最为人熟知的一层。这套架构的主张是:单靠它并不够。没有按次运行的身份,权限就无法收敛到一个主体;没有围堵与恢复,一次范围正确却仍然出错的运行既没有边界也没有退路。
- 这能挡住提示注入吗?
- 挡不住,而把任何一项管控当成能挡住它,恰恰是那个错误。它做的是让注入变得便宜到可以幸存:说服模型去尝试某个动作,和这个动作被授权并不是一回事,而被拒绝的尝试本身就是一个信号。
- 最小可行版本是什么?
- 按次运行的身份,加上限定于任务的工具访问。这两样给出归因与边界。围堵、闸门与补偿操作的分量,随动作越发不可逆而越发重要。
- 它和治理框架是什么关系?
- 它是这些框架在运行时的表达。NIST AI RMF 与 ISO 42001 要求问责与可追溯,OWASP LLM Top 10 与 MITRE ATLAS 描述攻击。这套架构正是那些义务变成身份、范围、沙箱与追踪的地方。