FDE W5 Day 6 学习手册 · 三路数据路由
W5 Day6 · A 级(必须掌握,面试核心)· 3h · 学完能讲透"一个问题怎么决定走 RAG / SQL / 业务 API"
本日定位:W5 是企业 Agent Harness 工程化周。Day5 做了 Text2SQL 这一路,Day6 把视角拉高:一个用户问题进来,Agent 怎么决定"走哪条路"。你是 36 岁、Java+大数据+医疗保险背景的候选人,示例围绕"特药理赔 Agent"——用户问"特药目录怎么规定"(RAG)、"我上月报了多少"(SQL)、"我的理赔现在到哪一步了"(API)。
学完能回答:① 三路路由各自适用什么;② 怎么判断走哪路(LLM 分类 vs 规则);③ 路由失败/低置信度时怎么处理(不瞎猜)。
使用方法:通读原理 → 重点看「工程含义」「面试话术」「易错点」→ 做自测清单 → 配合《FDE-W5D6-评测题.md》。选中不熟的词可标注(左下★重要 / 右下📌待查)。
一、为什么需要数据路由(上层编排)
企业 Agent 面对的问题类型混杂:有的问"特药目录怎么规定"(知识类),有的问"我上月特药报了多少"(结构化查询),有的问"我的理赔现在到哪一步了"(实时状态/写操作)。没有路由,所有问题都塞给一个能力,必然又慢又错:拿聊天问题去查库会查不到,拿知识问题去 SQL 会空跑。
核心思想:路由是 Agent 的"总调度",它不做具体活,只决定"这个请求交给谁"。下面挂的三类能力(RAG / SQL / 业务 API)才是干活的。这与你们做微服务网关/编排层的经验一脉相承。
路由是 Agent 的"总调度":一个问题进来,先判断走 RAG(知识)、SQL(结构化查询)还是业务 API(实时/写)。它不干活,只决定交给谁。没路由会把所有问题塞给一个能力,又慢又错。
二、三路能力全景
| 路由 | 适合的问题 | 底层能力 | 特药理赔示例 |
| RAG | 知识类、文档内容、条款解释 | 向量检索 + 生成 | "特药目录怎么规定""哪些病算罕见病" |
| SQL | 结构化、可聚合、条件筛选 | Text2SQL(见 Day5) | "我上月特药报了多少""Top10 药品" |
| 业务 API | 实时状态、写操作、动作执行 | 工具调用(见 W2) | "理赔到哪步了""帮我提交一笔理赔" |
问题 → 路由判断 → { RAG | SQL | 业务 API } → 结果 → 统一解释回用户
路由的本质是分而治之:每类问题用最合适、最便宜、最安全的能力解决。RAG 管"知识",SQL 管"数据",API 管"状态与动作"。这比"一个大模型全包"在成本、延迟、可控性上都好得多。
📚 延伸资源(中文/官方,非 OpenAI):① Awesome-Text2SQL github.com/eosphoros-ai/awesome-text2sql;② B站 LangGraph 多路由编排实战 BV1zKx4zWEZP;③ 通义/DeepSeek 工具调用与 Agent 文档(中文社区)。
三、RAG 路由:知识类问答
当问题涉及文档内容、条款、政策、知识且需要"引用出处"时走 RAG。它从知识库检索相关片段,再让模型基于片段作答,降低幻觉。
- 触发信号:问题含"怎么规定""依据什么""目录说""条款"等关键词;或路由模型判定为"知识类"。
- 特药理赔示例:"特药报销比例是多少""罕见病目录包含哪些"——答案在政策文档里,必须检索而非编造。
- 边界:RAG 不擅长实时数据("现在额度剩多少"要看库/API)和写操作。
RAG 路由把"知识类"问题隔离出来,用检索保证答案有依据。它的价值是可控、可溯源、低成本——不必每次都调最贵的大模型硬答。路由判断错了(把知识问题送去 SQL)会查不到,所以路由准确率直接影响体验。
RAG 路由适合"知识/条款/文档"类问题,靠检索+生成保证有出处、低幻觉。特药场景如"报销比例怎么规定"。它不擅长实时数据和写操作。
四、SQL 路由:结构化查询
当问题涉及聚合统计、条件筛选、跨表关联且数据在结构化库里时走 SQL(Text2SQL,详见 Day5)。
- 触发信号:问题含"多少""统计""Top""哪个保单""上个月"等聚合/筛选词。
- 特药理赔示例:"我上月特药报了多少""哪些保单额度没用完"——答案在理赔库,需聚合。
- 边界:必须只读+白名单(Day5 已讲);不适合知识类(查不到)和写操作(越权)。
SQL 路由把"数据类"问题隔离出来,用数据库的高效聚合代替模型硬算。关键工程约束:路由进来后仍然要过 Day5 的安全校验五关,路由不替代安全。路由只决定"走 SQL",安全校验决定"SQL 能不能跑"。
SQL 路由适合"聚合/筛选/关联"类问题,数据在库里。特药场景如"上月报了多少"。进来后仍要过 Day5 安全校验五关——路由不替代安全。
五、业务 API 路由:实时状态 / 动作执行
当问题需要实时状态查询或写操作/动作执行时走业务 API(工具调用,详见 W2 Tool)。
- 实时状态:理赔进度、额度余额、审核状态——数据变化快,不能靠 RAG 索引(会过期),要查实时接口。
- 动作执行:"帮我提交一笔理赔""发起申诉"——这是写操作,必须走有鉴权/审计的业务接口,绝不能 SQL 写库(越权+无业务校验)。
- 特药理赔示例:"我的特药理赔现在到哪一步了"(查进度 API)、"帮我上传材料"(调提交 API)。
API 路由处理"动"和"实时":这是最危险的一路(会改状态/产生业务后果),所以必须带鉴权、参数校验、审计。它和 SQL 写库的区别:业务 API 走的是带完整业务规则的Service层,不是裸 SQL——这正是企业级和企业级以下的分野。
① 路由把"写操作"判到 API 后,绝不能退化成 SQL UPDATE——裸 SQL 绕过业务校验(额度、资质、审批流),是事故源。② API 调用也要有超时、重试、幂等(重复提交理赔要防重)。③ 实时状态类问题若误判去 RAG,会给出过时答案,比答错更危险。
业务 API 路由处理"实时状态/写操作",最危险一路,必须鉴权+参数校验+审计。写操作走业务 Service 层,绝不用裸 SQL UPDATE(绕过业务校验=事故)。
六、路由判断方式:LLM 分类 vs 规则
6.1 规则路由(确定性)
用关键词/正则/意图模板硬匹配:含"多少/统计"→SQL;含"规定/条款"→RAG;含"提交/进度"→API。快、可解释、零成本,但覆盖有限、泛化差。
6.2 LLM 分类路由(语义)
让一个(通常较小的)模型把问题分类到 RAG/SQL/API,可带 few-shot 和置信度输出。语义理解强、泛化好,但有成本、有概率判错。
6.3 混合(推荐)
先用规则兜底高频明确意图,规则不确定再交 LLM 分类;或 LLM 分类 + 置信度阈值,低于阈值走回退。
| 方式 | 优点 | 缺点 | 适用 |
| 规则 | 快、零成本、可解释 | 覆盖有限、泛化差 | 意图明确的固定场景 |
| LLM 分类 | 语义强、泛化好 | 有成本、会判错 | 意图多样、长尾 |
| 混合 | 兼顾成本与覆盖 | 实现稍复杂 | 生产推荐 |
路由判断本身也是个"小模型/规则"决策点,要权衡成本与准确率。生产常用小模型分类 + 规则兜底 + 置信度门控,而非每次都调最贵的大模型做路由。路由判错的成本很高(查错库/误写),所以置信度管理是关键。
路由判断两种方式:规则(快/零成本/可解释但泛化差)和 LLM 分类(语义强但有误判成本)。生产推荐混合:规则兜底 + 小模型分类 + 置信度门控。
七、路由 Prompt 设计与 confidence
用 LLM 分类时,prompt 要明确输出路由类别 + 置信度,便于下游门控。
route_prompt = f"""
把用户问题分类到:RAG(知识条款) / SQL(结构化统计) / API(实时或写操作)。
只输出 JSON:{{"route": "RAG|SQL|API", "confidence": 0.0~1.0, "reason": "..."}}
问题:{question}
"""
res = llm(route_prompt, temperature=0, response_format="json")
if res["confidence"] < 0.6:
return fallback(res) # 低置信回退
让路由模型同时输出置信度,是把"不确定"显式化——这是可控 Agent 的关键设计。低置信时不盲目执行,而是走回退(多路/人工),避免"瞎猜一路导致查错或误写"。
① 别只信路由模型的"route"字段,一定要看 confidence——模型可能"自信地分错"。② 置信度阈值要按场景定:涉及写操作(API)的阈值应更高(误判代价大)。③ 路由模型用小模型即可,别为路由浪费大模型 token。
路由 LLM 要同时输出 route + confidence。低置信(如<0.6)走回退,不瞎猜。写操作类阈值应更高。路由用小模型,别浪费大模型 token。
八、低置信度回退:多路 or 人工
当路由 confidence 低于阈值,或两路得分接近(歧义)时,不能硬选一路,要有回退策略:
- 多路并行:同时走 RAG + SQL(或 Top-2),把多路结果汇总/让模型择优选。代价是多花成本,但更稳。
- 澄清反问:向用户追问"您是想查报销金额,还是看报销规定?"——把歧义抛回给用户。
- 转人工:高风险/仍不确定时,转人工坐席,绝不裸奔。
回退策略体现"宁可多花成本/多问一句,也不瞎猜"的工程价值观。尤其是涉及写操作或敏感数据时,低置信必须转人工或澄清,不能"猜一路就执行"。这是企业 Agent 和玩具 Demo 的分界。
① 回退不是"默认走 RAG"——那等于把不确定问题都当知识题,会答非所问。② 多路并行要控制成本(小问题没必要三路全跑)。③ 转人工要有清晰交接(带上已收集信息与置信度),别让用户重复说。
低置信/歧义时不硬选:多路并行汇总、或澄清反问、或转人工。尤其写操作/敏感数据必须转人工或澄清,不能猜一路就执行。回退体现"宁可多问/多花成本也不瞎猜"。
九、与 W2 Tool、W3 RAG 的关系:路由是上层编排
路由不是孤立的新东西,它是站在 W2 和 W3 之上的编排层:
- W2 Tool(工具调用):提供"调用业务 API"的原子能力。路由的 API 一路,最终落到的就是 W2 定义的 tool。
- W3 RAG:提供"检索知识"的原子能力。路由的 RAG 一路,调用的就是 W3 的检索+生成。
- Day5 SQL:提供"查结构化库"的原子能力。路由的 SQL 一路调用它。
路由(编排/调度) ──┬─→ RAG(W3 检索+生成)
├─→ SQL(Day5 Text2SQL+安全校验)
└─→ 业务 API(W2 工具调用,鉴权/审计)
理解层级很重要:W2/W3/Day5 是"肌肉"(具体能力),路由是"大脑"(决策调度)。面试时讲清这个层次,能体现你对企业 Agent 架构的整体观,而不是只会单点能力。
路由是上层编排,站在 W2 Tool / W3 RAG / Day5 SQL 之上。W2 给 API 能力,W3 给 RAG 能力,Day5 给 SQL 能力,路由决定调哪个。它是大脑,下面是肌肉。
十、路由失败处理:不瞎猜
路由失败有几种形态,处理原则统一为"不瞎猜、可观测、能兜底":
| 失败形态 | 处理 |
| 置信度低 | 多路并行 / 澄清反问 / 转人工 |
| 两路歧义 | 澄清反问,或并行后择优 |
| 路由到某路但该路报错 | 换路重试(如 SQL 失败转 RAG 给概览)/ 降级 / 转人工 |
| 完全无法归类 | 友好拒答 + 记审计日志,不执行任何危险动作 |
① 路由失败绝不默认执行最危险的一路(API 写操作)。② 下游能力报错不应"静默返回空"——要显式告知用户并留痕。③ 任何路由决策和回退都要记 Trace,便于复盘"为什么走错路"。
路由失败统一原则:不瞎猜、可观测、能兜底。低置信→反问/多路/人工;下游报错→换路重试/降级;无法归类→友好拒答+审计。绝不默认执行最危险的写操作一路。
十一、路由评测与可观测
路由是 Agent 质量的"开关",必须被评测和监控:
- 路由准确率:用标注集测"问题→正确路由"的命中率(RAG/SQL/API 分别算)。
- 置信度校准:confidence 低时是否真的更易错?看 ROC/阈值合理性。
- 回退率:低置信回退占比,过高说明路由模型太弱或意图太杂。
- Trace:每次记录"原始问题 / 路由类别 / confidence / 是否回退 / 最终走哪路 / 结果"。
把路由当"一等公民"来评测,是工程成熟度的标志。你们做大数据/Java 服务最懂:不可观测就不能优化。路由一旦出错,下游全错,所以路由的监控权重应高于单路能力。
十二、面试达标线①:三路各自适用 + 怎么判断走哪路
RAG ↔ 知识/条款/文档(需溯源)| SQL ↔ 聚合/筛选/关联(数据在库)| API ↔ 实时状态/写操作(带鉴权审计)
判断:规则(快/明确) + LLM分类(语义/泛化) + 置信度门控;低置信→多路/反问/人工
- RAG:知识类、条款解释、需引用出处;如"报销比例怎么规定"。
- SQL:结构化聚合/筛选/关联;如"上月报了多少";进来仍过安全校验。
- API:实时状态、写操作;如"理赔到哪步""提交理赔";带鉴权审计,绝不用裸 SQL 写。
- 判断方式:规则兜底高频意图 + 小模型 LLM 分类 + confidence 门控;写操作阈值更高。
达标核心:能清楚说清三路各适用什么(知识/数据/实时写),并讲出判断方式(规则+LLM分类+置信度门控),以及写操作类阈值应更高。
十三、面试达标线②:路由失败 / 低置信度怎么处理(不瞎猜)
低置信度/歧义的处理:① 多路并行(RAG+SQL 汇总择优);② 澄清反问(把歧义抛回用户);③ 转人工(高风险/仍不确定)。核心原则"宁可多问/多花成本,也不瞎猜一路"。
路由失败红线:① 绝不默认执行最危险的写操作(API)一路;② 下游报错不静默返回空,要显式告知+留痕;③ 无法归类→友好拒答+审计日志;④ 所有路由决策记 Trace 便于复盘。
低置信/失败:多路并行、澄清反问、转人工,核心"不瞎猜"。红线:不默认执行写操作一路、报错不静默、无法归类则拒答+审计、全程记 Trace。
十四、Day 6 自测清单
- 能说清为什么需要路由(分而治之,避免把所有问题塞给一个能力)。
- 能讲清三路(RAG/SQL/API)各自适用的问题类型和特药理赔示例。
- 能区分三路的底层能力(检索生成 / Text2SQL / 工具调用)。
- 能说清路由判断的两种方式(规则 vs LLM 分类)及优缺点。
- 能讲出混合路由(规则兜底+小模型分类+置信度门控)为何是生产推荐。
- 能解释为什么路由 LLM 要同时输出 confidence,以及写操作类阈值应更高。
- 能讲清低置信度/歧义的三种回退策略(多路/反问/人工)。
- 能说清路由与 W2 Tool、W3 RAG、Day5 SQL 的层级关系(编排 vs 原子能力)。
- 能讲清路由失败的处理原则(不瞎猜、可观测、能兜底)。
- 能说清为什么写操作绝不能用裸 SQL 而要走业务 API(业务校验/审计)。
- 能列出路由要评测的指标(准确率/置信度校准/回退率/Trace)。
- 能讲清低置信度时怎么处理(达标线②)。
十五、高频面试题速记卡
Q:三路路由各自适用什么?
RAG=知识/条款/文档(需溯源);SQL=聚合/筛选/关联(数据在库);API=实时状态/写操作(带鉴权审计)。
Q:路由判断用规则还是 LLM?
生产用混合:规则兜底高频明确意图 + 小模型 LLM 分类(语义强) + 置信度门控。规则快但泛化差,LLM 泛化好但有误判成本。
Q:路由 LLM 为什么要输出 confidence?
把"不确定"显式化,低置信走回退,避免瞎猜一路导致查错或误写。写操作类阈值应更高(误判代价大)。
Q:低置信度/歧义怎么处理?
三种回退:多路并行汇总、澄清反问、转人工。核心"宁可多问/多花成本也不瞎猜"。
Q:路由和 W2/W3/Day5 什么关系?
路由是上层编排(大脑),W2 Tool 给 API 能力、W3 RAG 给检索能力、Day5 给 SQL 能力——路由决定调哪个。
Q:写操作为什么要走 API 而不是裸 SQL?
裸 SQL 绕过业务校验(额度/资质/审批)和审计,是事故源。业务 API 走带完整规则的 Service 层 + 鉴权 + 审计。
Q:路由失败能默认走 RAG 吗?
不能。那等于把不确定问题都当知识题,会答非所问。应多路/反问/人工,绝不默认最危险的写操作一路。
Q:路由要评测哪些指标?
路由准确率、置信度校准(低conf是否真易错)、回退率、Trace(问题/类别/conf/是否回退/最终路/结果)。
Q:下游能力报错怎么办?
不静默返回空:换路重试(如 SQL 失败转 RAG 给概览)/ 降级 / 转人工,并显式告知用户+留痕。
Q:路由进来后的 SQL 还要安全校验吗?
要。路由只决定"走 SQL",Day5 的安全校验五关决定"SQL 能不能跑"。路由不替代安全。
FDE W5D6 学习手册 · 三路数据路由(面试级)· 配合《FDE-W5D6-评测题.md》自测
📌 待查★ 重要