什么是会话记忆(Chat Memory)?有什么作用?

发布时间:2026/8/31 6:41:31
什么是会话记忆(Chat Memory)?有什么作用? 什么是会话记忆Chat Memory有什么作用文章目录什么是会话记忆Chat Memory有什么作用1. 什么是会话记忆Chat Memory1.1 名称解释当前对话的上下文状态1. 主题与话题走向2. 指代关系3. 用户意图和角色设定4. 历史对话的关键信息1.2 举个例子理解2. 会话记忆的作用1. 上下文连贯2. 减少重复输入3. 个性化体验4. 多轮任务完成3. 会话记忆和上下文窗口Context Window是什么关系两者的关系1. 什么是会话记忆Chat Memory在对话系统中会话记忆指的是模型对历史对话内容的存储与利用机制属于上下文理解的核心能力之一。会话记忆包括用户之前说过的话模型之前的回答当前对话的上下文状态1.1 名称解释当前对话的上下文状态本质上就是对话的整体语境与状态主要包含下面 4 个部分1. 主题与话题走向我们和大模型聊天都会有对应的主题比如聊技术、聊生活、聊经济。模型会记住当前正在聊什么。话题走向指对话主题的变化是继续围绕原来话题聊还是发生切换比如从聊技术转到聊生活。2. 指代关系对话里经常会用到代词它、他、她。举例你问 “哪种螃蟹最好吃”AI 回答完你接着问“它的做法有哪些”这里的它就指代前面提到的最好吃的螃蟹。上下文状态要把这种对应关系保存下来。3. 用户意图和角色设定用户意图用户当下想达成什么目标。比如用户问期末考试速通技巧意图就是应付期末考试用户刷面试题意图就是准备面试。模型记住意图回答才会贴合需求。角色设定模型识别出用户身份。比如问考试复习识别用户是学生后续就会站在学生视角给出适配的回答。4. 历史对话的关键信息会话记忆本身已经存好了用户之前说过的话模型之前的回答那为什么还要单独提取关键信息核心原因大模型存在最大上下文窗口输入token 输出token每一段对话都会消耗 token。聊天轮次一多完整历史全部送入模型token 很容易超出上限。模型会把最早的内容直接截断丢弃核心主题丢失后AI 就容易跑题、答非所问。举个通俗例子就像开插线板设计讨论会如果一字不差记录所有人的闲聊和发言内容会越记越长。本子写不下的时候前面重要的设计需求就会被舍弃。所以我们提炼关键信息线长、插口数量、外观设计。用很少的 token 保存核心内容过滤无效闲聊守住对话主题防止上下文超限。简单总结完整历史会话会不断累积 token受上下文窗口限制过长会被截断丢失早期主题信息。所以我们会提取关键信息做记忆压缩用少量 token 保留对话核心避免 AI 跑题。1.2 举个例子理解1 用户哪种螃蟹最好吃 2 用户它的做法有哪些这里的对话我使用的是 deepseek第二句话虽然没提 “哪种螃蟹最好吃”但模型能理解你是在延续上文问题会基于第一个提问来进行回答 —— 这就是会话记忆在起作用。2. 会话记忆的作用1. 上下文连贯作用能理解“它”“这个”等指代让对话流畅。例子你什么是 RedisAIRedis 是一种内存数据库。你它为什么速度这么快AI因为它主要在内存中读写数据。这里 AI 能知道“它”指的是Redis。2. 减少重复输入作用前面提供过的信息后面不需要反复说明。例子你我的项目是 Spring Boot Vue3后端端口是 8081。你那 Nginx 怎么配置AI可以将请求代理到 8081 端口。你不需要再次说明项目技术栈和端口。3. 个性化体验作用根据用户的偏好调整回答。例子你我是 Java 初学者讲代码时简单一点多举例。之后你问什么是 RedisAI会尽量用简单的语言和例子解释而不是直接使用复杂术语。4. 多轮任务完成作用通过多次对话逐步完成复杂任务。例子你帮我设计一个 AI 系统。你后端使用 Spring Boot。你AI 部分使用 Python。你帮我设计 Java 调用 Python 的方案。AI 可以结合前面的信息逐步完成整个系统设计。3. 会话记忆和上下文窗口Context Window是什么关系会话记忆模型对历史对话内容的存储与利用机制属于上下文理解的核心能力之一。上下文窗口大模型一次能够处理的 Token 总上限通常包括输入 Token 和输出 Token。两者的关系可以把它们想象成一个背包上下文窗口 背包容量会话记忆 背包里之前装进去的东西你现在发送给 AI 的内容 现在准备装进去的东西例如上下文窗口10,000 Token 历史对话6,000 Token 你现在发送给 AI 的内容2,000 Token 系统提示词1,000 Token一共占用了6,000 2,000 1,000 9,000 Token还剩下 1,000 Token 的空间。如果继续增加内容超过了上下文窗口的限制就可能出现截断、报错等情况。所以两者的关系可以简单理解为会话记忆负责“记住之前聊过什么”上下文窗口负责“限制一次最多能处理多少内容”两者的关系是会话记忆提供的历史信息需要放入上下文窗口中因此会占用上下文窗口的容量。