AI Agent 整体工作流程梳理

基于《AI多智能体路由设计方案》整理的端到端流程说明。


〇、两种等价视角:多 Agent vs 一大 Agent 多分支

库存 Agent、订单 Agent 在实现上可以有两种理解:

视角 说法 含义
多智能体 订单 Agent、库存 Agent、财务 Agent… 多个独立 Agent,路由选「哪一个/哪几个」
单 Agent 多分支 一个业务 Agent,下面有订单分支、库存分支、财务分支… 一个大 Agent,路由选「激活哪一类 Tool 子集」

两者在流程上等价

  • 意图识别 → 都是「识别用户要干什么」;
  • 选 Agent = 选分支/工具组
  • 最终都是:只把当前相关的少量 Tool 传给同一个大模型

因此可以统一理解为:一个大 Agent,内部按「能力域」分成多组 Tool(订单组、库存组…),路由层决定本次请求激活哪几组、传哪 5~12 个 Tool。库存/订单更像是这个大 Agent 里的两个分支或两簇 Tool,而不是两个完全独立的大模型实例。


一、流程总览

用户输入 → 意图识别路由 → 智能体选择与Tool过滤 → 大模型推理 → 结果返回
阶段 负责模块 输入 输出 是否调用大模型
1 意图识别路由器 用户消息 意图 + 置信度 ❌ 否
2 智能体选择器 意图 + 置信度 选中的智能体 + 精选Tool列表 ❌ 否
3 大模型推理层 System Prompt + 精选Tools + 用户消息 模型回复 / Tool 调用 ✅ 是

核心原则:路由与选择在本服务内完成,只有确定智能体并筛选好 Tool 后,才把精简参数传给大模型。


二、阶段一:意图识别路由(不调用大模型)

目标:从用户输入中识别“要解决哪类问题”,为后续选 Agent 和 Tool 做准备。

2.1 输入与输出

  • 输入:用户原始消息(文本)
  • 输出:意图类型、置信度、可选备选意图

2.2 三级识别策略(由快到慢,逐级兜底)

级别 方式 典型耗时 说明
第一级 规则匹配 <5ms 关键词、正则、实体(如金额→财务)
第二级 向量相似度 <50ms 用户问题 → Embedding → 与各 Agent 描述向量比对 → Top-K
第三级 轻量分类模型 <100ms 小模型多标签分类,输出各 Agent 概率

2.3 置信度决策

  • 置信度 ≥ 0.8:直接路由到对应智能体
  • 0.6 ≤ 置信度 < 0.8:主路由 + 保留 1~2 个备选智能体的核心 Tool
  • 置信度 < 0.6:走通用对话 Agent,不携带专业 Tool

2.4 为何路由层不调用大模型?

  • 路由是检索/匹配问题,不是生成问题
  • 本地规则 + 向量/分类即可完成,延迟低、成本为 0、稳定性高

三、阶段二:智能体选择与 Tool 过滤(不调用大模型)

目标:根据意图选出主(及可选备选)智能体,并只保留与该轮请求相关的 Tool,控制传给大模型的 Tool 数量。

3.1 输入与输出

  • 输入:意图识别结果(主意图、备选、置信度)
  • 输出:最终选中的智能体列表 + 本轮要传递的 Tool 列表(建议 5~12 个)

3.2 智能体选择(或:分支/工具组选择)

  • 根据意图映射到具体 Agent,等价于映射到「大 Agent 下的某几个能力分支/工具组」(如订单、库存、财务、客服)
  • 多意图时可按优先级选主分支,或组合多分支的部分 Tool

3.3 动态 Tool 过滤流程(按顺序)

  1. 加载主智能体核心 Tool(命中该 Agent 时必传)
  2. 根据用户输入/实体补充扩展 Tool(如识别到订单号则加订单操作类)
  3. 按依赖关系补全(如“创建退款单”依赖“查询订单详情”)
  4. 上下文过滤:未登录则去掉需身份的 Tool、根据对话历史调整
  5. 数量截断:按相关度排序,最多保留 N 个(如 8~12)

3.4 Tool 分级与传递策略

级别 说明 传递策略
核心 Tool 该智能体必备能力 智能体命中时必传
扩展 Tool 增强能力 意图明确或实体匹配时传
辅助 Tool 边缘能力 仅特定场景传

3.5 多智能体协作示例

  • 用户:“查上个月采购订单,并导出财务报表”
  • 路由结果:采购 Agent + 财务 Agent
  • Tool 组装:只取“查询采购订单”“导出财务报表”等少数 Tool,而不是两个 Agent 的全量 Tool

