AI 自动投诉受理
智能电话客服
基于 Skill 状态机架构 · 多轮字段收集 · 二次确认提交
电话说一句「我要投诉」,AI 自动完成信息收集与工单创建,无需人工介入
核心技术特性
区别于传统人工受理,AI 投诉受理 Skill 通过状态机与大模型协同,实现从意图识别到工单落库的全流程自动化。
Skill 状态机架构
对话锁定在 complaint skill 内部,Branch A 负责字段收集与确认,Branch B 负责首轮关键词路由。状态与业务完全解耦,新增业务只需注册新 Skill 模块,无需修改总控文件。
多轮字段收集引擎
支持逐步提供投诉信息:用户可在不同轮次分别说出类型、描述、期望处理方式等,系统通过 _complaint_draft 跨轮次暂存已收集字段,缺哪个问哪个。
二次确认机制
必填字段集齐后进入 PENDING_CONFIRM 状态,向用户朗读完整投诉信息并请求确认,用户明确说「对」「确认」后才调用 confirmed=true 提交,杜绝误操作。
字段随时修改
在 PENDING_CONFIRM 阶段,用户可说「把类型改为商品质量」,LLM 仅传入变更字段,其他字段保持不变,系统重新生成确认话术,修改逻辑对用户完全透明。
防死锁 reject 计数器
锁定期间用户反复输入无关内容,达到 _REJECT_MAX=2 后自动解锁,_clear_skill 清空 draft,重走正常路由,彻底避免对话卡死。
自动工单生成
确认提交后后台自动调用 _create_ticket() 生成带时间戳的工单号,结果通过自然语言播报给用户,整个投诉受理过程无需任何人工节点介入。
完整业务流解析
从用户说出投诉意图到工单落库,AI 自动完成以下全流程,无需任何人工节点介入:
关键词识别 · 进入 Skill
用户说「我要投诉」「投诉你们」「我不满意」等,关键词匹配或 LLM 意图识别触发 Branch B,强制调用 complaint_skill(phone),进入锁定状态。
多轮收集字段
系统从 _complaint_draft 读取当前已收集字段,计算缺失必填项(category / content),按缺失情况追问。用户每次提供一个或多个字段,系统合并更新 draft。
字段集齐 · 等待确认
必填字段全部收集后进入 PENDING_CONFIRM 状态,AI 朗读「投诉类型:XXX;具体描述:XXX,确认提交吗?」,等待用户明确确认。期间用户仍可修改任意字段。
确认提交 · 生成工单
用户说「对」「确认」「提交」,LLM 调用 complaint_skill(confirmed=true),后台生成工单号,返回 DONE,系统解锁,清空 draft 和 history,返回 RAG 模式。
异常分支处理
系统内置多套异常处理机制,覆盖真实通话中的各类边界情况:
首轮信息完整,跳过追问
用户首句即说「我要投诉快递问题,包裹丢失」,LLM 第一次调用就能提取 category + content,draft 直接填满,跳过追问阶段,直接进入 PENDING_CONFIRM,减少对话轮次。
确认阶段修改字段
用户在确认话术后说「等等,类型改为商品质量」,LLM 仅传 category="商品质量",draft 精确覆盖该字段,其余字段保留,重新生成确认话术,无需重新收集全部信息。
主动取消 · 状态完全清空
用户说「算了不投诉了」,LLM 调用 cancel_skill,返回 CANCELLED,_clear_skill 清空 _complaint_draft,_set_wait_state(None) 解锁,状态无残留。
reject 计数耗尽 · 自动退出
连续 2 次(_REJECT_MAX=2)无关输入(「嗯」「什么啊」等),系统强制解锁,清空 draft 和 history,重走 Branch B,对话不卡死,用户可重新发起任意业务。
投诉字段定义
系统共收集 2 个必填字段、2 个选填字段,字段定义写在 skill_complaint.py 内部,无需外部配置。
| 字段名 | 中文名 | 类型 | 枚举/格式 | 说明 |
|---|---|---|---|---|
category |
投诉类型 | 必填 | 快递问题 / 服务态度 / 商品质量 / 其他 | LLM 从用户话语中提取,enum 限定范围,不在枚举内会触发 _validate() 报错并追问 |
content |
具体描述 | 必填 | 自由文本,建议 30 字以内 | 用户对投诉问题的具体描述,LLM 提示词引导用户精简表达,便于工单归档 |
expect |
期望处理方式 | 选填 | 退款 / 道歉 / 整改 / 其他 | 用户期望如何解决,未提及时不追问,确认话术中若有则展示,无则省略 |
need_callback |
是否需要人工回访 | 选填 | true / false,默认 false | 用户明确表达需要人工跟进时传 true,未提及时默认 false,不影响工单提交 |
全功能矩阵
交互能力
口语化意图识别
「想投诉」「你们服务太差了」「我不满意」等多种口语表达均可触发 complaint skill,关键词预检 + LLM 双重保障
乱序字段提取
用户可以在一句话里同时提供类型和描述,LLM 自动拆解并填入 draft 对应字段,无需按顺序回答问题
确认阶段可修改
在 PENDING_CONFIRM 阶段可随时修改任意已填字段,系统精确覆盖单字段,其余字段不受影响,重新生成确认话术
多种取消表达
「算了」「不投诉了」「取消」「没事了」等均可触发 cancel_skill,解锁并清空状态,不留残留数据
系统能力
模块化注册架构
通过 register_skill(SkillModule(...)) 一行注册,字段定义、校验逻辑、确认话术全部写在 skill_complaint.py 内部,不影响其他模块
Tool Masking(工具掩蔽)
锁定期间只暴露 complaint_skill 和 cancel_skill 两个工具,防止 LLM 在投诉流程中误触快递查询或宽带报修等其他业务工具
_clear_skill 状态清理
DONE 或 CANCELLED 时调用 _clear_skill() 清空 _complaint_draft,确保下次发起投诉时 draft 从空白开始,不带上次残留
工单接口预留
_create_ticket() 函数独立封装,替换为真实 CRM / 工单系统只需修改该函数,其余逻辑完全不变
技术架构
AI 投诉受理 Skill 在整体系统中的层级与调用关系:
Branch A(锁定):complaint_skill · cancel_skill | Branch B(正常):complaint_skill
_complaint_draft(跨轮次字段暂存)· _create_ticket() → 工单系统
