别把旗舰模型当默认:给 AI 客服做置信度路由,便宜模型打头阵,token 成本砍掉九成(2026 实操版)

去年给一个电商客服项目做模型选型复盘,我把上一个月的调用账单拉出来,盯着那个数字看了很久:日均四五千条消息的客服机器人,不到三十天,光模型调用就烧掉两千三百多块。这还没算向量检索、日志存储这些周边开销,纯粹是付给大模型的过路费。

让人坐不住的是同一周做的抽测。我从历史会话里随机抽了五百条真实用户消息,让旗舰模型和一个便宜档的小模型(deepseek、qwen 这家的 flash/mini 档一类)背靠背盲答,人工判对错。结果分两类看:"查价格、问发货、要规格"这类事实型问题上,两者正确率差不到三个百分点;差距拉开的地方,集中在多轮追问、组合条件那类复杂问题上——那部分流量,占一成半。

这件事想通了有点荒诞:我们花钱买了旗舰模型的智力,然后让它把大部分工作时间花在回答"包邮吗""几天到货"上。相当于请主任医师坐前台,接的全是"你们几点下班"。

这篇把我后来给这个电商客服项目做的置信度路由完整拆开:三层架构怎么搭、置信度信号怎么定阈值、哪些钱不能省、防幻觉锁怎么上、账到底省了多少,最后是我自己交过学费的几个坑。文中单价按公开市场牌价的量级取整,账目是示例口径,你可以套自己的消息量重算一遍。

一、先算账:全走旗舰的客服,钱烧在哪

1. 一天几千条消息的账目

先交代口径,后面所有账都用这套数:

  • 日均 5000 条消息,一个月 15 万条;
  • 每条消息平均输入 2500 tokens(系统提示 + 知识库检索片段 + 对话历史),输出 350 tokens;
  • 示例单价按公开牌价的量级取整:旗舰档输入 4 元、输出 16 元每百万 token;便宜档输入 0.16 元、输出 0.64 元每百万 token——公开市场上,这两档的差价普遍在 20 到 50 倍之间,我按 25 倍算。

全走旗舰:每月输入 3.75 亿 tokens、输出 5250 万,账单是 1500 加 840,约 2340 元。同样的量全走便宜档:九十来块。

差价是 25 倍,但"全走便宜档"没人敢直接上——便宜模型在某些题目上的翻车方式,是报错价格这种真金白银的事故。所以路只剩一条:两种模型都用上,让每一块钱花在刀刃上。这就是置信度路由要解决的问题。

2. 差距不在"面"上,在"点"上

那次盲测的具体数字我记得很清楚。五百条消息里,事实型(查价、物流、规格、政策)占八成半,旗舰答对 93%,便宜档 91%——这点差距用户根本感知不出来。剩下的复杂型(多轮组合条件、对比推荐、售后争议、超纲题),旗舰 76%,便宜档 52%,差了二十多个点。而复杂型里旗舰明显占优的大约占一半,折到全量就是 7% 上下——后来上线实测的升级率,恰好落在这个数上。

便宜模型的问题不是"整体笨",是"在特定题目上没把握"。而"有没有把握",是可以单独度量的。这一句是整套路由成立的前提:既然差距集中在少数题目上,那就把"这题难不难、答得稳不稳"做成一个独立环节——便宜的活交给便宜模型,识别出没把握的,再请旗舰上场。

二、核心架构:置信度路由的三层

1. 三层各干什么

整条流水线长这样:用户消息进来,先过检索器和分类器,同时便宜模型开始作答;打分器收集所有信号,给"这一答"评一个置信分;分数达标,直接发给用户,整条链路的成本是便宜档;分数不达标,这条消息升级给旗舰重答,还不行就走兜底话术或转人工。

三层分工:

  • 第一层,便宜模型打头阵。负责六成多的实际作答量(另有三成被规则层直出吃掉),输入里带检索片段,按平时的方式答。
  • 第二层,打分器判断"答得有没有把握"。注意,它判断的对象不是问题难不难,而是"便宜模型这个答案靠不靠谱"——依据主要来自模型外部的信号,下一节单独讲。
  • 第三层,升级路径。低置信升级旗舰重答;命中硬规则的(金额、情绪),绕过前两层直接走特殊通道。

有个细节值得说:升级重答的时候,我不把便宜模型的答案喂给旗舰,只给用户原始问题和检索片段。便宜模型答错的场合,那个错误答案会把旗舰带偏;只有一种情况例外——便宜模型答对了但格式不合格,这时候才给它当参考。

2. 一张架构表:信号、阈值、动作

