如何在Watson bot中捕获触发转人工的特定意图前的用户声明意图
IBM Watson Assistant 留存转人工/结束对话前置意图实现方案
我自己在金融行业的Watson bot项目里落地过完全一样的需求,不需要做复杂的后端改造,直接在Watson Assistant技能配置里就能实现全量逻辑:
步骤1:初始化专用上下文存储变量
先在你对话技能的「欢迎」根节点里初始化三个全局上下文变量:
last_valid_intent:默认值设为null,用来存储除转人工、结束对话外的所有用户有效意图/原始输入pre_transfer_topic:默认值设为null,专门存储触发转人工前的最后用户咨询内容pre_end_topic:默认值设为null,专门存储触发结束对话前的最后用户咨询内容
步骤2:配置全量意图更新规则
给所有非触发类业务意图节点(也就是查询余额、挂失卡片、理财咨询这类普通业务节点,不含转人工、结束对话)添加节点响应后的上下文更新动作,每次用户命中这类节点就更新最新的有效意图:
{ "last_valid_intent": "<? intent.name ?>", "last_intent_confidence": <? intent.confidence ?> }
如果用户输入没有命中任何预设意图,你可以直接把last_valid_intent赋值为<? input.text ?>留存用户原始输入,避免意图识别不准导致信息丢失
步骤3:配置触发意图的留存逻辑
3.1 转人工意图触发逻辑
当用户命中转人工的特定意图时,先在节点的前置处理逻辑里把pre_transfer_topic赋值为当前last_valid_intent的值,再执行转人工的跳转/接口调用动作。这个值会随上下文同步到你的坐席系统,客服打开对话面板直接读取就能拿到用户之前的咨询内容,不需要用户重复描述问题。
如果用户进入对话第一句就直接发起转人工,last_valid_intent为空的情况下,可以直接给pre_transfer_topic赋值为「无前置咨询,用户直接申请转人工」。
3.2 结束对话意图触发逻辑
当用户命中结束对话的特定意图时,同样先把pre_end_topic赋值为当前last_valid_intent的值,再执行结束会话动作。这个变量可以和对话日志一起存储到后台,用来统计用户结束会话前最后咨询的业务分布,辅助优化意图覆盖度和服务流程。
内容的提问来源于stack exchange,提问作者Jonathan Halbinger
相关产品推荐
相关产品推荐

