← RAG 检索增强

哪些问题该走 RAG,哪些该直接查工具或规则表?

高频 中等 RAG 是什么、解决什么问题 · 第 2 / 2 问 更新于 2026/09/29
RAGFunction Calling问答分流智能客服系统设计
本题落地项目AI Agent电商平台导购与运营增长系统

简化版

按数据的性质分:RAG 适合相对静态的描述性知识,比如商品参数说明、FAQ、使用指南、制度条款,这类内容是非结构化文本,用户问法多样,需要语义检索加模型组织语言。实时且不能错的数据,比如价格、库存、订单状态、账户余额,必须由工具查真实来源,不能进知识库,更不能让模型凭记忆回答。规则明确、条目有限的内容,比如售后政策条款,可以直接查规则表匹配。而且确定性数据查到之后,不一定要再过一遍大模型:让模型「润色」只会增加编造风险和成本。最后还要想清楚分流由谁决定:调用方指定、规则判断,还是意图识别。

详细版

数据类型例子更新频率能不能错走哪条路要不要调模型
描述性知识商品参数说明、FAQ、使用指南低允许措辞差异RAG 检索要,组织语言
实时业务数据价格、库存、订单状态高不能错工具查库可以不调,直接拼字段
明确规则退换货时限、质保条款低不能错规则表匹配可以不调
需要动作的请求退款、改地址、建工单—不能错工具执行 + 校验,或转人工视情况

分流由谁决定:

调用方指定:页面或接口直接传问题类型        简单可靠,但依赖入口设计
规则判断:  关键词、正则、表单选项           可解释,覆盖面有限
意图识别:  分类模型或大模型判断类型          灵活,要处理误判和低置信
Agent 自选:把 RAG 和工具都交给模型按需调用   最灵活,要有调用上限和留痕

完整版教学

一、为什么不能「什么都进知识库」

把价格、库存也写进知识库文档,看起来省事:一套 RAG 就能回答所有问题。问题在于:

10:00  商品 A 价格 5999,写进知识库,切片、向量化
14:00  运营改价为 5499
15:00  用户问「A 多少钱」→ 检索命中 10:00 的切片 → 回答「5999」

知识库是离线加工的,从数据变化到切片、向量化完成有延迟;而价格、库存、订单状态是实时变化且不能出错的。报错一个价格就可能引发客诉甚至资损。这类数据必须每次都查真实来源。

反过来,把商品说明、FAQ 这类长文本放进数据库字段、用 SQL like 去查也不行:用户问法千变万化,关键词匹配几乎命中不了,这正是 RAG 的用武之地。

记忆钩子:会变、不能错的,查源头;变得慢、问法多的,走检索;条目少、规则硬的,查规则表。

二、确定性数据查到后,要不要再过模型

一个常见的设计是:工具查到订单状态后,再交给大模型「组织成自然语言」。这一步有代价:

做法优点代价
工具结果直接拼成文本返回零编造风险、零模型成本、毫秒级回答格式固定,不够口语化
工具结果交给模型组织回答自然多一次调用;模型可能改错数字、补充不存在的信息

对订单状态、价格库存这类问题,用户要的是准确的数字和状态,格式固定反而更清楚。只有当一个回答要综合多个来源(比如「这款笔记本适合编程吗、现在有货吗」同时涉及参数说明和库存)时,才值得把工具结果和检索资料一起交给模型。

三、规则表匹配:比 RAG 更硬的选择

售后政策这类内容有两个特点:条目有限(退货、换货、质保、物流几十条),而且每一条都是「必须这样执行」的规则。放进知识库走向量检索也可以,但有两个隐患:检索可能取到措辞相近但适用条件不同的条款;模型组织语言时可能改掉关键条件(「7 天」说成「一周内」还好,说成「15 天」就是事故)。

直接查规则表,按类型、名称、适用场景做关键词匹配,把命中的规则原文拼成回答,从根本上排除了编造的可能。代价是匹配不如语义检索灵活,所以要设计匹配不上时的兜底,比如返回最常用的几条规则,或者提示转人工。

四、同一句话,可能对应两种不同的问题

「售后怎么规定」在不同入口下含义不同:

在某商品详情页问 → 想知道「这个商品的售后说明写了什么」→ 该商品知识库里的售后说明
在客服中心问     → 想知道「平台的售后规则是怎么定的」  → 平台规则表

所以分流不只看问题文本,还要看问题从哪里来、当前上下文是什么。入口本身就是很强的分流信号:详情页天然限定在某个商品,订单页天然带着订单号。

五、分流由谁决定

四种方式的对比:

方式实现优点风险
调用方指定页面或接口传问题类型简单、零误判入口多了要各自维护,用户在错的入口问就答偏
规则判断关键词、正则可解释、快覆盖不全,问法一变就漏
意图识别分类模型或大模型判类型灵活误判后走错数据源,要有低置信兜底
Agent 自选模型在工具和检索之间按需调用能处理混合问题步数不可控,要有调用上限和过程留痕

