部分成功需要逐项汇报
别名: 部分成功 · mixed outcome · 逐项状态
概念解释
复合指令的结果是一个向量,不是一个「好的」。灯关了、音乐服务挂了、闹钟设上了,只回「好的」会把失败那件藏起来,用户夜里才发现没音乐。只回「做不到」又会把做成的两件说成没做。语音没有一排状态图标,逐项说结果是听得见的逐行状态。这里谈的是已经执行之后怎么报,不是执行前怎么排顺序。
机制
单句应答把向量压成标量,哪一件失败的信息被丢掉。用户无法修失败项,因为不知道修哪一件;也可能误以为全成了,不再检查。听觉工作记忆装不下一次念完的八项状态,所以逐项不是把清单朗读一遍:失败项要先说、要可行动,成功项可以打包(「灯和闹钟好了」)。公共场合还有暴露问题:逐项会把「没付成款」念出来,需要能收短。
「好的」在单意图里够用,因为向量长度是一。复合指令把长度拉长,同一句客套的信息量就不够了。部分成功还要求汇报与执行集合同构:检测出三件却只报两件,第三件的命运仍不可见。
怎么研究
做部分失败情景:三件里中间一件失败,比较一句总评与按项汇报。因变量是用户能否指出失败项、是否去修它、是否误信另外两件也失败了。再变列表长度,看从第几项开始状态复述崩溃。不要用满意度:人可以觉得「答得很干脆」同时以为全成了。
日志里搜复合指令后的立刻追问(「那音乐呢」)。追问率高说明上一句总评没有把向量展开。把系统说「好的」但后端有一件非 200 的会话标出来,就是标量汇报的现场证据。
边界
三件全成功且列表短,「都好了」可以过,前提是用户能从自己的原句对上「都」。八件全念太长,应先报失败,成功用数量:「六件好了,窗帘那边连不上。」整句被当成一个单位拒绝(政策不允许其中一件,于是全都不做)时没有部分成功,要说清是整单取消。公共场合或涉及他人的失败细节可以收成「有一件没办成,要听哪件」,而不是把对象念响。
怎么落地
- 每个意图回一个状态。混合结果禁止压成单一极性。失败先说,附一句可接着说的修理;成功可合并。
- 汇报集合与检测集合对齐:听出三件就报三件的命运,包括「还没做、等你点头」的那件。
- 「好的」「搞定」只留给全成功且不超过三件;超过就改成数量加例外。
- 验证:让中间一项失败。用户听完若不能说出失败的是哪一件,或以为另外两件也没做成,汇报就失败了。把总评改成逐项后再测一次,追问「那 X 呢」应下降。