多轮对话与上下文压缩:追问时模型怎么记住前面说的
多轮对话让模型在连续提问里保持上下文,上下文压缩是在轮次变多时精简历史,省 token 又保住关键信息。企业接入大模型做智能问答,对话状态的连续性管理容易被忽视。你在追问时用“它”“这个”“再下钻”这类指代,模型需要能够接住前文,否则后续问题可能退化为孤立的单轮请求。

定义:多轮对话与上下文压缩是什么
多轮对话指模型在一段会话里保留已经发生的交互记录,把历史问题和回答作为后续推理的依据。单轮对话通常每次独立处理,模型一般不参考之前的交互记录。多轮对话把前几轮的上下文拼到当前请求里,模型因此能理解"它""这个""再下钻"这类指代所指向的对象。
上下文压缩指对话轮次增多、历史文本变长之后,用摘要、裁剪、关键信息抽取等手段缩短送进模型的文本量。它的目标是在节省 token 开销的同时,保住影响回答准确性的主线信息。
两个概念构成追问体验的底层支撑。缺少多轮能力,追问较难实现。缺少压缩机制,长对话可能因成本与注意力问题难以持续。
原理拆解:模型如何接住前文的指代
每轮推理时,系统把对话历史和新问题一起送进模型。模型看到的不是孤立问题,而是"问题1加回答1加问题2加回答2加当前问题"的完整序列。指代消解依赖这个序列。你问"再看下华东区",模型需要在历史里找到"华东"对应的筛选条件,才更有可能正确执行。
轮次变多之后,完整历史的长度会超出模型的合理处理区间。系统此时对旧上下文做摘要,可保留主线逻辑和关键约束,适当舍弃细节冗余。摘要后的历史接上新问题和最近几轮原文,重新构成送给模型的序列。
压缩的核心判断是区分"主线"和"细节"。主线是任务目标、筛选条件、约束规则。细节是中间计算过程、冗余说明、可以重新生成的内容。压缩丢细节、保主线,模型在追问时通常仍能接住指代。
工程上常见三种压缩手段。摘要缓冲把最早的若干轮压缩成一段概述,保留近期原文。滑动窗口只保留最近 N 轮,更早的整段丢弃,实现简单但可能漏掉早期约束。关键信息抽取从每轮里提取筛选条件和约束,单独存成结构化字段,后续轮次优先引用这些字段。
工程意义:断上下文为什么答非所问
业务问数是多轮对话典型的应用。你的分析路径往往是"先看区域,再下钻城市,再看品类"。每一步都依赖上一步的筛选结果。区域选了华东,城市层才能限定在华东范围内。品类层依赖城市层的结果。
上下文如果断裂,模型拿不到前序约束,可能按当前孤立问题作答。你问"再看品类",模型不知道指的是华东的哪个城市,返回的结果和真实意图脱节。这是答非所问的一种常见来源。
压缩不当带来另一类问题。摘要可能将“时间范围限定在上季度”“只看华东”“排除退款订单”这类关键约束一并舍弃,模型在后续轮次可能缺少约束,回答可能偏离业务口径。企业问数对口径较为敏感,数字错误可能影响决策。
类似问题出现在智能客服场景。用户先问"基础版多少钱",再问"这个套餐包含哪些功能"。模型若丢了前一轮的"基础版"指代,可能泛泛回答所有套餐。代码审查场景里,用户贴出一段代码后追问"第三行为什么报空指针",模型通常需要保留代码原文才更有可能定位。文档分析场景里,用户说"总结第三章,再提取里面的数据表格",模型需要记住第三章的范围,否则可能扫描整篇文档。
小艾智能体里的落地方式
小艾智能体的 Agent 工作流可通过 Memory 持久化记录前序节点的输出。你在问数场景里基于结果连续追问,系统可通过状态传递将上轮条件带入下一轮,追问通常无需重复输入筛选条件。
文档处理引擎可将企业资料切分、向量化后存入 Milvus 向量库,向量检索引擎可结合 Elasticsearch 全文检索进行混合检索,为问答提供知识片段。多轮对话通常可基于这些片段和历史上下文生成回答,追问时检索范围可随约束收窄,答案有助于逐步聚焦。
这种机制可支持业务人员用自然语言连续追问,从区域下钻到城市再到品类,通常无需反复说明背景,也通常无需重写查询条件。问数之外的客服、文档分析等场景,也可借助同一套上下文管理能力承接指代与约束。
多轮对话的价值在于连续性,模型靠连续的历史理解指代、承接约束。连续的代价是上下文会膨胀,通常需要靠压缩做取舍。取舍的一个重要环节是区分主线与细节,保住约束、适当舍弃冗余。企业部署问答系统时,连续性管理和压缩策略宜作为重要设计点之一。
立即咨询