Skip to content

AI 应用架构

AI 应用架构的关键,是把不确定的模型输出放在可验证、可限制、可恢复的系统中。模型适合做语义理解和候选生成,程序负责权限、事务、状态和最终约束。

一条生产请求

mermaid
flowchart LR
  U[用户请求] --> G[鉴权与限流]
  G --> O[应用编排]
  O --> C[上下文构建]
  C --> M[模型推理]
  M --> V[格式与策略校验]
  V -->|需要事实| R[检索]
  V -->|需要动作| T[受控工具]
  R --> O
  T --> O
  O --> A[答案或确认]
  O --> E[日志与评估]

实际执行顺序可不同,但每个外部事实和动作都应有明确来源。

上下文构建

上下文可能包含:

  • 当前用户输入和必要的对话历史。
  • 用户权限和业务状态。
  • 检索到的资料及来源。
  • 工具返回的结构化结果。
  • 输出格式和流程规则。

上下文应按任务动态构建。无关历史、重复规则和完整数据库结果会增加成本并干扰模型。

状态管理

对话历史不等于业务状态。订单是否支付、工单是否创建、审批是否完成,应来自业务数据库;模型生成的文字不能作为事实来源。

多步骤任务需要显式记录:

  • 当前目标和阶段。
  • 已执行工具及结果。
  • 待确认动作。
  • 重试次数和停止原因。
  • 可恢复的检查点。

失败分类

失败层示例处理
输入缺少订单号追问或提示格式
权限用户无权查询拒绝并审计
检索没找到可信资料拒答或转人工
模型格式错误、内容不完整校验、有限重试或降级
工具超时、参数错、业务冲突分类错误并按规则处理
下游消息或存储失败幂等重试和补偿

确定性边界

以下逻辑应由程序控制:

  • 身份认证和数据权限。
  • 金额、库存、事务和状态流转。
  • 写操作确认和幂等。
  • 法律、合规和硬性业务规则。
  • 结果 schema 和字段校验。

模型可以解释用户意图、生成候选参数和组织说明,但不能成为这些规则的唯一执行者。

缓存与成本

可缓存内容包括稳定 Embedding、公共检索结果、确定性分类和重复前缀。包含个人数据、实时状态或随机生成的结果要谨慎缓存,并设置权限隔离和失效策略。

版本

一次输出由模型、Prompt、上下文模板、索引、工具 schema 和业务代码共同决定。它们都要进入版本记录,才能复现问题并安全回滚。

架构成熟度不取决于组件数量,而取决于每一步是否有明确责任、失败处理和验证闭环。

别急,先让缓存热一下。