
1. 会话存档到底存了什么为什么它是质检系统的地基很多人一上来就问用哪个大模型做质检但真正跑过一轮完整项目的人都知道质检系统的上限不取决于模型有多强而取决于会话存档里到底留下了什么。存档质量决定了质检的天花板模型只是把这个天花板兑现出来的工具。1.1 会话存档的三层数据结构我接触过的会话存档从数据完整度上大致分三个层次你可以对照看看自己手里是哪一层。第一层是纯文本流水。只存了谁在什么时候说了什么话按时间顺序排列。这种存档做基础的关键词质检够用比如查有没有出现违禁词、有没有漏说开场白。但它做不了深度质检因为你不知道客服当时是复制粘贴的、还是手打的也不知道客户发的是文字还是图片。第二层是带元数据的结构化存档。每条消息除了内容还带上了发送方角色、消息类型文本/图片/语音/文件/链接、时间戳、会话ID、客户ID、客服ID。这一层是搭建自动质检系统的最低门槛。为什么因为质检规则里大量逻辑依赖这些字段。比如客服首次响应时间是否超过60秒你需要精确到秒的时间戳和角色标识比如客户发送图片后客服是否在3分钟内回复你需要消息类型字段。第三层是全量上下文存档。除了消息本身还保留了会话的进入渠道、客户标签、历史工单关联、客服的转接记录、会话结束方式客户主动结束/客服结束/超时关闭。这一层能支撑起真正有价值的质检比如从广告渠道进来的客户客服的话术是否匹配了对应的产品线。提示如果你现在只有第一层存档别急着上AI。先把消息类型和角色字段补上否则后面所有质检规则都会变成看起来能跑实际全是误报。1.2 为什么质检必须依赖存档而不是实时监听有人会想我直接在客服聊天的时候实时分析不就行了为什么要先存档再质检这里有个工程上的现实问题。实时监听意味着你要在消息流转的链路上插一个分析节点这个节点一旦变慢或出错直接影响客服和客户的正常沟通。而质检本质上是一个离线批处理任务它对时效性的要求是当天能出报告就行完全没必要卡在实时链路上。存档之后再质检还有三个额外好处。一是可回溯质检结果有争议时能调出原始会话逐条核对二是可重跑规则改了之后可以对历史数据重新跑一遍不用等新会话产生三是可抽样不用全量分析按比例抽检就能达到质量监控的目的成本可控。1.3 存档清洗质检前的必要动作原始存档直接喂给模型效果通常很差。我一般会做几轮清洗。去系统消息像客服已接入会话已结束这类系统提示对质检没有价值反而会干扰模型判断。合并连续消息客户连发三条在吗你好想问个事应该合并成一条客户发言否则模型会误判为客户情绪急躁。标记无效会话只发了一句你好就再没下文的会话直接排除不进入质检池。时间归一化不同渠道的时间戳格式可能不一样统一转成同一时区、同一精度。这几步做完数据量通常会减少20%到40%但质检的准确率能明显提升。清洗不是可选项是必选项。2. 质检规则怎么拆才能让AI真正干活而不是瞎猜自动质检系统最容易翻车的地方不是模型选错了而是规则没拆清楚。你把一整段会话丢给模型说帮我看看有没有问题它大概率会给你一堆模棱两可的评价。真正能落地的做法是把质检拆成一条条可判定、可量化、可复现的规则。2.1 把质检维度拆成三类规则我习惯把质检规则分成三类每类用不同的技术手段处理。第一类确定性规则。这类规则有明确的判定标准不需要AI介入用代码就能跑。比如客服是否在会话开始后60秒内发出第一条消息是否使用了规定的开场白是否出现了违禁词表中的词。这类规则用正则匹配和简单的时间计算就能搞定准确率接近100%而且成本几乎为零。第二类语义判定规则。这类规则需要理解语义但判定标准相对明确。比如客服是否准确识别了客户的问题客服的回复是否偏离了客户的问题客服是否做出了无法兑现的承诺。这类规则适合用AI处理但需要给模型清晰的判定标准和输出格式。第三类综合评估规则。这类规则是对整段会话的整体评价比如服务态度评分问题解决效率评分。这类规则主观性最强AI给出的分数波动也最大通常只作为参考不作为考核依据。2.2 语义判定规则的提示词设计第二类规则是AI质检的核心战场提示词设计直接决定成败。我踩过的坑是一开始把规则写得太笼统模型给出的判断根本没法用。后来我总结出一个结构化的提示词模板每条规则都按这个结构写角色你是一名客服质检专员。 任务判断以下客服回复是否准确回应了客户的问题。 判定标准 - 如果客服回复直接针对客户提出的问题判定为准确 - 如果客服回复部分相关但遗漏了客户问题的关键点判定为部分准确 - 如果客服回复与客户问题无关判定为不准确 输出格式只输出准确、部分准确或不准确三个词之一不要输出其他内容。 客户问题{customer_question} 客服回复{agent_reply}这个模板的关键在于三点角色设定明确、判定标准可操作、输出格式严格约束。尤其是输出格式如果不约束模型会给你写一段分析你还得再写代码去解析纯属给自己找麻烦。2.3 规则优先级与冲突处理多条规则同时跑的时候会出现冲突。比如一条规则判定客服回复准确另一条规则判定客服回复不准确这时候听谁的我的做法是给每条规则设优先级和权重。确定性规则优先级最高语义判定规则次之综合评估规则最低。同一优先级内如果出现冲突以权重高的为准。权重怎么定根据这条规则对业务的实际影响来定。比如是否做出无法兑现的承诺这条规则一旦命中就是严重问题权重给到最高。规则类型优先级典型权重处理方式确定性规则高1.0代码直接判定语义判定规则中0.6-0.9AI判定人工抽检综合评估规则低0.3-0.5仅作参考2.4 规则迭代别指望一次写对我见过太多团队花两周写了一套规则上线之后发现误报率高达40%然后就放弃了。问题不在规则本身在于他们指望一次写对。正确的做法是小步快跑。先上5到10条最核心的规则跑一周人工核对AI的判定结果把误报和漏报的案例拿出来分析调整提示词或判定标准再跑一周。通常迭代三轮之后准确率能稳定在85%以上。这个过程里人工核对是绕不开的。你可以只核对AI判定为有问题的会话以及随机抽取10%判定为没问题的会话。前者用来降低误报后者用来发现漏报。3. 三步搭建从存档到质检报告的完整链路前面两章把地基和规则讲清楚了这一章讲具体怎么搭。我把整个系统拆成三步每一步都有明确的输入、输出和验收标准。3.1 第一步存档接入与预处理管道这一步的目标是把原始会话存档变成干净、结构化、可供分析的数据。具体操作上我会建一条数据处理管道按顺序做这几件事拉取原始存档从存档系统按时间范围拉取会话数据通常按天拉取。格式统一把不同来源的会话统一成同一种JSON结构字段包括会话ID、客户ID、客服ID、消息列表每条含角色、类型、内容、时间戳。清洗去掉系统消息、合并连续消息、排除无效会话。切分把长会话按话题切分成若干片段每个片段作为一个独立的质检单元。为什么要切分因为一段两小时的会话里可能包含多个独立问题整体评估会掩盖局部问题。切分这一步很多人会忽略但它对质检准确率影响很大。我的经验是按客户连续发言之间的时间间隔超过5分钟作为切分点效果比较自然。这一步的验收标准很简单随机抽10条处理后的会话人工看一遍确认没有系统消息残留、没有消息错位、切分点合理。3.2 第二步规则引擎与AI判定的协同这一步是整个系统的核心。我的架构是规则引擎先行AI判定补充。规则引擎负责跑确定性规则速度快、成本低、准确率高。它输出的结果是命中或未命中以及命中的具体规则。AI判定负责跑语义判定规则。这里有个关键设计不是每条会话都送给AI。规则引擎已经判定为有问题的会话直接进入问题池不需要AI再判一遍。只有规则引擎判定为没问题的会话才送给AI做语义判定。这样能省下大量AI调用成本。AI判定的调用方式我建议批量异步而不是逐条同步。把一批会话打包成一个请求让模型一次性处理多条比逐条调用效率高得多。当然批量大小要控制太大容易超时太小浪费。我的经验是每批10到20条比较合适。# 伪代码示意规则引擎与AI判定的协同流程 def quality_check(session): # 第一步跑确定性规则 rule_results run_deterministic_rules(session) if rule_results.has_issue: return build_issue_report(session, rule_results) # 第二步送给AI做语义判定 ai_results run_ai_rules(session) return build_issue_report(session, ai_results)3.3 第三步质检报告生成与人工复核闭环质检跑完不是终点产出可读的报告、形成复核闭环才是系统真正产生价值的地方。报告我一般分三个层次会话级报告每条会话的质检结果包括命中了哪些规则、AI的判定理由、原始对话片段。客服级报告每个客服的质检汇总包括质检会话数、问题会话数、问题类型分布。团队级报告整个团队的质检概览包括整体合格率、高频问题类型、趋势变化。人工复核环节我建议只复核AI判定为有问题但置信度较低的会话以及**随机抽取的5%判定为没问题**的会话。前者用来确认AI是否误报后者用来发现漏报。复核结果反馈回去用来调整规则和提示词。这个闭环跑起来之后系统会越用越准。我自己的项目里第一周准确率大概70%跑了一个月之后稳定在90%左右。4. 实测中那些文档不会告诉你的坑这一章讲的是我在实际项目里踩过的坑以及怎么绕过去。这些东西你在任何官方文档里都找不到但每一个都能让你少走几天弯路。4.1 模型对长会话的中间遗忘这是最隐蔽的坑。当一段会话超过模型上下文窗口的一定比例后模型对中间部分的记忆会明显衰减。表现就是会话开头和结尾的问题它能发现中间的问题它经常漏掉。我的应对办法是切分后再送AI而不是把整段长会话直接丢进去。前面3.1节讲的切分不只是为了质检粒度也是为了规避这个问题。切分之后每个片段控制在模型上下文窗口的30%以内效果最稳。4.2 客服话术的表面合规有些客服很聪明他们知道质检规则大概会查什么于是话术写得表面很合规但实际没解决问题。比如客户问这个功能怎么用客服回您好非常理解您的需求我们会尽快为您处理。这句话表面礼貌、没有违禁词但完全没有回答客户的问题。这种问题确定性规则查不出来语义判定规则如果提示词写得不够细也容易漏掉。我的做法是在提示词里明确加一条判定标准客服回复是否包含对客户问题的实质性回答而非仅表达理解或承诺处理。加了这条之后这类漏报明显减少。4.3 AI判定的过度敏感和上一条相反AI有时候会过度敏感。客户说你们这个功能太差了AI可能判定为客户情绪负面客服未妥善安抚但实际上客服后续已经很好地解决了问题。这种误报的根源是AI只看局部不看整体。解决办法是在提示词里要求AI结合上下文判定而不是只看单条消息。具体做法是把前后各两条消息一起送给AI让它有足够的上下文来判断。4.4 成本控制的几个实操技巧AI质检的成本主要来自模型调用。几个我实测有效的降本技巧规则引擎前置能确定性判定的绝不送AI这一条能省掉60%以上的调用量。批量调用把多条会话打包成一个请求比逐条调用省30%左右。分级模型简单判定用轻量模型复杂判定用重量模型。不是所有规则都需要最强的模型。缓存重复内容客服话术重复率很高相同的话术相同的问题判定结果可以直接复用。4.5 数据安全与权限隔离会话存档里包含客户和客服的对话内容属于敏感数据。质检系统访问这些数据必须做好权限隔离。我的做法是质检系统只读取脱敏后的会话数据客户姓名、电话、地址等个人信息在进入质检管道之前就被替换成占位符。质检报告里也不出现原始个人信息只出现会话ID。这样即使报告泄露也不会造成个人信息泄露。另外质检系统的访问权限要单独控制不能和客服系统共用账号体系。谁能看质检报告、谁能改质检规则都要有明确的权限划分。5. 从能跑到好用系统上线后的持续优化系统跑起来只是开始真正决定它能不能长期产生价值的是上线之后的持续优化。这一章讲几个我实践下来最有效的优化方向。5.1 用复核数据反哺规则人工复核的结果是最宝贵的优化素材。每次复核我都会记录三类信息AI判定结果、人工判定结果、差异原因。积累一段时间后分析差异原因就能找到规则的薄弱点。比如我发现某条规则频繁误报原因是提示词里的判定标准有歧义。改掉之后误报率直接降了一半。又比如我发现某类问题频繁漏报原因是规则里根本没覆盖这个场景那就新增一条规则。这个过程不需要很复杂一张表格就能管起来。关键是坚持记录别复核完就完了。5.2 质检结果的落地应用质检结果如果只是生成报告放在那里没人看那这个系统就是白搭。要让结果真正落地得和实际业务动作挂钩。我见过的有效做法包括把质检合格率纳入客服的月度考核、把高频问题类型反馈给培训部门做针对性培训、把典型问题会话整理成案例库供新客服学习。这些动作让质检结果从一份报告变成了改进的起点。5.3 规则库的版本管理质检规则会不断迭代如果没有版本管理很容易出现改了之后效果变差了但不知道改之前是什么样的情况。我的做法是给规则库做版本管理每次修改都记录改了什么、为什么改、改之前的效果、改之后的效果。这样出问题能快速回滚也能积累经验。规则库的版本管理不需要多复杂的工具一个Git仓库就够了。每条规则一个文件修改走提交记录清晰可追溯。5.4 什么时候该考虑换模型模型不是越新越好也不是越贵越好。我判断是否换模型的标准有三个当前模型在核心规则上的准确率是否持续低于85%、是否有明显更便宜的模型能达到同等准确率、当前模型是否停止维护。如果三个条件都不满足就别折腾。换模型意味着重新调提示词、重新验证效果成本不低。我见过有团队每出一个新模型就换一次结果一年下来规则库改得面目全非效果反而下降了。5.5 一个容易被忽略的指标质检覆盖率很多团队只关注质检准确率忽略了覆盖率。覆盖率指的是实际被质检的会话占总会话的比例。如果覆盖率只有10%那准确率再高也只能发现10%的问题。提升覆盖率的关键是降本。规则引擎前置、批量调用、分级模型这些手段本质上都是在降本让同样的预算能覆盖更多会话。我的目标是覆盖率至少达到50%核心业务线达到100%。这个系统我从零搭到稳定运行前后花了大概六周。前两周在打通存档和清洗数据中间两周在调规则和提示词最后两周在上线优化和建立复核闭环。如果你手里已经有结构化的会话存档时间能压缩到三周左右。真正花时间的从来不是写代码而是把质检规则拆清楚、把提示词调准、把复核闭环跑通。这三件事做扎实了系统自然就好用了。