从“全量检索”到“按需调度”:深度解析 LLM 应用的 Intent Routing 架构与工程实践

从"全量检索"到"按需调度":深度解析 LLM 应用的 Intent Routing 架构与工程实践

在 LLM 应用开发的早期,我们习惯于"一力降十会":无论用户问什么,通通丢给最强的模型,或者一股脑塞进 RAG(检索增强生成)流水线。但随着应用进入生产环境,开发者们很快撞上了三堵墙:居高不下的 Token 成本难以忍受的响应延迟 ,以及在复杂任务面前捉襟见肘的确定性

解决这些问题的钥匙,不在于模型参数的大小,而在于系统架构的进化------意图路由(Intent Routing)


一、 什么是 Intent Routing?

它是 LLM 应用的**"中枢神经系统"**。它的任务不是直接回答问题,而是作为流量调度器,在毫秒级内"看清"请求的本质,并决定将其分发给最合适的执行单元:是一个昂贵的高参数模型、一个极速的本地模型、一个专业的检索系统,还是一个预定义的 Python 函数。

二、 工程价值:从"省钱"到"提效"

  • 模型分流与成本治理 (Model Tiering):
    企业应用中,80% 的请求往往是简单的。通过路由将简单任务导向轻量模型(如 GPT-4o-mini),仅让 20% 的硬核逻辑占用高成本模型,综合成本可降低 70% 以上
  • 能力边界的解耦 (Capability Routing):
    大模型并非万能。路由能让模型在擅长的领域发挥,在不擅长的领域求助:计算任务交给代数引擎,时效性任务交给搜索插件。
  • RAG 的精准控制:
    并非所有问题都需要检索。路由能有效识别"闲聊",避免强行插入无关的检索片段(Context Contamination),显著降低首字延迟(TTFT)。

三、 核心:四种意图类型的路由策略

构建路由系统的第一步,是建立清晰的"意图-路径"映射表:

问题类型 核心特点 路由终点 核心工程手段 示例 Query
Factual (事实) 考查私有知识、最新资讯 RAG 链路 向量数据库 + 重排 "公司去年的报销政策是什么?"
Reasoning (推理) 考查逻辑、规划、运算 高级模型 / Agent 思维链 (CoT) + 递归规划 "对比两份报告分析 A 和 B 的优劣。"
Procedural (过程) 考查指令执行、API 调用 Tool Use Function Calling "帮我预定明天下午三点的会议室。"
Chit-chat (闲聊) 情感交流、简单礼貌 轻量级模型 语义缓存 (Semantic Cache) "你好,你今天心情怎么样?"

四、 核心算法:意图置信度(Confidence Score)怎么算?

置信度(Confidence Score)是路由系统的"定海神针"。它决定了系统是该"自作主张"地执行指令,还是"卑微"地向用户求证。根据系统复杂度的不同,计算方式分为基础算法与混合权衡。

1. 基础场景:单一维度的量化

如果你仅使用一种路由手段,置信度的计算相对纯粹:

  • 语义路由(Embedding-based):
    计算用户 Query 向量与预设意图向量簇的余弦相似度

工程标准: 通常相似度 被视为高置信度。

  • 模型路由(LLM-based):
  • Logprobs(对数概率): 提取模型生成"意图分类标签"时该 Token 的概率值。
  • Self-Reflection: 在 Prompt 中要求模型以 JSON 格式输出 score(1-10)。
    工程标准: 分数 视为确信。

2. 进阶场景:混合架构下的"决策漏斗"

在"正则 + 向量 + 大模型"的混合架构中,不同路由器的输出维度不同(苹果和橘子无法直比)。此时,置信度演变为一套优先级漏斗逻辑:

A. 优先级链条(Priority Chain)

混合架构不采用简单的加权平均,而是按确定性由高到低进行逻辑截断

  1. L1 静态层(正则/关键词): 命中即 。一旦匹配(如"退出"、"重来"),立即拦截,不再触发后续计算。
  2. L2 语义层(向量匹配): 若 L1 未命中,计算向量相似度。
  3. L3 模型层(LLM 仲裁): 若 L2 的分数处于"灰色地带"(如 ),则激活小参数模型进行最终语义裁决。
B. 异构分数归一化(Score Normalization)

为了在控制台中监控整体表现,我们需要将不同维度的信号映射到同一个坐标系 :

路由源 原始信号 归一化逻辑
正则/静态 Boolean Match = 1.0; Non-match = 0
向量相似度 区间拉伸:根据实验阈值 映射。例如
LLM 自评 1-10 整数 Score / 10.0

