生产代理的AI架构:故障模式与控制层
生产代理系统的分层架构指南:故障模式、防护措施、评估方法、可观测性、成本控制、零信任原则及治理机制。
来源: AI Architecture Blueprints for Production-Ready Agent Systems
为什么原型会停滞不前
生产环境中的人工智能系统很少因为模型性能不足而崩溃,它们出问题是因为围绕模型的架构从未将非确定性视为设计约束。几乎所有后续决策都受到三对矛盾的制约:功能性与可控性、延迟与准确性,以及自主性与可审计性。
优秀的架构师会先问“为什么”,再考虑“什么”。没有设计理念时,组件列表仅仅是一份检查清单;而有了设计理念,它就会变成一个能够应对尚未出现问题的框架。
这种理念颠覆了一种常见假设。传统架构要求各个组件严格按照其规格要求运行,这样一来,架构师只需处理路由、扩展性和容错性等问题。而在这里,组件本身就是不确定性的来源,因此整个系统必须在每一层都对这种不确定性进行吸收、衡量和限制。
人工智能系统究竟是如何失效的
生产环境中的大多数故障都源于将概率系统当作确定性API来使用。以下是这类系统出错的大致分类。
将幻觉视为检索问题
人们通常将幻觉现象归咎于模型质量问题。从架构角度来看,这是检索缺口、上下文窗口管理失误或置信度校准失败所致。当模型只能处理4,000个标记的内容,却要对其200页的文档进行推理时,它无法意识到自己缺少了什么,于是便编造剩余内容。解决之道在于系统设计:精确的检索机制、合理的上下文容量限制,以及通过系统提示和输出结构明确体现不确定性。
三种漂移类型
团队常常将三种不同的情况混为一谈。模型漂移是指服务提供商更新了基础模型,导致行为发生变化,而您这边并未部署任何新内容。数据漂移则是指输入数据发生改变,比如原本熟悉2024年之前查询模式的客服人员,在处理新产品相关问题时开始遇到困难。知识漂移则是指外界环境不断变化,模型所学的知识随之过时。每种情况都需要相应的检测与解决方法。
跨越客服人员职责范围的错误
多智能体系统带来了更为复杂的问题。智能体A产生略微错误的结果,智能体B将其视为事实,而智能体C则基于B有误的推理采取不可逆的操作。一旦错误显现,几乎不可能追溯其起源。三种防护措施可有所帮助:智能体之间互相交换置信度评分,当置信度低于设定阈值时触发中断机制,且每个智能体的操作都会被记录到只读审计日志中。
上下文污染
漫长的对话以及大量的工具调用历史会填满上下文窗口,导致性能下降。注意力会在日益增多的信息中分散,关键指令则会移至注意力最弱的中间区域。系统设计者需要建立有计划的上下文生命周期:设定总结的触发条件、采用压缩策略,并明确区分工作记忆与长期记忆的用途。
重试循环
拥有工具的智能体可能会陷入病态的重试行为。搜索结果出现模糊匹配时,智能体会重新编写查询语句,但新的查询同样模糊不清,如此循环往复,直到上下文耗尽或达到速率限制。除非编排层具备循环检测、步骤预算限制及终止条件,否则智能体系统往往会将大量资源浪费在无法解决的子任务上。
通过外部内容注入
用于读取邮件、处理文档或浏览网页的智能体可能会遇到包含恶意指令的内容,这些指令旨在控制其行为。这并非模型安全问题,而是发生在可信数据与不可信数据边界上的典型注入攻击。防御措施包括:沙箱执行、严格区分指令层与数据层,以及在执行任何后续操作之前根据受限架构对输出结果进行验证。
缺乏持续评估
系统逐渐出现问题的最常见原因就是缺乏持续评估机制。团队发布模型后,虽然会展示演示效果,却将其视为静态API。每一次提供商更新、RAG语料库中的任何架构变更以及用户群体的变化都可能引发问题,而如果没有评估机制,第一个出现的信号往往就是用户的投诉。
平台即星群
企业级AI平台并非单一的整体,而是一个由多个系统构成的集群,每个系统都有其特定的职责、接口规范以及故障模式。设计时必须覆盖整个请求生命周期(数据接收、上下文构建、模型调用、工具执行、响应验证、可观测性),同时要考虑到任何一层都可能出现故障。
检索是一个流程
检索增强生成比其名称所暗示的更为复杂。一个实际的生产系统并非仅仅涉及文档嵌入、向量查询以及上下文拼接,而是一个至少包含五个阶段的流程,每个阶段都可能出错:数据摄取与分块、嵌入模型选择与版本管理、索引构建与更新频率、结合密集型与稀疏型方法的检索排序,以及设定相关性阈值后的上下文整合。每个阶段都需要相应的指标,一旦某个环节发生变化,就可能在无人察觉的情况下影响其他环节的性能。
智能体记忆的四个层级
智能体记忆应分为四个层级:
- 工作记忆指的是会话内的上下文窗口。
- 情景记忆存储过去对话的摘要,可在同一会话中调取。
- 语义记忆则是企业知识库,即RAG层所对应的内容。
这些层次之间的界限模糊是导致上下文污染以及智能体在不同会话间表现不一致的常见原因。
多智能体系统与任务交接
在规模较小的情况下,单个智能体已能解决问题。而多智能体设计则属于更具挑战性的领域,其难点在于协调开销、共享状态的一致性、错误传播以及单个智能体不会出现的涌现行为。
最常被忽视的部分是交接协议,即规定一个智能体应向另一个智能体传递什么内容。最基本的交接信息包括任务状态、置信度得分、用于去重处理的已完成步骤、相关上下文的引用(而非全部上下文,否则会占用过多内存),以及途中发现的任何限制条件。由于缺乏结构化的规范,智能体之间只能传递自由形式的自然语言,接收方必须再次解读其意图,这正是导致偏差和错误加剧的主要原因。
团队还需决定智能体如何共享记忆。为每个智能体保留私有记忆虽便于理解其行为并进行审计,但会导致数据检索重复,且使各智能体的状态出现差异。共享黑板有助于协调工作,但需要并发控制、版本管理以及无效化逻辑。建议的默认设置是私有记忆,任务完成后通过带版本的显式发布事件将结果推送到共享存储中。
约束机制即系统结构
约束机制并非附加在生产级人工智能系统上的功能,而是系统的固有属性。缺乏分层约束机制的系统不仅仅是缺少安全功能的AI系统,而是一种完全不同的系统,根本不应被用于企业环境中。
分级紧急停止机制
每个生产系统都需要的不仅仅是单一的强制关闭开关,还需要多种级别的响应机制:
- 速率限制会降低处理速度,但不会完全停止服务。
- 功能降级会关闭工具访问权限,并切换为仅提供信息的状态。
- 人工路由会将所有请求转交给人工客服处理。
- 会话终止能干净地结束当前活跃的客服会话,同时保留审计记录。
- 完全停止则会使所有服务不可更改地关闭,并保存取证状态。
这些措施都必须在实际环境中进行测试,因为未经测试的紧急停止机制根本算不上真正的紧急停止。
可逆性最为重要
内容安全一直备受关注,但更重要的问题是某个操作是否可以撤销。如果智能体发送了错误的邮件、删除了数据库中的记录、完成了支付或部署了基础设施,这些操作都无法再恢复。每种工具都应有一个可逆性等级,随着撤销操作的难度增加,对应的置信度也会上升:操作越具有永久性,系统在无人干预的情况下执行之前就必须越谨慎。
评估层
许多企业项目在纸面上符合“最佳实践”,但实际上却毫无成效。每季度对50个样本输出进行人工审查不过是做做样子,并非真正的评估框架。真正的评估框架应是持续运行的、自动执行的,并与可观测性流程相衔接。
利用模型作为评判标准
目前,让第二个语言模型对第一个模型的输出进行评分是实现持续质量检测最具可扩展性的方法,它能够评估字符串匹配无法处理的开放式输出。但这种方法也存在自身的缺陷。评分者会表现出位置偏好,更倾向于选择更长或更早出现的答案;他们还会存在自我偏好,比如Claude会给出更高的评分给类似Claude风格的输出。此外,这种情况还可能引发连锁幻觉,导致错误地判定某些输出为事实。合理的实现方式会使用对抗性测试集,定期以人类判断作为基准进行校准,并为评分者的判断结果附加不确定性分数。
部署流程中的评估
评估不应只是偶尔进行的附加工作。模型更新、提示词修改、语料库刷新以及工具架构变更都应触发自动化的评估流程,若关键指标出现退化则应阻止版本发布。这意味着每项指标都需设定最低阈值,并将其视为服务协议的一部分。未能通过单元测试的微服务不得上线,同样,评估不通过的AI系统也不得发布。
状态空间开放时的可观测性
观察AI系统与观察微服务有一个重要区别:AI系统的状态空间没有边界。微服务要么正确处理请求,要么无法处理。而AI的响应则处于一个连续的质量尺度上,其好坏可能取决于只有通过再次调用模型才能测量的标准。这就需要一种截然不同的可观测性设计。
对于每个大语言模型请求,最基本的有用记录应包含:
- 模板渲染完成后、被截断之前的完整提示词
- 连同来源信息的检索到的上下文
- 经过后处理之前的模型原始响应
- Token使用情况明细
- 各阶段(检索、模型处理、后处理)的延迟时间
- 若同步计算则包括评估分数
- 每一次工具调用及其响应结果
- 模型输出的置信度或不确定性信号
- 经过匿名处理的会话标识与用户标识
- 涉及的所有组件的版本标识:模型、提示词模板、索引以及工具架构
版本标识最为重要。没有它们,就无法将质量下降问题与特定的变更联系起来,只能靠猜测。
三种漂移信号
检测漂移意味着需要同时观察三个信号。对于输入分布的漂移,关键在于判断新收到的请求在统计上是否与系统初始配置时的数据存在差异,而余弦相似度等嵌入空间距离指标可以在质量下降之前揭示这一情况。对于输出质量的漂移,重点在于评估分数是否呈下降趋势,这需要持续进行评估而非仅定期检查。至于模型行为的漂移,则是要判断提供方是否悄悄更改了模型,因此应按照预定时间表对每个模型运行确定的黄金集基准测试,一旦差异超过阈值即发出警报。
成本即架构
在讨论人工智能架构时,成本往往是被忽视的最重要因素,而在企业级应用中,它也是最先出现问题的方面之一。即便某个系统满足了所有技术要求,但每次请求的成本高达4美元,也难以通过首次运营评估。应将成本视为架构层面的约束条件,而非事后才考虑的计费问题。
路由至最便宜且功能合格的模型
最有效的解决方案是智能模型路由,即把每个请求发送到仍能满足质量标准的最便宜模型。这需要一个能够识别任务复杂度(简单的事实查询、多步骤推理或代码生成)、将不同复杂度等级对应到相应模型层级,并在路由失败时提供备用方案的路由功能。该路由器本身可以是一个小型且快速的分类器,其成本通常会在首次将请求成功发送到更便宜的模型层级时得到弥补。
语义缓存
普通缓存在大型语言模型应用中表现不佳,因为含义相同的请求很少能以完全一致的字符串形式出现。语义缓存则通过嵌入空间中的相似度而非精确文本来索引响应,在高负载场景下能达到30%到60%的命中率,同时不会被应用层察觉。它需要一个快速的近似最近邻索引、一个用于判定未命中的相似度阈值,以及与知识更新速度相匹配的生存时间策略。
令牌预算
在实际应用中,大约60%到80%的令牌消耗来自系统提示、工具架构及检索到的上下文,而非用户消息或模型回复。因此,预算管理应从系统构建阶段着手:动态调整系统提示,仅保留与请求类型相关的部分;按需加载工具架构,仅注入规划器选定的那些;对上下文窗口进行分层处理,将高相关性的内容保留在主要上下文中,而低相关性的内容则以压缩摘要的形式呈现。
智能体的零信任机制
零信任机制最初是为人类用户和静态服务设计的。将其应用于智能体意味着需要扩展其功能,以覆盖动态的能力集、不同的置信度,以及让智能体在无需每次操作都获得明确批准的情况下即可执行任务的能力。
每个智能体都有身份标识
在生产工作流中,每个代理都需要拥有独立的加密身份,该身份既不同于其服务的用户,也不同于其他代理。凭证应与会话绑定,并在会话结束时失效。此外,凭证还应限定代理的功能范围,即通过凭证来编码代理可以执行哪些操作,而不仅仅是标识其身份。同时,每一次凭证的发放与撤销都应被不可更改地记录下来。这样,审计追踪就能回答在何时、由哪个代理、使用何种凭证为哪位用户执行了何种操作,这在事故调查中至关重要。
指令与数据分离
在代理型人工智能中,最重要的安全机制是将指令与数据分开处理。不可信的来源绝不能污染系统的提示内容。具体而言,外部数据在进入上下文之前会经过净化处理,检索到的内容会被赋予信任标签,同时模型会被要求将低信任度的文本视为需要分析的材料,而非指令。这类似于参数化SQL查询:原理相同,实现方式不同。
内置的治理机制
人工智能治理并非简单的合规检查项,而是一种需要架构支持的持续性运营规范。一个组织无法管控那些它无法观察的系统,无法审计不记录日志的系统,也无法对原本就不是为执行政策而设计的系统施加约束。治理机制必须从一开始就内置,而非事后添加。
政策即代码
以散文形式存在的策略无法实现大规模管理。真正需要的是代码化策略:即机器可读的规则,这些规则需置于版本控制之下,并能在运行时由人工智能网关进行测试和评估。基于 Rego 语言的 Open Policy Agent 是一个成熟的解决方案。它能够将诸如“除非输出结果带有人工审核标记,否则该模型不得在欧盟地区做出面向客户的决策”或“此代理程序不得对被归类为个人身份信息的数据进行支付操作”之类的规则进行编码。在网关层面进行评估可以形成统一的执行点及完整的审计日志,从而取代当前企业级人工智能中普遍存在的零散、不一致且未被有效执行的策略。
解释权
诸如欧盟《人工智能法案》之类的法规,再加上企业风险管理要求,越来越强调必须向受影响的人群解释那些由人工智能做出的决策。这属于架构层面的要求,而非模型能力的问题。即便某个模型无法解释自身的推理过程,只要架构能够记录下该模型接收了哪些信息、调用了哪些工具、考虑了哪些选项以及其对结果的置信度,它依然可以融入可解释系统之中。审计追踪机制必须能够在审计时直接回应解释请求,而非事后根据现存的日志重新构建。
架构本身就是产品
一个可投入实际应用的AI系统并非由其语言模型的质量来决定,而是取决于围绕该模型构建的架构的复杂程度。模型虽是强大且不可或缺、难以替代的组件,但终究只是其中的一部分。
AI架构是一门在AI的非确定性与企业软件的确定性要求相交汇处,构建出可靠、可管控且可持续优化的系统的艺术。每一层都负责解答一个问题:
- 如何避免不良输出?依靠约束机制。
- 如何察觉质量下降?通过评估与可观测性手段。
- 如何协调多个AI组件?借助多智能体拓扑结构与交接协议。
- 如何防止成本不断上升?通过令牌预算与模型路由机制。
对于刚接触这一领域的人而言,应当明白人工智能架构并非软件架构的一个分支,而是一门独立的学科,拥有自身的基本要素和思维模型。它将不确定性视为核心设计约束而非边缘情况,因此需要为各种变化情况设计系统,而非仅针对预期输出。应关注数据分布而非平均值。只有那些能够良好应对最糟糕的5%场景的系统,才有资格在实际应用中为另外95%的场景提供服务。