UPDATE cs_sessions
SET agent_id = 27, status = 'human'
WHERE id = 1024 AND status = 'bot';
SELECT COUNT(*) FROM cs_messages WHERE session_id = 1024;

用户和机器人聊了 12 条,点转人工之后客服那边是一片空白,用户这边历史还在,双方说的完全对不上。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:转人工时新建了一个会话号,客服端按新号拉历史,自然拉不到。前端还拿着旧号,两边从这一刻开始就是两条会话。

「转人工会话丢失」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。同一份配置存在多处的,先确认改的是被加载的那一份。

新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。

处理上按这个顺序:转人工只改接待人和状态,沿用原来的会话号;客服端拉历史用同一个号,别按客服反查;上线前用一条完整链路走一遍,确认两边看到的消息条数一致。

确认没问题再收工,转人工后客服端能看到前面 12 条,用户发的下一句落在同一条会话里。

作者 9823189