M1.05.6explicit task abort设计研究

用户放弃任务需要有明确出口

别名: 对话里的取消 · 放弃要能走出去 · cancel as a dialogue act

概念解释

披萨问到第三种配料,用户说「不要了」。下一句若仍是「还加什么」,放弃没有被当成一次合法的对话行为,人被关在一张自己已经撕掉的单里。明确的任务出口(explicit task abort)要求取消、算了、不做了能结束当前任务——弹出栈、停住追问、给出可听见的收束——而不是把这句话当成又一个没填上的槽。出口要在任何议程拍上都通,不只在最后确认。

机制

任务状态机喜欢待在「还缺槽」里,因为那是它唯一训练过的正向路径。放弃是一条负向边:没有新的槽值,只有「这个目标不再被追求」。若这条边不存在,任何否定都会被回流到最近的问句。用户说放弃时,共同基础上的半成品应被标成已关闭,而不是挂起等恢复——挂起是还想回来,放弃是不要回来。出口还要防止「关了一半」:技能停了,但定时器、购物车、待付款还在后台活着,下一次唤醒又把半成品递回来,等于没出。可听见的收束(「好,这份披萨取消了」)是把关闭写进双方耳朵,避免一边以为结束、一边还在等配料。

怎么研究

收集取消用语在真实日志里的后续:系统是否仍问原槽、是否开启新技能、是否给出收束、后台对象是否还在。自变量:取消出现的议程位置(第一槽、中段、确认前)、用语强度(「停」对「取消订单」)。因变量:追问延续的轮次数、半成品被再次提交的比例、用户重复取消的次数。

Wizard-of-Oz 在每个必填槽上都放一次放弃。若只有确认拍能出去、中段出不去,出口不是全局的。不要把放弃和修正、切换混在一个「否定」桶里计数——三种后续状态完全不同。

边界

「不要蘑菇」是在修一个槽,不是放弃整单;出口若过于灵敏,会把修正误杀成取消。高后果动作在放弃之后可能仍须一句确认(「确定取消转账?」),那是后果匹配,不是把人留在原流程里继续填。放弃一个嵌套任务应只关当前层,父任务还在就应恢复,而不是把整栈清空;用户说「都别做了」才清栈。无障碍用户可能用非标准取消词,出口的触发不能只绑「取消」这一个词。把出口做成必须说唤醒词加「退出技能」的隐藏语法,等于没有出口。

怎么落地

  • 每个任务状态都挂一条放弃边:识别到取消类话语行为,立即停问、关闭该任务对象、说一句收束。
  • 收束后落到空闲,不要立刻用通用「还需要什么」把人拉进另一个任务;空闲可以短,但必须先让取消被听见。
  • 嵌套中的放弃默认只关当前层,并走父任务的恢复线索;只有明确的整栈取消才全清。
  • 验证:在配料中段、在确认前各说一次「不要了」。中段仍被追问配料,或后台仍能把这张披萨提交出去,出口就还没打通。

延伸

  • 同组M1.05.1 用户会在任务中途插入新请求 · M1.05.2 完成插入后需回到原任务 · M1.05.3 嵌套深度需要上限 · M1.05.4 切换与修正是两种不同的意图 · M1.05.5 挂起的任务需要保存完整的中间状态
  • 相邻M2.07 对话流程与状态设计 · M1.12 对话的开始与结束 · M1.06 修复策略
  • 站内检索explicit task abort · cancel dialogue act · task exit

同组卡片

快捷操作

分享

分享当前页面

ios_share

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