AI 微信客服怎么转人工?触发条件、接管状态机与超时兜底
AI 客服上线后的第一周通常风平浪静,第二周开始,运营那边会积累起同一种抱怨:机器人答非所问,还在硬答。这时候工程团队才会意识到,转人工不是 AI 客服的可选增强项,是交付边界——没有兜底链路的 AI 客服,不配上生产。
这篇按工程阶段把转人工链路拆成四段:触发、接管、排队、兜底,每段给设计和产出物。
一、触发条件:四层判断,按成本从低到高
转人工的触发不是单个 if,是四层过滤器,逐层成本升高:
- 显式请求:命中“转人工”“人工客服”“找你们领导”这类意图词,直接触发,无争议。词表放配置里,别写死
- 应答质量信号:模型侧给出低置信标记,或连续两轮命中兜底话术(“我不太明白”连出现两次,第三轮就该转了)
- 情绪信号:同一用户短时间内的消息频率突增、感叹号密度上升、重复发送同一问题——不用上模型,规则就能判
- 业务规则:标记了高价值标签的用户直接走人工优先(标签接口全量覆盖语义记得先核对,别把客户的“VIP”标洗掉)
四层的产出物是一张触发配置表,评审时运营和工程一起过——哪层开多严,是业务决策不是技术决策。
二、接管状态机:四个状态,三条流转规则
会话在“机器人服务”和“人工接待”之间的切换,用一个显式状态机管理,状态存 Redis 带 TTL:
# WTAPI 微信机器人接口平台 | 文档: https://weiti.apifox.cn
# 本文依赖:
# - 收消息: Webhook 回调 AddMsg (去重键=Appid+Data.NewMsgId)
# - 发消息: postText (appId/toWxid/content)
import enum, time
from dataclasses import dataclass
class SessionState(enum.Enum):
BOT = "bot" # 机器人服务中
QUEUED = "queued" # 已进人工队列
HUMAN = "human" # 人工接待中
COOLDOWN = "cooldown" # 人工结束后的静默期
@dataclass
class Session:
wxid: str
state: SessionState
since: float # 当前状态起始时间戳
handoff_reason: str = ""
def transition(sess: Session, target: SessionState, ttl: int) -> None:
# 流转规则三条: QUEUED 超时回 BOT; HUMAN 结束进 COOLDOWN;
# COOLDOWN 到期(或用户再发言)回 BOT —— 防止人工刚说完机器人立刻插话
sess.state = target
sess.since = time.time()
redis.setex(f"sess:{sess.wxid}", ttl, target.value)
三条流转规则里最容易漏的是 COOLDOWN:人工客服刚回复完“不客气”,机器人一秒后弹出满意度调查——用户视角这就是精神分裂。人工结束后的会话要静默几分钟,期间机器人只记录不发言。
三、排队:微信侧没有“排队页”,只能靠消息演
Web 客服能在页面渲染一个排队进度条,微信做不到。用户进了 QUEUED 状态后,他能感知到的只有对话框。所以排队体验要靠三条消息补:
- 进队时立刻回:“已为您转接人工,当前前面还有 N 位”——N 要真实,虚报会在人工接入时穿帮
- 排队超过阈值时插一条安抚:“人工稍忙,您还可以先描述问题,客服接入后可以减少重复沟通”——这句话同时完成了排队期内信息收集
- QUEUED 超时(比如五分钟)未接入,状态机回 BOT 并明确告知:“人工暂时排不上,我先记下您的问题,人工上线后会第一时间回复您”——注意这条消息后进入的是留言模式,不是装作无事发生继续机器人服务
分配策略用最简单版:人工客服池按“当前接待数最少”分配。别上复杂算法,客服就三五个人,轮询够用。
四、超时兜底:机器人不许假装人工
整条链路的合规底线在这一条:留言模式的后续回复,必须表明机器人身份。人工上线后补回复时说“抱歉刚看到”没问题,但如果人工始终没接入、系统用预设话术续命,话术里必须带“我是智能助手”的自标识——让用户误以为在和真人对话,翻车后的客诉等级完全不一样。
降级链的完整形态:QUEUED 超时 → 留言模式(收集问题+自标识)→ 留言入库 → 工单提醒人工 → 人工回复。每一环的产出物入库,第二天要能回答“昨天多少会话转人工、多少没接上、平均等待多久”——这组数字是下个迭代调触发阈值的依据。
五、上线前评审项
- 触发配置表的每一层,运营有没有签字确认?——触发过严,人工被打爆;过松,硬答投诉
- COOLDOWN 时长定了几分钟?谁定的?——这是体验决策,别让开发拍
- 排队超时的时间值和话术,是否和人工侧的真实 SLA 对齐?——说五分钟结果十分钟没人,比不说更糟
- 留言模式的话术里,“智能助手”自标识有没有?——合规底线,一票否决项
- 转人工的统计口径定了吗?——触发数、接入数、超时数三个数字每天出,没有数据就没有下一版
接口路径、回调字段与标签接口语义以 WTAPI 文档为准。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)