M1.05.1mid-task insertion设计研究

用户会在任务中途插入新请求

别名: 任务中途插话 · 插进一个新请求 · nested request

概念解释

叫车已经问到上车点,用户突然问「外面下雨吗」。这不是跑题事故,是任务型对话的常态:主任务还敞着,中间插进一个新请求。中途插入(mid-task insertion)把这类话步当成合法的嵌套,而不是当成对当前槽的回答来硬解析。插入发生在轮与轮之间、当前问题还没被回答的时候;它要被识别成新目标,而不是「上车点 = 下雨」。

机制

槽填充默认下一句是当前空槽的填充物。这句话的先验很强,所以「下雨吗」会被塞进地点槽,或被当成无法识别而重问上车点。人插入的原因通常不在对话里:往窗外看了一眼、想起另一件马上要用的信息、被车上的人打断。插入是混合主动权——用户把提问权抢回来,系统若死守当前议程,等于否认这次抢权。识别插入需要同时看两件事:当前槽的期望类型,以及这句话作为独立意图是否更能解释。两者冲突时,独立意图应胜出,当前任务被挂起而不是被改写。把插入当成噪声丢掉,用户会提高音量把新请求再说一遍,主任务同样被耽误。

怎么研究

Wizard-of-Oz 在槽填充的固定拍上插入探针:上车点、车型、确认前各插一次无关但合理的请求(天气、时间、发一条短信)。自变量:插入与当前槽的语义距离、是否带明显的话语标记(「先问一下」「对了」)。因变量:被当成槽填充的比例、被当成新意图并挂起主任务的比例、用户重复插入的次数。

真实日志里,把「当前系统在问槽 A、用户话轮被标成意图 B」的回合抽出来,人工区分插入、修正、和真正的槽回答。不要把所有意图切换都算插入——有人是在改当前任务,不是嵌一套新的。

边界

一句话里同时含当前槽和新请求(「去机场,顺便外面下雨吗」)是复合指令,不是中途插入;插入发生在已经有一个未闭合任务、新请求单独成轮的时候。插入若其实是对当前问题的间接回答(问「几点到」时说「我会议三点结束」),应按推理填槽,不要挂起。高后果的确认拍上(「要付款吗」),把任何题外话都当插入会让确认悬空,这时应先钉死确认再处理插入,或明确说付款被挂起。无屏且插入的新技能根本不存在,应承认做不到并回到原问题,而不是假装插入成功。

怎么落地

  • 在每个待填槽上维护一份「不像在填这个槽」的检测:独立意图置信高于槽填充时,走插入,不写进当前槽。
  • 接受插入时用一句话同时做两件事:接住新请求,并标明主任务还在(「先看天气。车还没叫。」),避免听起来像已经改去做别的。
  • 不要把插入当成识别失败去重问原槽;重问会把新请求挤掉。
  • 验证:在叫车流程的三个固定拍各插一句天气。若任何一拍把「下雨吗」写入上车点,或忽略后只重复原问题,插入没有被当成嵌套。

延伸

  • 同组M1.05.2 完成插入后需回到原任务 · M1.05.3 嵌套深度需要上限 · M1.05.4 切换与修正是两种不同的意图 · M1.05.5 挂起的任务需要保存完整的中间状态 · M1.05.6 用户放弃任务需要有明确出口
  • 相邻M2.13 多意图与复合指令 · M3.09 打断与插话 · M2.07 对话流程与状态设计
  • 站内检索mid-task insertion · mixed initiative · nested request

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/M1.05.1