
一个咨询场景的智能体,用户先问了一句"这款产品支持七天无理由退货吗",智能体开始介绍退货政策。话说到一半,用户改口问"你们在上海有线下门店吗"。智能体却把新问题当成了退货话题的延伸,继续补充退货的注意事项,直到用户连问两遍,才从退货话题里回过神来。
这类问题容易出现在需要智能体处理多轮对话的定制场景中。用户在真实对话里切换话题,往往是自然而然发生的,不会先说一句"我要换个话题"。智能体如果不能及时察觉用户已经改了方向,就会把新问题塞进旧话题的框架里理解,答出来的内容再详细,也还是文不对题。
一种常见的误判是,以为只要把整段对话都喂给模型,模型自然知道用户此刻在问什么。可历史对话越堆越多,新旧信息混在一起,模型反而更容易被前面的内容牵着走。如果历史上下文缺少筛选和相关性管理,旧信息过多时可能干扰当前问题的判断。
另一种误判是,以为用户切换话题时会主动声明。真实的对话里,用户往往是直接问出新问题,一句话就完成了话题的转移,既不会说"换个话题",也不会重复一遍背景。因此不能把显式的"换个话题"作为识别切换的必要条件。
拆开来看,话题切换后答错通常有三类原因。一类原因是意图切换没有被显式检测。系统缺少对话题转移的判断,没有结合当前输入、近期对话和关键实体去识别用户是否已经换了方向,检测的缺位让切换信号直接被忽略了。
另一类原因是旧上下文没有被及时收敛。切换发生后,与当前任务无关的旧信息仍然留在上下文里参与生成,新问题被这些旧信息干扰,模型在生成时容易把新旧话题搅在一起,答出一个两头都不沾的回答。
还有一类原因是新上下文没有被重建。识别出切换之后,系统没有围绕新话题重新锚定意图、重新组织检索,而是继续用旧的检索结果和旧的回答框架去套新问题,方向换了,后面的动作却还是老一套。
针对这些原因,一种实现方式是把话题切换做成一条带检测与重建的响应链路。起始环节是切换检测,结合当前输入、近期对话、关键实体和当前任务状态,判断用户是在延续原话题、细化原问题,还是开启新话题,把切换信号显式地捕捉下来。
紧接着是旧上下文收敛。确认话题切换后,系统应降低与当前任务无关的旧上下文参与度,可通过裁剪、摘要、分段或重新选择相关上下文等方式实现,让新问题不再被旧话题的惯性牵着走。
再往后是新上下文重建。围绕新话题重新锚定核心意图,重新组织这一轮该检索什么、该回答什么,用新的意图框架去承接用户的新问题,而不是把新问题硬塞进旧框架。
最后是切换后校验。回答生成之后,回头确认这一轮的内容是否围绕新话题展开,有没有把新旧话题混在一起,发现混答时及时纠正,确保用户换到哪,智能体就跟到哪。
本文基于青山不语AI工作室在部分AI应用定制项目方案中的实践,将这套处理框架概括为"意图切换检测与上下文重建"。它要解决的不是让对话记得更久,而是让智能体在用户换了方向的那一刻,能及时跟上,而不是停在原地答上一个话题。
这里有一道边界需要企业自己拿捏。什么程度的语义变化算一次话题切换、切换后旧信息保留多少、哪些场景需要向用户确认切换意图,取决于企业自身的业务特点和对话规范,服务方提供的是检测框架和重建机制,最终的切换判定口径要由企业内部的业务负责人确认。
从实际使用来看,企业评估AI应用定制服务时,不妨重点观察一件事:对方交付的智能体,在用户中途换了问题之后能不能及时跟上,还是会一直停在旧话题里。我的判断是,多轮对话用得越深,切换的检测和上下文的收敛就越决定体验。一个能察觉用户换了方向、并围绕新话题重新组织回答的智能体,比一个记得很多却跟不上节奏的智能体,更能让用户觉得它真的听懂了。













