ARCH-006运营更新于 2026-09-10 · 版本 1.0

智能体免疫系统

一套参考架构,用于在企业中运行 AI 智能体而不把信任集中于其中任何一个。身份、最小权限、围堵、监督与恢复这五层,假定总有某个智能体终将出错或被劫持,并让那一天变得可以承受而非灾难性的。防御的单位是单次运行,而不是整支队伍。

证据: 行业观察置信度: 来源: 行业观察来源: 论文

关键概念

  • 预设已被攻破:问题不是智能体会不会做错,而是它做错时能够触及多远。
  • 按次运行的身份:每次运行携带自己的短时凭据,绝不使用共享的运维账号。
  • 围堵先于预防:影响半径是设计出来的,不是指望出来的——被劫持的一次运行波及一项任务,而非整片资产。
  • 恢复是一个设计面:追踪、撤销与停止要事先建好,而不是事故中临时凑出来。

定义

智能体免疫系统是一种分层的运行时架构,它通过按次运行的身份、限定于任务的权限、执行与出网的围堵、按风险设置的人工监督以及可追溯的恢复,在允许 AI 智能体对企业系统采取真实行动的同时,限定单次运行所能触及、观察或破坏的范围。

架构

这套架构把惯常的问题反了过来。它不问如何阻止智能体犯错——面对一个会推理的系统,没有任何护栏能可靠做到——而是问它犯错的那一刻能够触及多远。每一层都是触及范围的边界,各层彼此独立,因此其中一层失守不会把其余各层一并打开。

身份是地基。每次运行都会获得一份短时凭据,绑定到任务、发起主体以及它声明需要的工具。智能体之间不共享服务账号:出问题时,痕迹指向的是一次运行而非一支队伍,撤销的代价是一枚令牌,而不是整片资产的轮换。

权限限定于任务,并随任务失效。工具代理只授予运行事先声明的那一小组能力——读这张工单、写这条记录——并拒绝其余一切;于是,一次说服模型去尝试更多的提示注入,找不到可以调用的对象。

围堵假定前两层可能被攻破。执行发生在没有环境凭据的沙箱中;出网流量经过允许列表,因此外泄无处可送;而智能体产出的一切都会在边界处编码,使其输出不会成为下一个系统的指令。

监督是由人承担问责的位置,按风险而非默认设置:不可逆或受监管的动作会暂停等待批准,低置信度的结果会带着完整的运行上下文上报。对一切都设闸会毁掉自动化,并训练评审者不读就点通过。

恢复闭合了这个环。每次运行都在单一关联 ID 之下跨模型、工具与重试被追踪;在目标系统允许的情况下,动作都设计有配对的补偿操作;紧急停止可以停下一类运行,而不必让整个平台停摆。

请求流程

  1. 1. 请求:任务到达,附带发起主体以及声明的工具与数据范围。
  2. 2. 签发:代理铸造一份绑定该声明、限定于本次运行的短时身份。
  3. 3. 准入:运行在沙箱中启动,没有环境凭据,并带有出网允许列表。
  4. 4. 行动:每次工具调用都按本次运行的范围授权;范围之外的一律拒绝并记录。
  5. 5. 闸门:不可逆或受监管的动作暂停等待人工批准,并附上上下文。
  6. 6. 输出:产出在边界处编码,使其在下游不会被当作指令执行。
  7. 7. 收尾:身份失效,痕迹在其关联 ID 之下封存,补偿操作仍然可用。

组件

按次运行的身份签发方(绑定任务的短时凭据)带有声明能力范围的工具代理沙箱执行环境出网允许列表与数据外泄控制输出边界编码器按风险设置的人工批准闸门关联的运行追踪与审计日志补偿操作与紧急停止

参考场景

上下文
一家示例企业,在工单、财务与内部知识领域运行着数十个智能体,每个智能体都可以读写记录系统。
场景
检索环节摄入了一份文档,其中注入的指令要求智能体导出客户记录。模型照做了,但导出工具不在本次运行声明的范围内,调用被拒绝;尝试被记录,异常规则停止了该次运行,关联 ID 让响应者一次查询就拿到完整链路。
技术
按次运行的凭据签发、带范围的工具代理、沙箱执行、出网允许列表、边界编码、按风险的批准闸门与关联追踪。
负载
持续的后台自动化,并在业务流程前后形成尖峰;稀少而影响重大的动作只占调用的一小部分,风险恰恰集中在那里。
结果
参考目标而非实测结果:被劫持的运行被限定在其声明范围内,每一次拒绝都可归因到具体运行,任何已执行的动作都可追踪,并在目标系统允许时可被补偿。

优势

  • 一个出错或被劫持的智能体,代价是一项任务,而不是整片资产。
  • 事故可归因到一次运行而非共享账号,因此响应有的放矢,撤销成本低廉。
  • 提示注入大部分价值落空:说服模型并不能赋予它从未拥有的能力。
  • 监督精力集中在真正不可逆的动作上,批准因此仍然有分量。

