跳至主要内容
「那它呢」到底指谁

「那它呢」到底指谁

学习助手的会话平均 14 轮,用户经常中途切走:「刚才那道题先放着,帮我看看这段英文」,过几轮又问「那它呢」。上下文窗口明明放得下全部历史,线上还是有两类投诉:22% 的回指被绑到了新主题,首轮设的硬约束「用初中水平讲、不要出现公式」在长会话后段遗忘率 31%。

窗口够大,效果反而更差,这是很多人没转过来的弯。上下文管理不是容量问题,是优先级问题:塞进去的东西越多,真正重要的那条越容易被淹没。

本系列第 4/10 篇 · 上一篇:检索对了 78%,答案引用还是错 · 下一篇:任务完成率 68%,可 40% 的初稿被推翻重写

三类信息,三种生命周期

我按两个判定标准切:是否由用户显式声明、是否跨主题仍然成立。两个都满足的,全程保留;只满足后一个的,跨主题继承但要可查看;两个都不满足的,按主题隔离或直接丢弃。

类别 内容 处理
全程保留 硬约束(讲解水平、不要公式)、用户身份与偏好、已完成的不可逆动作 独立槽位,每轮都注入,不被摘要覆盖
按主题隔离 主题实体、指代链、中间产物、未完成的推理 每个主题一份栈,切换时压栈不删除
可丢弃 寒暄、重复确认、已消费的工具原始输出 用完即弃,或压成一句结论

这里最关键的工程含义是:硬约束不能交给「对话摘要」。摘要本身就是一次有损生成,长会话里被摘掉的第一批内容,往往就是第 1 轮那句看似不重要的「不要出现公式」。它必须是结构化字段,绕开摘要,原样注入。候选人如果只答「做上下文压缩/摘要」,通常会漏掉这一点——压缩解决的是放得下,解决不了「哪条不能丢」。

主题栈则是「那它呢」的正解:切到英文时,数学题的指代链压栈,当前栈顶是英文段落;用户说回「刚才那道题」,栈顶切回去,指代链随之恢复。默认按最近的活跃主题解析,而不是按全文里最常出现的名词——后者正是 22% 错误绑定的来源。

猜错以后,纠正要便宜到不值得生气

我不打算把指代消歧做成一个「必须先问清楚」的阻塞环节。14 轮的会话里,每遇一次「它」就弹一次澄清,用户会疯。

产品上的处理是把猜测做成可点选的 chip:答案开头带一句极短的绑定说明,「按上一段英文里的 it 来讲」,其中「上一段英文」是可点的,旁边给另一个候选「刚才那道题」。猜错了,点一下就换,且不重跑当前这步推理——只替换指代对象,已生成的解释按新对象重述,用户不用重新描述需求。

只有两个候选置信度接近、且选错代价高(比如涉及已提交的动作)时,才给轻量澄清「你是指 X 还是 Y」。澄清率本身要当指标看:它超过某个比例,说明不是模型不行,是交互在替算法背锅。

显式载体:把约束从对话里搬到界面上

会话顶部放一张「本次规则」卡片,列出当前生效的硬约束,每条带来源(第 1 轮设定 / 你刚才修改)、可编辑、可关闭、标明作用范围(本次会话 / 长期)。第 1 轮说完「不要公式」,它就应该出现在那里,而不是只存在于历史消息里。

优先级规则写死:显式 > 隐式,且显式项永远显示最新一次修改。用户把「初中水平」改成「高中水平」时,旧值不留残影;系统从行为里推断出的偏好(比如「他好像喜欢短答案」)只能作为建议,要变成规则必须用户点一下确认。

这张卡片还顺手解决了另一个问题:用户不用回头翻 14 轮去确认「我到底说过什么」。上下文可见,比上下文正确更容易建立信任。

怎么验证,以及看哪个负向指标

A/B 的主要指标按分层看,不看总体:

  • 回指解析正确率:基线 22% 错误,按「主题切换后第 1 轮 / 第 2–3 轮 / 未切换」分组统计。
  • 硬约束遵守率:拆成第 1–5 轮与第 10 轮以后两段,基线后段遗忘 31%。总体平均会把这个退化盖住。
  • chip 切换率与撤销率:用户主动改绑定的比例,它同时也是「解析正确率」的一个行为代理。

样本量按基线算:要检出 22% → 12% 这类 10pt 的改善,在常规显著性要求下每组需要几百条含回指的会话;日均会话量不够时,就别硬做 A/B,改用离线回放集(从真实日志冻结 200 条含切主题的会话)先验证规则,再上小流量看行为指标。

必须一起看的负向指标是平均轮次和澄清频次。澄清弹得多了,正确率会涨,但用户多花两轮才拿到答案,净体验可能是负的。我见过一个版本把指代正确率提了 15 个点,平均轮次从 11 涨到 16,最后回滚了。

追问:怎么向用户解释「它会遗忘」

先把话说对:不是「窗口不够」,也不是「模型记性差」,而是有些信息按设计不该跨主题生效。用户其实能接受这个,接受不了的是毫无征兆地变了。

所以我不解释技术,我给控制权:主题切换时明确提示「已把上一题暂存,随时可以切回」;「本次规则」卡片让硬约束始终可见可改;被丢弃的中间结论在需要时可一键展开。遗忘从一个隐蔽的失败,变成一个可见的、用户能撤销的产品行为。

再补一句诚实的边界:跨会话的长期记忆默认关闭,需要用户主动开启并可见内容。C 端产品里,「它居然记得我上个月说过什么」造成的惊吓,比遗忘更难挽回。

我会怎么看答案

及格:说要做摘要、要保留用户偏好。良好:能分主题、能写清硬约束不进摘要、能设计回指纠正。优秀:给出可判定的分类标准、把显式载体做成可编辑的功能、验证时按会话轮次分层并主动报出负向指标。

最典型的失分是把所有希望寄托在更长的上下文窗口上。窗口是资源,优先级是产品决策;资源涨价不会自动替你做决策。

好的上下文管理,不是记得更多,是让用户永远知道哪几条一定不会被忘。

能把规则说清、把指标分层的人,下一题才敢把「完成率 68%」这个漂亮数字拆开看。

关于本文

由 Lu's Blog 撰写,采用 CC BY-NC 4.0 许可协议。

#AI 产品 #多轮对话 #面试题

评论