实际系统常常组合使用:入口能确定的先由入口确定,剩下的用意图识别,识别不准的交给 Agent 或转人工。自动路由的设计和评测,见「RAG Query Router 适合解决什么问题?」。

六、模型负责说,系统负责做

还有一类请求不是「查」而是「做」:退款、改地址、建工单。这类请求既不能交给 RAG(知识库里只有流程说明,没有执行能力),也不能让模型在回答里「声称已办理」。要么由工具在代码层面真正执行并校验权限和参数,要么由页面入口交给人工处理。一个只做知识问答的客服窗口,最重要的边界就是不假装自己办了事。

七、怎么验证分流设计是否合理

分流设计好不好,要看线上数据:

统计每类问题的量、平均耗时、模型调用次数
抽查回答:确定性数据有没有被模型改错,描述性问题有没有答空
统计兜底比例:规则匹配不上的比例、意图识别低置信的比例、转人工的比例

例如一周 1000 次问答里,价格库存类 300 次都没调模型、耗时毫秒级,商品知识类 500 次各调一次模型,售后规则类 200 次里有 20 次匹配不上走了兜底——这 20 次就是补规则或补知识的线索。

八、常见误区与追问

  • 误区:所有问题都走 RAG 最统一。 价格库存订单这类实时数据进知识库会过期,必须查真实来源。
  • 误区:工具查到数据后一定要交给模型润色。 确定性数据直接返回更准、更快、更省,模型润色可能改错数字。
  • 误区:规则类内容放进知识库就行。 条目有限、必须严格执行的规则,查规则表拼原文更可靠。
  • 误区:分流只看问题文本。 问题来自哪个入口、当前上下文是什么,同样是关键信号。
  • 误区:模型可以在回答里告诉用户「已为您办理」。 真实业务动作只能由工具执行或转人工,模型只负责说明。
  • 追问:一个问题同时涉及说明和库存怎么办? 分别查知识库和工具,再把两部分结果一起交给模型组织回答。
  • 追问:规则匹配不上怎么办? 设计兜底,比如返回最常用的几条规则或提示转人工,并统计兜底比例作为补规则的依据。

九、加强记忆

按数据性质分流:描述性知识变得慢、问法多,走 RAG;价格库存订单会变、不能错,用工具查源头;售后条款条目少、规则硬,查规则表拼原文。确定性数据查到后不一定再过模型,直接返回零编造风险。同一句话在不同入口含义不同,入口本身就是分流信号。分流可以由调用方指定、规则判断、意图识别或 Agent 自选,常组合使用并设兜底。退款建单这类动作由工具执行或转人工,模型只负责说。上线后按各类问题的量、耗时和兜底比例检验分流设计。

项目实战落地

项目里怎么做的

《AI Agent电商平台导购与运营增长系统》的 POST /shoppingQa/ask 按 questionType 分到四条链路:

类型数据源调大模型
PRODUCT 商品知识商品知识切片向量检索,按 0.5 阈值过滤后交给模型作答是
PRICE_STOCK 价格库存价格、库存、优惠三个工具,读 product 表后拼接字段否
ORDER 订单状态订单工具查 shop_order,字段按行列出否
AFTER_SALE 售后咨询after_sale_rule 表关键词匹配,取前三条规则拼成回答否

每条问答把回答、依据(evidence_content)和链路轨迹(tool_trace)一起存进 shopping_qa。问题类型由调用方传入:前台商品详情页固定传 PRODUCT,后台由管理员在下拉里选,系统本身不做意图识别。

《AI智能客服与工单处理系统》则把边界划在「查」与「做」之间:AI 客服只做知识问答,不查订单、不建工单,回答不了的问题由每条回答下方固定的人工工单入口承接。

为什么这样取舍

  • 三类确定性问题不调模型:这些数据本身就是准确的,让模型再组织一遍只会增加编造风险和 token 成本。
  • 类型由调用方传入:先把分流边界做清楚,自动路由需要在分发前再加一步意图识别,这是明确的下一步改进方向。

面试官还会追问

  • 在前台商品详情页问「售后和保修怎么规定」,走的是哪条链路?和后台选「售后咨询」答的是一回事吗?
  • 售后咨询一条规则都没匹配上时,系统怎么回答?

学完《AI Agent电商平台导购与运营增长系统》,上面这些追问你都会迎刃而解。

本题落地项目地狱锤炼AI Agent电商平台导购与运营增长系统基于商城系统、商品知识库RAG、智能导购Agent、SpringAI、Function Calling,实现AI商品推荐、价格库存优惠工具调用、AI商品问答、评价分析和运营增长报告,覆盖电商核心闭环。SpringbootSpringAIAgentRAGFunction Calling源码+SQL喂饭学习教程配套面试文档环境安装文档项目运行文档 学习这个项目 也可以学AI智能客服与工单处理系统登峰造极 查看项目