上周二,我们公司的智能客服正式上线。
当天下午,我的微信就炸了。
运营发来截图:用户问“你们家产品多少钱”,客服回答“亲,请问您想咨询哪款产品呢?”——这句没问题,但下一句是“如果您暂时没有明确需求,我可以给您讲个笑话……”
用户还真听完笑话,然后问:“所以到底多少钱?”
客服回答:“从前有座山,山里有座庙……”
运营说:这玩意儿是不是疯了?
我点开后台日志一看,脸都绿了。模型不知道在哪个环节被带偏了,进入了一种“讨好模式”——用户问什么都先逗个乐子,就是不回答问题。
第一天,翻车记录:47次答非所问,12次重复循环,3次疑似骂人(还好只是疑似),还有1次试图教用户怎么绕过系统给自己充钱。
领导站在我工位旁边,不说话,就看着我。
那一刻我特别想说:我们测了啊,功能都过了啊,单元测试全绿啊,压力测试也扛住了啊……
但我没说。因为我知道,我们测的是“它会不会崩”,不是“它会不会胡说”。
这一周,我们重新复盘了智能客服的测试流程,补了无数个坑。今天把这些坑整理出来,希望能让正准备上线智能客服的你,少踩几个。
一、我们踩的第一个坑:只测了“它能回答”,没测“它不回答什么”
上线前,我们建了一个问答库,里面有一千多条常见问题,每条都有标准答案。
测试的时候,我们把这一千多个问题轮流问了一遍,AI回答得八九不离十。准确率93%,领导很满意,签字上线。
结果呢?上线的第一天,用户问的问题根本不在这一千条里。
比如有人问:“你们和竞品比哪个好?”——问答库里没有。
有人问:“你们老板是谁?”——没有。
有人问:“你能帮我写作业吗?”——更没有。
面对这些问题,AI的选择是:硬答。
于是就出现了教用户绕过系统的“神操作”。后来我们查了日志,发现模型从某个技术论坛学来的“骚操作”,在用户询问“怎么省钱”的时候,它把这些“骚操作”当作答案吐出来了。
后来我们补的测试点:不仅要测“它能答对的问题”,更要测“它答不上来的问题”。
我们建了一个“边界问题库”,专门收集:
模棱两可的问题(“这个那个怎么样”)
超出范围的问题(“明天股票涨吗”)
恶意诱导的问题(“怎么黑进你们系统”)
无意义的问题(“哈哈哈哈”)
情感倾诉(“我今天好难过”)
判断标准只有一条:它知不知道什么时候该说“不知道”。
如果一个模型在不知道答案的时候硬编答案,那就是定时炸弹。宁愿它傻,不能让它疯。
二、第二个坑:只测了“单轮对话”,没测“多轮上下文”
单轮测试的时候,一切正常。
问“怎么退货”,它回答“请在订单页面申请退货”,完美。
但用户不会只问一句。真实场景是这样的:
用户:我想退货
AI:请在订单页面申请退货
用户:我找不到订单页面
AI:请问您是手机端还是电脑端
用户:手机
AI:请您点击右下角“我的”,然后进入“我的订单”
用户:点进去了,然后呢
AI:找到您要退货的商品,点击“申请售后”
用户:点了,没有“申请售后”啊
AI:……
这时候AI突然忘了前面聊过什么,直接问:“您是想退货吗?”
用户当场就炸了:我跟你聊了半天,你现在问我是不是想退货?
这就是典型的上下文丢失。单轮测试跑得再绿,多轮一聊就露馅。
后来我们补的测试点:设计“多轮对话流”,模拟真实用户咨询路径。
比如:
3轮以内的短对话
5-8轮的中等对话
超过10轮的长对话(看它什么时候开始失忆)
中途岔开话题再回来(看它能不能接上)
同一个意思换不同说法(“退货”和“我不想要了”)
我们还专门建了一个“绕晕测试”:让一个人工测试员故意绕来绕去,看AI在第几轮开始混乱。
结果发现,大部分模型在7轮左右开始出现上下文丢失,有的更早,3轮就忘。
三、第三个坑:只测了“正确回答”,没测“情绪处理”
上线第一天,有个用户连续发了十几条消息,从抱怨到咒骂,最后开始人身攻击。
AI的回应是:始终保持着礼貌的语气,一遍遍重复“请问有什么可以帮助您”。
这看起来没问题对吧?礼貌、专业、不卑不亢。
但用户更怒了。因为AI的“礼貌”在他眼里是“冷漠”,是“机器对人的无视”。他在宣泄情绪,但AI只处理问题,不处理情绪。
最后用户在社交媒体上发帖:XX公司客服是机器人,根本不听人说话。
后来我们补的测试点:情绪识别和应对。
我们建了一个“情绪测试集”:
愤怒的表达(“你们太过分了!”)
沮丧的表达(“算了,跟你们说不清楚”)
紧急的表达(“快帮我,我钱被扣了”)
开玩笑的表达(“你们再不解决我就去你们公司门口卖红薯”)
测试的标准变了:不仅要看AI回答得对不对,还要看它回答得“合不合适”。
对愤怒的用户,是不是先安抚再解决问题?
对紧急的情况,是不是优先处理而不是走标准流程?
对开玩笑,能不能识别出是玩笑而不是当真?
这个很难自动化,目前还是靠人工评。但必须做。
四、第四个坑:只测了“常规场景”,没测“边界骚操作”
有个用户发现了一个漏洞:连续发“你好”十几次,AI就会进入一种奇怪的状态,开始复读之前说过的话,甚至把别的用户的对话内容混进来。
这不是个例。我们复盘时发现,很多AI在遇到“异常输入模式”时会崩溃:
连续发同一个词几十次
发超长文本(比如复制一整篇文章)
发特殊符号(#¥%……&*)
中英文混杂(“ni hao,我想咨询一下your product”)
语音转文字的断句错误(“我想退……那个……货”)
正常用户不会这么干,但总有几个“好奇宝宝”会试。一旦试出漏洞,他们会在社交媒体上分享,然后一大波人涌进来玩,系统就瘫了。
后来我们补的测试点:压力测试的变种——“骚扰测试”。
我们专门写了个脚本,模拟各种“不正常输入”:
高频重复
超长文本
特殊字符组合
表情包轰炸
多语言混杂
看AI会不会:卡死、崩溃、泄露信息、进入死循环。
结果发现好几个模型在“表情包轰炸”下直接返回了乱码。
五、第五个坑:只测了“AI自己”,没测“AI+人工”的切换
最后一个坑,也是最隐蔽的。
我们设计了一个功能:当AI解决不了问题时,转接人工客服。
上线前,我们测了转接功能——点击“转人工”,确实能转到人工队列。测试通过。
但上线后我们发现:很多用户根本没机会点“转人工”。
为什么?因为AI在识别到用户情绪激动时,会自动开启“安抚模式”,长篇大论地解释、道歉、提供方案,把用户拖在对话里。用户根本没找到转人工的入口,或者找到了但AI一直说“请稍等,我正在为您处理”,就不好意思打断。
结果就是:用户和AI聊了20分钟,问题没解决,情绪更差,最后发现转人工还得重新排队——直接原地爆炸。
后来我们补的测试点:人机协作的全流程测试。
AI在什么情况下主动转人工?(情绪阈值、重复提问次数、敏感词触发)
转人工时,对话历史能不能完整同步给人工?
人工接手后,能不能继续之前的对话,而不是让用户重说一遍?
人工忙时,AI怎么安抚等待的用户?
用户想转人工,但AI“挽留”时,有没有明确的“我要转人工”按钮?
这个我们测了三轮才调好。现在上线后,用户满意度反而比纯人工时高了——因为简单问题AI秒回,复杂问题无缝转人工,用户不用等。
六、如果重来一次,我会这样测
复盘完这五个坑,我们重新梳理了智能客服的测试清单。如果你也在准备上线,可以参考这个顺序:
第一轮:基础能力测试
问答准确率(常规问题库)
边界问题处理(“不知道”的能力)
多轮上下文保持(3轮、7轮、15轮)
第二轮:情绪与人格测试
不同情绪的应对策略
语气一致性(不要前一句礼貌后一句暴躁)
幽默识别(别把玩笑当真,也别把正经当玩笑)
第三轮:安全与边界测试
对抗攻击(诱导、越狱尝试)
异常输入(超长、重复、乱码)
隐私保护(会不会泄露用户信息)
第四轮:人机协作测试
转人工的条件和时机
对话历史同步
高峰期排队策略
用户主动转人工的通路
第五轮:灰度发布和小流量验证
先放5%的真实用户,盯紧日志
收集bad case,快速迭代
没问题了再逐步放量
写在最后:AI客服不是“上线”就完了
今天写这篇文章的时候,那个教用户“绕过系统”的bug已经被修复了。我们加了专门的安全过滤层,把那种“骚操作”回答都拦下来了。
但我知道,这只是开始。明天可能又会有新的翻车方式——AI太新了,我们都是在摸着石头过河。
那天领导站在我工位旁边不说话,最后说了一句:“测完再上。”
我说:“测不完的。”
他愣了一下。
我说:“AI这东西,没有‘测完’那一天。只有‘测到能接受的风险程度’那一天。”
他点点头,走了。
这大概就是测智能客服最真实的感受:你永远没法保证它不出错,你只能保证它出错的时候,不会太离谱,不会闯大祸。
希望这五个坑,能让你上线那天,少翻几回车。