信号怎么取初始阈值不达标时的动作
知识库检索得分向量+关键词混合检索,取 top1 归一化分≥0.82 放行0.65~0.82 升级旗舰;<0.65 发兜底话术
标准问答库命中关键词+同义规则精确匹配命中即模板直出未命中则看其余信号
问题类型轻量分类器(事实/情绪/金额/超纲)金额型、情绪型硬拦截金额走旗舰+事实卡校验;情绪转人工
打分器综合置信分汇总上述信号加权<0.75 触发重答升级旗舰重答一次,仍低则转人工
连续追问次数会话状态里数同一意图的轮次≥2 轮强制升级,无视其他分数
事实卡比对回复中的数字与结构化事实库逐字核对不一致即拦截拦截重答,二次不过转人工

这张表是我上线路时定稿的版本,阈值一路调过三轮。它不是模板,是起点——下一节讲怎么把它调成你自己的。

3. 路由的不是模型,是"把握"

很多人把这类系统理解成"模型分级调度",我觉得没抓到重点。路由系统真正的产出,是对每一条回复的可靠度给出了一个可解释的分数——哪条直答、哪条升级、为什么升级,每一条都有日志可查。

这个分数的价值不止省钱。日志攒一个月,你就有一张"知识库哪里漏、FAQ 缺哪条、便宜模型在哪类题上虚"的地图——升级记录集中的那几个问题,就是你下个迭代该补的条目。省钱是这套系统的短期收益,可解释性才是长期资产。

三、置信度信号怎么定:四类信号和经验阈值

1. 检索得分:权重最大的单一信号

检索得分为什么排第一?因为客服场景里,答错的根源八成是"没检到对的内容"——检索对了,便宜模型的照抄能力是够用的。我用的是向量加关键词的混合检索,两路分数加权后取最高那条做归一化。

经验起点是 0.82,高于它放行,0.65 到 0.82 之间升级,低于 0.65 直接兜底——分数低到这个地步,说明知识库里压根没有相关内容,让旗舰硬答也是编,不如老实回一句"稍等核实"。调法:每周从日志里拉 50 条"分数高但答错"和"分数低但答对"的错例回看,阈值按 0.03 的步长挪,挪一步观察一周。另外每次知识库大变更(比如新上促销知识包)之后,阈值必须重标,因为整个分数分布会漂。

2. 规则命中:能走规则就别走模型

标准问答库这层经常被轻视。运费多少、退货政策、发货时效这类一问一答的固定内容,做成精确匹配加同义词规则,命中直接模板直出——零 token、零幻觉、零延迟。

我的项目里大约三成消息被这层吃掉,连便宜模型都不用调。凡是能用字符串匹配解决的问题,不要浪费一次模型调用——写路由要有这种洁癖。

3. 问题类型:金额和情绪是硬规则,不是分数

分类器不需要大:关键词加正则打底,再叠一个百兆级的小分类模型就够。它输出四类:事实型、情绪型、金额型、超纲型。其中金额型和情绪型不走分数,走硬规则——金额型一律不让便宜模型做最终发言,情绪型一律转人工,这两条没有商量余地。

为什么这么硬?因为这两类错误的代价不对称:事实型答错顶多再问一遍,金额答错和情绪处理砸了,是罚款和客诉。让概率系统去碰不对称风险,是设计上的偷懒。

4. 追问次数:用户比你先知道模型答砸了

会话状态里记一个数:同一意图连续追问几轮了。用户问"多久发货",答了,用户换个说法又问一遍——第一轮多半没答到点上。这条信号完全免费,而且极准,是所有信号里性价比最高的一条。

经验阈值是 2 轮:连续追问到第二轮,无视其他分数,强制升级。上线头一个月,这条规则抓出来的问题回复,比打分器抓的还多。

5. 阈值不是拍脑袋,是错例喂出来的

四类信号的起点和调法收在一张表里:

信号起点阈值调法
检索得分0.82 放行,0.65 以下兜底每周 50 条错例回看,±0.03 微调;知识库大变更后重标
规则命中命中即直出每周从升级日志里捞高频问题,补成新规则
问题类型金额、情绪硬拦截误报多就收紧关键词,漏报就扩样本重训分类器
追问次数连续 2 轮结合会话长度观察,放量期可临时收紧到 1 轮

调阈值的正经方法是回归集:从历史会话里选 300 到 500 条真实消息,人工标注正确答案,做成固定测试集。每次动阈值、换提示词、改检索策略,先在回归集上跑一遍,画出"升级率—错误率"两条曲线,然后选你赔得起的那个点。

阈值本质上是在"多花一份旗舰钱"和"多担一份错答风险"之间定价。这个定价取决于你的业务:卖 9 块 9 邮费贴纸的和卖大家电的,赔率完全不同,阈值就该不同。别人的数字只能参考量级,不能照抄。

