千问Agent系统需分层构建记忆模块:短期记忆用滚动摘要+动态截断双机制,绑定会话生命周期;长期记忆采用向量库与关系型数据库协同存储,支持跨会话检索;情景记忆以事件锚点+时间戳索引实现可回溯交互封装。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您正在为千问构建Agent系统,发现其在多轮对话中丢失上下文、跨会话无法复用用户偏好或历史决策,则说明记忆管理模块存在结构性缺失。以下是针对千问场景下短期记忆与长期记忆的分层实现方案:
一、短期记忆:采用滚动摘要+动态截断双机制
短期记忆需严格绑定当前会话生命周期,既要控制上下文长度防止超出模型窗口限制,又要保留任务目标、约束条件和已确认结论等高价值语义。纯固定窗口截断易导致关键指令丢失,而纯摘要又增加推理开销与误差累积风险,因此推荐组合策略。
1、初始化会话时,为当前thread分配独立内存缓存区,仅允许写入当前用户ID与session ID标识的上下文数据。
2、当对话轮次达阈值(如8轮)或token数接近模型上限(如GPT-4 Turbo为128K,Qwen2-72B建议控制在32K内)时,触发摘要生成流程。
3、调用轻量级摘要模型(如Qwen1.5-0.5B)对前N轮对话进行语义压缩,输出不超过150字的结构化摘要,内容必须包含用户明确设定的风格要求、禁止行为、已确认参数及当前任务阶段。
4、将摘要插入上下文最前端,原始历史记录按时间倒序保留最近3轮完整对话,其余轮次仅保留摘要条目。
二、长期记忆:向量库+关系型数据库协同存储
长期记忆需脱离单次会话约束,与用户实体生命周期绑定,支持跨会话语义检索与结构化查询。单纯依赖向量库会导致偏好类信息难以精准过滤,仅用关系型数据库则无法处理模糊语义匹配,二者必须协同。
1、将每轮对话切分为记忆单元:显性片段(用户地址、生日、饮食禁忌等可结构化字段)写入关系型数据库,隐性片段(“上次说讨厌太甜的蛋糕”“偏好表格而非文字描述”)经嵌入模型(如bge-m3)向量化后存入向量数据库。
2、设置记忆准入条件:仅当对话中出现持续两轮以上重复表达、含否定/强调语气词(如“绝对不要”“务必”)、或涉及身份/习惯类名词短语时,才触发长期记忆写入流程。
3、检索阶段采用混合查询:用户新问题先经向量检索获取Top-3相关历史片段,再结合关系型数据库中该用户的profile表进行属性校验,剔除时效过期(如临时地址超过30天未更新)或置信度低于0.85的条目。
4、每日凌晨执行记忆维护任务:合并语义高度重叠的记忆片段(如连续3次提及“会议材料用深蓝色主题”),对低频访问记忆项标记为待归档状态,60天无检索则自动转入冷存储。
三、情景记忆:事件锚点+时间戳索引
情景记忆用于还原特定交互经历的完整上下文,支撑经验学习与反思能力。它不同于长期记忆的泛化存储,而是以“事件”为单位进行结构化封装,需具备可回溯、可验证、可关联的特性。
1、每当检测到任务闭环信号(如用户发送“谢谢,就这样”“已完成”或工具调用返回success状态),自动生成情景记忆锚点。
2、锚点包含三要素:事件ID(UUID)、时间戳(精确到毫秒)、上下文快照(截取该轮前后各1轮完整对话+调用工具名称+返回结果摘要)。
3、所有锚点统一写入专用情景记忆表,建立复合索引:(userID + 事件类型 + 时间范围),支持按“上周旅行规划相关事件”“所有失败订单处理过程”等自然语言指令快速定位。
4、当用户提问涉及过往经历(如“上次怎么帮我查快递的?”),优先匹配情景记忆锚点,若未命中再降级至长期记忆向量检索。


















