
一位用户通过企业内部的IT服务智能体咨询VPN连接问题对话进行了五轮智能体已经定位到可能是证书过期正在指导用户重置证书。这时用户突然插入一句顺便问一下我的邮箱容量满了怎么清理。智能体的回答仍然围绕VPN证书展开——证书重置后邮箱客户端需要重新配置连接完全没有识别到用户已经切换到了邮箱清理的话题。用户又追问了两句智能体才慢半拍地转到邮箱话题但之前的VPN上下文还残留在回答里导致回答混入了不相关的VPN配置信息。遇到这类问题常见的判断是模型理解能力不足于是换更大的模型或者调长上下文窗口。但问题往往不在模型能力而在对话状态管理层面系统没有显式检测意图切换旧的意图上下文没有及时隔离新意图的上下文又没有及时建立。也有团队尝试在系统指令里要求模型注意用户可能切换话题但这只是把检测责任交给模型模型在长对话中遇到意图切换时敏感度可能下降——尤其是当旧话题的上下文在最近几轮对话中占据主导位置时模型倾向于延续之前的讨论方向。还有团队干脆限制对话轮数到一定轮数就清空上下文重新开始但这种方式会丢失用户正在进行中的有效对话。问题可以从三个方面拆解。一类是意图检测滞后或缺失。多轮对话中系统通常按轮次处理用户输入接收输入、检索知识库、调用工具、生成回答。意图检测如果只发生在对话开始的初次输入后续轮次默认沿用初始意图用户中途切换话题时系统不会重新检测。即使每轮都做意图检测检测方式如果是基于关键词匹配或简单的分类模型面对用户用不同表述方式引入新话题时也可能漏检。顺便问一下对了还有个事这类过渡表述是意图切换的辅助特征但辅助特征不是必要条件——用户没有用过渡词但直接提出新任务时同样需要识别。切换判定综合多维度信号话题归属是否变化、核心实体是否切换、任务目标是否不同、与当前线程的关联度是否下降、是否出现过渡表达。用户说顺便问一下证书重置后还能用多久时虽然有过渡词但核心实体和任务目标仍在VPN线程内关联度没有下降系统不会误判为切换。另一类是旧上下文未隔离。意图切换发生后旧任务的对话历史、检索结果、工具调用中间状态仍然保留在上下文中。这些旧上下文在新任务的处理中继续参与检索和生成干扰新任务的回答。问题不只是信息冗余——旧上下文中的实体和关系可能和新任务产生错误关联比如VPN证书的重置操作被错误地关联到邮箱清理的回答中。上下文越长旧任务残留的影响越大模型在生成回答时越容易受到干扰。降权保留旧上下文的做法不能从根本上解决问题——降权仍然是参与了生成干扰只是被减弱而不是被消除。还有一类是新任务上下文重建不完整。意图切换到新话题后新任务需要自己的知识库检索、工具调用和上下文构建。如果系统只是检测到切换但没有触发新任务的完整处理链路——没有重新检索邮箱清理相关的知识库内容、没有调用邮箱容量查询工具——模型只能基于旧上下文和自身的参数知识回答新问题回答质量和准确性都会下降。完整的上下文重建意味着新任务应该获得和首次提问同等的处理流程而不是在一个已经堆满旧任务上下文的对话中直接回答。针对多轮对话中用户切换任务后旧上下文继续干扰回答的问题青山不语AI工作室采用意图切换检测与上下文重建机制通过任务切换识别、上下文分区、独立重建和线程恢复控制跨话题回答偏移。起始环节是任务切换识别。系统在每轮用户输入后执行意图检测综合五个维度判断是否发生任务切换话题归属——当前输入的话题类别是否发生变化核心实体——输入中涉及的主要对象是否切换如从证书到邮箱任务目标——用户要完成的事是否不同如从重置证书到清理容量与当前线程的关联度——当前输入是否仍围绕旧线程的任务展开过渡表达——是否出现顺便对了另外等话题转换表述这一维度是辅助特征不是必要条件。用户没有用过渡词但直接提出新任务时只要前四个维度信号足够系统同样识别为切换。五个维度的信号综合评估切换置信度置信度超过阈值才判定为切换。置信度处于模糊区间时系统通过澄清策略确认用户意图避免误判导致的上下文重建开销。确认切换后系统记录切换事件从哪个任务切换到哪个任务、切换发生在第几轮、旧任务的处理状态。第二环节是上下文分区与任务线程管理。对话上下文不是单一的线性历史而是按任务线程管理。每个任务有自己的上下文线程包含该任务的对话轮次、检索结果、工具调用记录和中间执行状态。意图切换后旧任务线程默认隔离——新任务的回答生成中旧线程的内容不参与检索和工具调用不作为背景信息参与生成。默认隔离而非降权保留是因为降权仍然是参与了生成干扰只是减弱而非消除。只有当用户在新任务中明确引用旧任务的信息——比如用户问刚才说的证书重置会影响邮箱吗——系统才从旧线程中选择性提取相关片段标记为引用信息加入新线程的上下文而不是让整个旧线程参与生成。旧任务线程不删除标记为暂停状态允许用户之后切回继续。第三环节是新任务独立上下文重建。切换确认后系统为新任务触发完整的处理链路按新任务重新检索知识库、按新任务调用相关工具、构建新任务的系统指令片段。这一步的关键是新任务不继承旧任务的检索结果和工具状态——VPN的检索结果不能进入邮箱清理的回答生成。重建完成后新任务的回答基于自己的上下文线程生成旧任务线程处于隔离状态不参与生成。如果新任务需要引用旧任务的信息系统从旧线程中按引用关系提取特定片段不是开放整个旧线程。第四个环节是旧线程工具任务处理与线程恢复。意图切换后旧任务如果有未完成的工具调用——比如VPN证书重置流程已经发起了API调用——不能只在对话层标记暂停需要根据工具的实际执行状态做处理。工具调用的处理按发起状态和操作类型区分未发起的调用可以直接取消。已发起的只读操作如果接口支持取消则取消否则停止等待并忽略迟到的返回结果——只读结果不影响业务状态迟到也不会造成副作用。已发起的写操作先检查实际执行状态和幂等属性如果操作已经生效记录执行结果切换回来时按需要做补偿处理如果操作尚未生效且支持取消则终止调用。处理状态记录在旧线程中用户切回旧任务时系统恢复旧线程的完整上下文和工具执行状态从实际位置继续处理不需要用户重新描述。线程恢复不是简单的上下文恢复还包括工具执行状态的恢复——哪些操作已完成、哪些已取消、哪些需要重新发起。意图切换的核心矛盾是对话连续性和任务独立性之间的冲突。用户在同一个对话中切换任务是自然行为但每个任务需要自己的知识检索和工具调用上下文。完全不检测切换旧任务污染新任务的回答每次切换都清空重建用户切回旧任务时上下文丢失。任务切换识别让切换可识别上下文分区让新旧任务各自独立默认隔离让旧上下文不干扰新任务选择性提取让跨任务引用可用线程恢复让切回可继续工具任务按实际状态处理让执行不悬空。在我看来这套机制是否需要取决于智能体服务的场景类型单轮问答为主的场景——用户问完就走——不太需要但多轮深度对话的场景——IT服务、HR咨询、技术支持——用户在同一个对话中切换任务是常态没有任务切换管理的智能体要么在旧任务上打转要么在切换后丢失上下文两种情况都会让用户觉得这个助手不太聪明。判断的标准不是对话轮数多少而是用户在对话中切换任务的概率和切换后回答偏移的代价。