从模型驱动,到策略驱动:客服系统的必经之路
当客服系统开始出问题,大家第一反应总是“模型不够好”
如果你参与过真实的客服系统项目,你一定对下面这个场景不陌生。
模型上线后,陆陆续续出现一些问题:
- 话说得太满
- 不该答的问题也答了
- 某些边界情况回答很危险
- 用户开始“钻空子”
于是会议室里自然会出现这些讨论:
- “模型理解还是不够准。”
- “要不要再微调一版?”
- “是不是参数还能再调一下?”
在项目早期,这种反应是正常的。
但如果一个客服系统已经跑了一段时间,问题仍然被不断归因到模型,那通常说明一件事:
系统走错方向了。
因为客服系统真正的挑战,从来不是“能不能回答”,而是:
该不该答、怎么兜底、错了怎么办。
一个必须先接受的现实:客服系统的目标,不是“答得多”,而是“少出事”
很多团队在设计客服系统时,潜意识里有一个非常危险的目标:
“让模型尽量把问题都解决掉,减少人工。”
这个目标在 PPT 上很好看,
但在真实世界里,几乎一定会翻车。
因为客服系统面对的是:
- 钱
- 权益
- 责任
- 合规
- 情绪
这些东西,任何一个出问题,都不是“模型再聪明一点”能补救的。
成熟客服系统的真实目标其实是:
在尽量自动化的前提下,把风险压到最低。
这意味着:
宁可少自动处理一些问题,也不能让模型“自由发挥”。
模型驱动客服的本质问题:你让概率系统承担了确定性责任
我们先把“模型驱动客服”这个概念拆清楚。
所谓模型驱动,通常意味着:
- 用户问题 → 模型理解
- 模型判断 → 模型生成答案
- 模型输出 → 直接给用户
也就是说,模型既负责“理解”,又负责“决定”,还负责“表达”。
这在 demo 阶段非常爽,但在真实业务里有一个致命问题:
模型是概率系统,但客服决策是确定性责任。
模型可以:
- 概率性地理解语义
- 概率性地生成答案
但它不能:
- 为错误退款负责
- 为违规承诺负责
- 为用户损失负责
只要你让模型直接决定结果,
你就已经把系统的责任交给了一个不具备责任能力的组件。
客服系统真正的分水岭:开始把“判断权”从模型手里收回来
所有成熟客服系统,都会在某个阶段做同一件事:
把“判断权”从模型手里收回来。
这并不是“模型不行了”,
而是系统开始意识到:
- 模型适合做“理解和表达”
- 系统必须做“判断和约束”
于是系统开始出现“策略层”。
什么是策略驱动?不是规则堆砌,而是责任分层
很多人一听“策略驱动”,就会联想到:
- 一堆 if-else
- 一堆黑名单
- 一堆规则代码
但真正成熟的策略驱动,并不是简单的规则堆,而是:
明确每一个决策点,谁负责,失败了怎么办。
在策略驱动的客服系统里,通常会出现这样的结构:
- 模型负责理解问题和生成候选回复
- 策略层负责判断:
- 能不能答
- 要不要转人工
- 是否触发风险
- 是否需要固定话术
模型不再是“最终裁决者”,
而是“建议提供者”。

模型驱动 vs 策略驱动 架构对比图
一个非常关键的转变:从“模型兜底”到“策略兜底”
模型驱动系统里,最常见的一种设计是:
“如果前面的规则都没命中,那就交给模型。”
这看起来很合理,
但在客服系统里,几乎是灾难级设计。
因为这意味着:
- 最模糊
- 最复杂
- 最危险
的问题,最后都交给了模型。
而策略驱动系统,正好是反过来的:
模型只在“低风险、可控范围内”发挥;
高风险场景,系统要么拒绝,要么转人工。
这不是削弱模型,而是在保护系统。
为什么策略驱动反而能“释放”模型能力
这是一个很多人一开始想不通,但后面都会认同的点。
当你让模型:
- 不用背合规锅
- 不用背退款责任
- 不用背异常场景兜底
模型反而可以:
- 在解释、安抚、引导上发挥得更好
- 输出更自然
- 表达更一致
你会发现:
模型一旦不需要承担“后果”,
它的表现反而更稳定。
客服系统里的典型策略职责划分
在真实工程里,成熟的客服系统通常会把责任拆成这样:
- 输入是否合法 → 策略层
- 是否允许自动回复 → 策略层
- 是否涉及资金 / 权限 → 策略层
- 是否需要人工 → 策略层
- 如何用自然语言表达 → 模型
模型只负责“怎么说”,
系统负责“能不能说”。

客服系统责任分工图(策略层 vs 模型层)
为什么“再微调一版”往往是客服系统的假解法
当客服系统已经进入策略驱动阶段,
很多问题会自动暴露一个事实:
- 问题不是模型不准
- 而是策略没兜住
如果你这时候选择:
- 再微调模型
- 再喂规则
- 再调参数
你其实是在:
用模型去弥补系统设计的空洞。
这会导致:
- 模型越来越复杂
- 行为越来越难解释
- 风险越来越隐蔽
而真正的解决方式,往往是:
- 增加一个明确策略判断
- 或干脆不自动处理这一类问题
一个非常重要的判断信号:你是否开始“限制模型使用场景”
当客服系统真正成熟时,你会发现一个明显变化:
- 模型的调用次数未必增加
- 但每一次调用都更“安心”
因为系统已经明确了:
- 哪些问题可以交给模型
- 哪些问题模型永远碰都不该碰
如果你还在追求:
“让模型尽量多回答一些问题”
那你其实还停留在模型驱动阶段。
一个工程自检问题(非常好用)
你可以问团队一句话:
如果模型在这个场景下答错了,我们是否能接受?
- 如果不能接受 → 不该让模型决定
- 如果可以接受 → 模型才有资格参与
这句话,几乎能瞬间暴露系统设计是否成熟。
一个简化但真实的客服系统演进示意
初期:
用户 → 模型 → 回复
中期:
用户 → 模型 → 策略兜底 → 回复 / 转人工
成熟期:
用户 → 策略判断
→ 可自动处理 → 模型生成
→ 高风险 → 人工 / 固定流程
你会发现:
模型的位置越来越“靠里”,系统越来越“靠外”。
很多客服系统之所以迟迟无法稳定上线,并不是模型能力不足,而是始终停留在“模型驱动”的阶段。用LLaMA-Factory online把模型微调、策略判断、风险评估拆开验证,能更清楚地看见:哪些问题该继续优化模型,哪些问题已经必须交给策略和系统来兜底。
总结:客服系统的终点,不是“更聪明的模型”,而是“更清晰的责任边界”
我用一句话,把这篇文章、也把你整个系列收住:
客服系统真正成熟的那一天,
不是模型无所不能,
而是模型终于只做它该做的事。
从模型驱动,到策略驱动,
不是技术倒退,
而是工程觉醒。
当你走到这一步,你会发现:
- 模型更稳定了
- 风险更可控了
- 团队反而更敢上线了
因为你终于不再指望一个概率模型,
替整个系统承担责任。