四、升级路径:这三种情况别让便宜模型上桌

1. 金额敏感:报价退款,要么旗舰,要么过事实卡

报价、退款、优惠、差价、发票——凡带金额语义的消息,两条路选一条:要么直接升级旗舰并且过事实卡校验;要么便宜模型先答,答案必须逐字通过事实卡比对才放行。我的做法更保守:回复文本里只要出现价格数字,无条件强制过事实卡,不看置信分。分数再高也例外——分数度量的是"像不像对的",事实卡度量的是"是不是对的"。

2. 情绪识别:转人工,别恋战

用户带情绪的时候,AI 回得再标准都是火上浇油——他要的不是答案,是被当回事。分类器命中情绪信号(投诉、曝光、脏话、连串感叹号),动作只有一个:弹窗转人工,AI 对外只发一句"这边帮您转接同事,请稍等"。

这一层省下的不是 token,是客诉。别指望升级到旗舰能救情绪问题,模型再聪明也不会哄人——哄人是人的活。

3. 连续两轮答不上:强制升级

这条兜底抓的是所有信号都看走眼的情况:检索分虚高、分类没识别出来、打分器给了及格分,但用户就是没被答明白。会话状态里的追问计数是最后一道网,第二轮追问触发升级时,旗舰收到的输入里会多一句标注:“前一轮回复未解决用户问题,请重新作答。”

五、防幻觉锁:便宜模型最容易编的是数字

1. 编数字的三种典型姿势

盲测和上线后回捞的错例里,编数字的花样基本就三种:

  • 拿旧价格答新问题。促销改价了,知识库里的旧条目还在,模型按旧条目答,答得理直气壮;
  • 凑整和四舍五入。89 块的东西答成"90 块左右",听着无害,客户拿着截图来对账就是事故;
  • 无中生有。知识库里没有的规格、不存在的赠品,模型自己补一个,补得严丝合缝。

旗舰模型也编,但便宜档编得更频繁、更自信——盲测里所有"报错价"的案例全部出自便宜档。这就是为什么防幻觉锁不能只靠"换个聪明的模型"。

2. 逐字比对怎么落

做法是把知识库里所有报价类内容预先拆成结构化条目,每条长这样:

{"商品":"保温杯 500ml","字段":"到手价","值":"89","生效期":"2026-09-01 起"}

回复生成之后,先从文本里抽出所有数字,再和条目库逐字核对:数字必须与某条有效期内的事实条目完全一致。比对不通过:拦截,把差异信息附上让模型重答一次;重答还不过:转人工,并把这个 case 记进当天的错例清单。

这把锁上线后平均每天拦下十几条问题回复。按第七节那笔罚款的账算,它一天就能回本。原理一点不高深——就是字符串比对——但它把"模型可能的胡说"变成了"系统确定的拦截"。

六、成本账:路由前后的月账单对比

1. 示例口径和三笔费用

沿用第一节的口径:月 15 万条消息,旗舰输入 4 元/输出 16 元每百万 token,便宜档 0.16/0.64。打分器按轻量模型算,每条输入 800 tokens(读便宜模型的答案加检索片段)、输出 50 tokens,只覆盖过了规则层的七成流量。上线后跑出来的分布:三成规则直出,六成三便宜模型直答,7% 升级旗舰。

2. 前后对比表

项目全走旗舰置信度路由
月消息量15 万条15 万条
规则直出(30%)—近零成本
便宜模型直答(63%)—约 59 元
升级旗舰(7%)—约 164 元
打分器(覆盖七成流量)—约 17 元
月合计约 2340 元约 240 元

对比下来省 89.7%,九成上下——这还是保守算法,缓存命中和夜间折扣都没算进去。标题里的"九成",对应的就是这笔账;你的数字取决于高置信占比和单价差,抄之前先套自己的量。

顺带一句:这套账没算人工压力的下降——转人工的量从"全量兜底"降到 7% 上下,客服团队第一个月的体感,比财务的体感还明显。

七、四个我交过学费的坑

1. 阈值定太高:全部升级,等于白干

第一版我把检索阈值定在 0.90,置信分线定 0.85——想着宁稳勿错。结果升级率飙到 41%,旗舰干了四成的活,账单只降到一千出头。阈值定太高,你不是在做路由,是给旗舰模型加了一个昂贵的负载均衡器,还多养了一套打分系统。那次的教训写进了监控:升级率连续三天超 15%,自动告警。

2. 阈值定太低:报错一次价,罚款吃掉一个月的节省

反过来的事故更疼。某次促销改价,知识库新条目延迟半天入库,旧条目还在——检索得分不低(内容确实"相关"),打分器看信号也都健康,便宜模型按旧价答了。客户截图找平台投诉价格不一致,赔付加客户流失算下来两千上下。