风险

  • 声明的范围与智能体真实所需逐渐脱节,团队不断放宽,直到最小权限只剩名义。
  • 设闸过多会训练评审者不读就批准,那比不设闸更糟。
  • 沙箱与代理带来额外的时延与运维面,小规模部署未必值得。
  • 有些对外的影响无法补偿:已发出的邮件、已支付的账单都收不回来。

KPI

拥有独立短时身份的运行占比
承重的那项管控。任何低于 100% 的数字都意味着仍有路径在使用共享凭据。
被拒绝的越界工具调用
按运行计数。数字上升说明的是环境,未必是设计的失败。
每次运行的影响半径
单次运行若被完全劫持所能触及的系统与记录数量。这正是该架构存在的目的所要缩小的数字。
设闸动作比例与批准时延
两者都重要:比例过高会毁掉自动化,时延过长会让团队关掉闸门。
追踪完整度
能在单一关联 ID 之下端到端重建的运行占比,包含重试与模型切换。
撤销所需时间
从检测到一次运行的能力消失为止。使用短时凭据时,这个时间应接近其到期时长,而不是一次轮换。

成本与扩展

  • 身份代理与工具代理位于每次调用的热路径上,因而决定了上限;它们无状态、可水平扩展,但其时延在每次使用工具时都要支付。
  • 对短运行而言,沙箱启动主导成本;用温沙箱池来换取时延,是以隔离深度作交换,应当是一个明确的决定。
  • 人工批准不是线性扩展的,才是真正的约束:随着队伍变大,设闸的集合必须保持很小,否则队列本身就成了故障。
  • 追踪存储随运行数乘以工具调用数增长;采样对可观测性可行,对审计不可行,因此两套留存策略应当分开。

已观测到的失效模式

  • 某处栈中残留一份共享服务凭据,悄无声息地瓦解了按次运行的身份。
  • 出网允许列表被绕过——经由一个本身会转发数据的已批准目的地。
  • 追踪在一次重试或一次模型切换处断裂,事故链条再也无法重建。
  • 批准队列积压,闸门被「临时」关闭以便清空队列。
  • 工具输出在下一步被当作可信输入,围堵退化为一道会漏的单一边界。

经验教训

  • 先设计影响半径,再谈能力:智能体能触及多远,是比它能做什么更难的问题,先回答它会让其余部分变得可处理。
  • 按次运行的身份是承重的一层;没有它,其他任何管控都是针对一个你叫不出名字的主体施加的。
  • 对一切都触发的闸门等于什么都不触发:把人工批准留给不可逆的动作。
  • 假定模型会被说服,并据此设计,使说服不等于授权。
  • 恢复要在系统平静时建好;没有人会在事故当中设计补偿操作。

技术

Short-lived workload identity (OIDC / SPIFFE-style)Capability-scoped tool broker (MCP or equivalent)Sandboxed execution (container or microVM)Egress allowlist / forward proxyOutput encoding at the trust boundaryDistributed tracing with a run correlation idPolicy engine for risk-based approval

示例

  • 检索到的文档中注入的指令要求导出数据;该工具不在本次运行范围内,调用被拒绝并记录。
  • 财务智能体起草一笔付款,由人在执行前批准,批准上附有该次运行的追踪。
  • 行为异常的一类智能体被紧急停止,队伍中其余部分继续运行。
  • 一次事故从单一关联 ID 重建出来,跨越三个模型、九次工具调用与两次重试。

常见问题

为什么是免疫系统而不是防火墙?
防火墙假定内外之间存在边界。运行智能体的企业没有这条边界:智能体已经在里面,带着真实凭据在行动。免疫系统把入侵视为常态,把投入放在识别、围堵与修复上,而不是放在一道周界上。
这不就是多绕几步的最小权限吗?
最小权限是五层中的一层,也是最为人熟知的一层。这套架构的主张是:单靠它并不够。没有按次运行的身份,权限就无法收敛到一个主体;没有围堵与恢复,一次范围正确却仍然出错的运行既没有边界也没有退路。
这能挡住提示注入吗?
挡不住,而把任何一项管控当成能挡住它,恰恰是那个错误。它做的是让注入变得便宜到可以幸存:说服模型去尝试某个动作,和这个动作被授权并不是一回事,而被拒绝的尝试本身就是一个信号。
最小可行版本是什么?
按次运行的身份,加上限定于任务的工具访问。这两样给出归因与边界。围堵、闸门与补偿操作的分量,随动作越发不可逆而越发重要。
它和治理框架是什么关系?
它是这些框架在运行时的表达。NIST AI RMF 与 ISO 42001 要求问责与可追溯,OWASP LLM Top 10 与 MITRE ATLAS 描述攻击。这套架构正是那些义务变成身份、范围、沙箱与追踪的地方。

参考文献