四、阶段三:大模型推理(唯一调用大模型的环节)

目标:在“精简上下文”下做推理与 Tool 调用决策。

4.1 输入

  • System Prompt:角色与约束
  • 精选 Tool 列表:仅本轮过滤后的 3~12 个 Tool 定义
  • 用户消息:当前轮用户输入(可带必要上下文摘要)

4.2 大模型职责

  • 理解用户问题
  • 给定的小 Tool 集合内决定是否调用、调用哪个、参数是什么
  • 生成自然语言回复或结构化 Tool 调用

4.3 输出

  • 文本回复,和/或
  • Tool 调用请求(名称 + 参数),由执行层真正执行后再决定是否继续推理

五、端到端数据流(串联)

┌─────────────┐
│  用户输入   │
└──────┬──────┘
       │
       ▼
┌─────────────────────────────────────────────────────────────┐
│ 意图识别路由器(规则 → 向量 → 分类,本地完成)                 │
│ 输出:意图 + 置信度 + 备选                                    │
└──────┬──────────────────────────────────────────────────────┘
       │
       ▼
┌─────────────────────────────────────────────────────────────┐
│ 智能体选择器 + 动态 Tool 过滤(本地完成)                      │
│ 输出:主/备选 Agent + 精选 Tool 列表(5~12 个)              │
└──────┬──────────────────────────────────────────────────────┘
       │
       ▼
┌─────────────────────────────────────────────────────────────┐
│ 大模型推理层                                                 │
│ 输入:System Prompt + 精选 Tools + 用户消息                   │
│ 输出:回复文本 / Tool 调用                                    │
└──────┬──────────────────────────────────────────────────────┘
       │
       ▼
┌─────────────┐     ┌─────────────┐
│ Tool 执行   │ ──→ │ 结果回传    │ → 如需可再进入下一轮推理
└─────────────┘     └─────────────┘

六、支撑机制(贯穿全流程)

6.1 注册与元数据

  • 每个 Agent 注册:agent_id、name、description、keywords、intent_patterns、tools、priority、context_requirements
  • Tool 分级:核心 / 扩展 / 辅助;依赖关系(如 A 依赖 B,则传 A 时自动带 B)

6.2 向量与预计算(用于意图路由)

  • 预计算:Agent 描述向量、Tool 描述向量、常见问题向量(启动或配置变更时)
  • 实时计算:仅对当前用户输入做一次向量化
  • 运行时:1 次向量化 + N 次相似度计算(N = Agent 数量),力求 <50ms

6.3 缓存

  • 会话级:同一 session 保持 Agent 一致性
  • 意图级:相同/相似意图复用路由结果
  • 用户偏好:个人习惯加权

6.4 降级与兜底

  • 意图识别失败 → 通用对话 Agent,不带专业 Tool
  • 多 Agent 冲突 → 按优先级或请用户澄清
  • Tool 超限 → 按相关度排序截断
  • 某 Agent 不可用 → 切到备用 Agent

6.5 反馈与迭代

  • 采集:路由决策、实际调用的 Tool、用户满意度
  • 优化:关键词/权重、向量表示、分类模型、Tool 分级与依赖

七、关键指标(流程健康度)

指标 含义 建议目标
路由准确率 正确路由次数 / 总路由次数 > 90%
Tool 精简率 传递 Tool 数 / 全量 Tool 数 < 20%
Token 节省率 (全量 Token − 实际 Token) / 全量 Token > 60%
首次命中率 首次就调用到正确 Tool 的比例 > 85%
平均路由延迟 意图识别 + 智能体选择 < 100ms

八、流程小结(一句话版)

  1. 意图识别:用规则 + 向量 + 小模型在本地判断“用户要干什么”,不调大模型。
  2. 智能体与 Tool 选择:根据意图选 Agent,再按分级、依赖、上下文做动态 Tool 过滤,只保留 5~12 个。
  3. 大模型推理:只在这步调用大模型,输入为 System Prompt + 精选 Tools + 用户消息,输出回复或 Tool 调用。
  4. 执行与闭环:执行 Tool,结果可再喂回大模型;用缓存、降级和反馈数据保证稳定并持续优化。

整体上,路由与过滤全部在网关/本服务内完成,大模型只做“在少量 Tool 下的推理与调用”,从而控制 Token、延迟和成本。

更多推荐