3. 动态修正:引入上下文权重(Context Bias)

在生产环境,置信度计算还需加入"时空变量"。例如,用户输入"怎么弄?",这在任何维度下置信度都很低。

但如果前序对话是在讨论"发票申请",我们可以给"财务类意图"增加一个 **先验权重 **:

通过这种方式,系统能更好地处理模糊表达,减少反问次数。

4. 决策水位线(Thresholding)

最终,系统根据计算出的综合分 做出动作:

  • 执行区(): 自动分流。
  • 澄清区(): 触发 Clarification Loop。系统询问:"您是指查询订单,还是申请售后?"
  • 降级区(): 路由失效。转发给全量高级模型或人工处理。

五、 实现范式:漏斗式混合架构

为了平衡精度与延迟,成熟的系统通常采用**"三级过滤"**:

  • 静态路由 (Static): 利用正则匹配或关键词(如"查一下"、"预定")。延迟几乎为 0。
  • 语义路由 (Semantic): 利用向量相似度匹配预设意图。速度极快(< 50ms),具备模糊处理能力。
  • 模型路由 (LLM-based): 使用小参数模型执行 N-Class 分类任务。虽然增加了几十毫秒延迟,但对语境理解最准。

六、 工程边界情况:那些"坑"在哪里?

  • 模糊意图 (Ambiguity): 当用户输入"那个东西怎么弄"时,强行路由会导致灾难。

  • 对策: 引入 Clarification Loop(反问机制)。当置信度低于阈值(如 0.6)时,触发反问 Prompt 而非强行分流。

  • 路由递归 (Router Loop): 在 Agent 架构中,Router 可能导致逻辑死循环。

  • 对策: 设置 Max Iterations(硬性步数限制),一旦超过 3 次未出结果,强制降级到高级模型。

  • 性能开销 (Overhead): 路由本身不能成为瓶颈。

  • 对策: 对分类结果进行 Semantic Cache(语义缓存),相同语义的请求直接复用路由结果。


七、 实战案例:从输入到结果的路由全过程

案例 1:知识问答型(Factual / RAG)
  • 用户输入: "公司最新的居家办公补贴申请流程是什么?"
  • 路由决策: 识别"申请流程",意图置信度 Factual: 0.95
  • 分发路径: 触发 RAG 链路 -> 检索 Wiki -> 提取文本 -> 小模型摘要。
  • 效果: 确保了 100% 准确性,避免了"AI 瞎编"补贴金额。
案例 2:复杂任务型(Reasoning / Tool Use)
  • 用户输入: "对比上季度报表,分析华东区利润下滑原因,并生成邮件。"
  • 路由决策: 识别"对比"、"分析",意图置信度 Reasoning: 0.88
  • 分发路径: 路由至 高级模型 (GPT-4o) + SQL 插件
  • 效果: 充分利用大模型的逻辑规划能力,虽延迟稍高,但解决了核心业务痛点。
案例 3:低价值冗余型(Chit-chat / Cache)
  • 用户输入: "太棒了,谢谢你!"
  • 路由决策: 命中 语义缓存 (Semantic Cache)
  • 分发路径: 路由至 本地轻量化模型 (Qwen-1.8B) 或返回预设话术。
  • 效果: TTFT(首字延迟)降至毫秒级,且无需支付高昂的 API 费用。
相关推荐
袋鼠云数栈UED团队1 天前
基于 Lexical 实现变量输入编辑器
前端·javascript·架构
兆子龙1 天前
像 React Hook 一样「自动触发」:用 Git Hook 拦住忘删的测试代码与其它翻车现场
前端·架构
兆子龙1 天前
用 Auto.js 实现挂机脚本:从找图点击到循环自动化
前端·架构
兆子龙1 天前
从 float 到 Flex/Grid:CSS 左右布局简史与「刁钻」布局怎么搞
前端·架构
爱勇宝1 天前
2026一人公司生存指南:用AI大模型,90天跑出你的第一条现金流
前端·后端·架构
偷油师傅1 天前
拆解 OpenClaw - 05:13 个省 Token 的设计
架构
兆子龙1 天前
当「多应用共享组件」成了刚需:我们从需求到模块联邦的落地小史
前端·架构
sunny_2 天前
⚡️ vite-plugin-oxc:从 Babel 到 Oxc,我为 Vite 写了一个高性能编译插件
前端·webpack·架构
兆子龙2 天前
模块联邦(Module Federation)详解:从概念到手把手 Demo
前端·架构
Bigger2 天前
告别版本焦虑:如何为 Hugo 项目定制专属构建环境
前端·架构·go