当天路由省了多少钱?七十块。一笔事故,把一个月省的 token 钱全部还了回去。那之后我加了规矩:价格类输出永不参与概率游戏,事实卡比对是无条件闸门,和阈值、和置信分统统无关。第五节那把锁,就是这笔罚款买来的。

3. 流式输出:先判再答,别边想边说

为了体验接了流式输出,结果第一个版本闹了笑话:便宜模型边生成边往外推,打分器判完发现问题,前半个答案用户已经看见了——再撤回补救,比不流式还难看。

改法是先判再答:便宜模型整段生成进缓冲区,打分通过才开始往用户侧推流;不通过就整段作废,升级旗舰重答。用户侧多等一两秒,换来的是永远不会看到"半截答案被收回"。嫌慢可以分级:普通事实型走缓冲判,报价类无条件走缓冲判,纯规则直出的没有这个烦恼——模板本来就不是模型生成的。

4. 提示词一换版本,阈值全部重调

有一次给系统提示加了话术风格要求,就改了几行字。三天后看监控:升级率从 7% 掉到 3%。不是路由突然变准了,是输出风格变了,打分器的"答案完整性"信号整体虚高——分数松了,阈值没动。

从那以后,提示词、检索策略、模型版本,任何一项变更都必须在回归集上重跑、重标阈值,这一步写进了发布清单,和"测试不过不上线"同级。路由系统的阈值不是配置,是和当前模型行为耦合的标定值——这么理解,就不会再犯这个错。

八、常见问题

Q:我一天就几百条消息,值得搭这套吗? A:先算账。按示例单价,几百条一天的量,全旗舰月账单也就几十到两百块,路由省下的钱大概率抵不过你搭建和维护花的时间。这个量级我建议只做两件事:默认用便宜档,配上金额拦截和情绪转人工两条硬规则。等月消息过三五万、账单开始"有感"了,再上完整路由。路由是给量准备的架构,小流量先把红线配上就够了。

Q:打分器本身要用大模型吗? A:不要。打分器的输入大多是模型外的结构化信号——检索得分、规则命中、问题类型、追问轮次,这些不需要"理解",只需要聚合;真正要判断答案质量的那一小部分,轻量模型足够。用旗舰给便宜模型的答案打分,等于把省下的钱又送回去一半。我的打分器是几百行规则聚合加一个小模型,月成本不到二十块。

Q:怎么灰度上线?会不会一上来就翻车? A:影子模式跑两周:路由照常打分,但只记日志不生效,所有消息仍走旗舰。拿这两周的日志对比"路由会怎么派单"和"旗舰实际答得如何",就能估出升级率和错放率。然后按 10%、50%、100% 三档放量,每档至少观察三天。影子期的日志还白送你一份回归集原料。

Q:升级率多少算健康? A:我的项目长期在 7% 上下。经验区间是 5% 到 10%:高于 15%,说明知识库或便宜档的选型有问题,路由在替你掩盖真正该修的事;低于 2% 先别高兴,抽二十条直答回复人工看看,大概率是阈值松了。健康不健康不看绝对数,看错例回捞时脸上挂不挂得住。

Q:阈值有没有通用推荐值,能不能直接抄? A:有起点,没有终点。0.82、0.75、两轮追问,是我这套检索器和打分逻辑下的起点,搬到你的系统之前必须在回归集上重标。阈值是各家自己赔出来的数字,量级可以参考,数值不能照抄——你的客单价、客诉成本、知识库质量都和我不一样。

Q:会不会被某一家模型绑死? A:架构上不该。路由层只认"便宜档、旗舰档"两个抽象档位和一组信号,具体是哪家由适配器决定;换档位,影响的是单价表和回归集要重跑,路由逻辑一行不用动。我的做法是模型调用收在两个适配器后面,供应商怎么换,上面的信号层和打分器都感知不到。

写在最后

回头看,这套系统没有用到任何高深的技术:检索打分、规则匹配、状态计数、字符串比对,全是十几年的老手艺。真正值钱的是那个假设上的转变——别把"用哪个模型"当成一个全局开关,把它变成每条消息上的实时决策。

旗舰模型的智力应该花在它该花的地方。大多数日常问答,便宜档绰绰有余;剩下那些没把握的,靠信号识别出来再升级,一点也不晚。你缺的不是更贵的模型,是"知道这条消息有没有把握"的能力——而这件事,恰好是工程能解决的。

账就摆在第六节:一套日均四五千条消息的客服,一年省下的模型钱两万往上。要是你也在做类似的路由,欢迎评论区聊聊你的升级率和踩过的坑——尤其是阈值标定这块,各家有各家的赔法。