M1.05.3nesting-depth cap设计研究

嵌套深度需要上限

别名: 任务栈不能无限深 · 嵌套层数封顶 · dialogue stack depth

概念解释

叫车挂起去问天气,天气没答完又要给妈妈发短信,短信写到一半再问「二加二」。每一层单独看都合理,叠在一起双方都不再能回答「现在在办哪一件」。嵌套深度上限(nesting-depth cap)给任务栈一个硬顶:超过就拒绝再压入,或把最外层收成草稿,而不是来者不拒。上限保护的是可跟踪性,不是扫兴。

机制

每一层嵌套都要在工作记忆里留一份「括号还没闭合」的标记,还要在系统状态里留一份父任务的指针。人大约能稳住一层括号,两层开始丢哪一层在等;系统可以记很多层,但用户跟不上的栈对用户等于随机。深度还会放大恢复成本:从第三层弹回来,要连续给出两个接头,任何一个接头丢了,中间那层就成为幽灵任务——还占着状态,却再也走不到。允许无限压栈的产品通常不是真的在维护栈,而是每次插入都覆盖,深度只在话术里存在。硬顶逼设计者选择:新请求是换掉当前层、拒绝、还是把当前层提交成半成品。没有顶,选择被推迟到用户已经迷路的那一拍。

怎么研究

用 Wizard-of-Oz 强制深度:同一主任务上插入 1、2、3 层互不相关的短任务,每层都完成后再按设计弹回。因变量:用户能否说出当前正在办的那一层、弹回时走错层的次数、完成主任务的比例。自变量包括每层的时长、层与层是否同域(都是查询对查询加控制)。

日志里给每个会话维护一个推断栈深,看完成率和「现在在干什么」类澄清随深度的变化。实验室若允许被试看任务清单,测到的是外部记忆下的深度,不是无屏对话里的深度。

边界

专家在固定工作流里使用的「查一下再回来」可能把两层用成习惯,上限可以略松,但第三层仍应触发确认「要先放下叫车吗」。新层若只是当前任务的子步骤(叫车里问「公司在哪」),那是槽的细化,不应计入嵌套深度。无屏设备上深度成本更高,上限应比有屏更严——屏能显示栈,耳朵不能。把上限做成「系统不支持多任务」会误伤一层合法插入;顶要设在二,而不是设在零。

怎么落地

  • 任务栈写死最大深度(建议 2:一层主任务加一层插入)。第三次插入到来时,先问要放下哪一层,不要默默压入。
  • 拒绝压入时点名已经挂着的任务,让用户做替换而不是猜系统在办哪件。
  • 深度一旦到顶,恢复路径只允许逐层弹出,禁止从第三层直接跳回第一层而把第二层留成幽灵。
  • 验证:主任务未闭合时连续插入两个新技能,再插第三个。第三个若被静默接受、或弹回时跳过了中间层,上限没有在工作。

延伸

  • 同组M1.05.1 用户会在任务中途插入新请求 · M1.05.2 完成插入后需回到原任务 · M1.05.4 切换与修正是两种不同的意图 · M1.05.5 挂起的任务需要保存完整的中间状态 · M1.05.6 用户放弃任务需要有明确出口
  • 相邻M2.07 对话流程与状态设计 · M1.02 无屏交互的记忆负担 · M2.13 多意图与复合指令
  • 站内检索nesting-depth cap · dialogue stack depth · task tracking

同组卡片

快捷操作

分享

分享当前页面

ios_share

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