AI Agent 的记忆系统短期记忆 vs 长期记忆一文讲透一、为什么 Agent 需要记忆你有没有遇到过这种情况和 AI 聊了半天它突然失忆了前面说过的事完全不记得或者每次打开新对话都要重新自我介绍一遍。这背后的根本原因是大模型本身是无状态的——它不会自动记住任何东西。每次调用它只能看到你这一次传给它的内容过完即忘。但一个真正好用的 AI Agent必须能记事:记住你这轮对话前面说了什么不然没法多轮交流记住你是谁、喜欢什么不然每次都像初次见面记住之前做过的任务、学到的经验不然永远在重复犯错给 Agent 加上记忆系统就是让它从金鱼记忆变成靠谱助理的关键。而记忆主要分两类短期记忆和长期记忆。二、短期记忆Short-term Memory2.1 它是什么短期记忆 当前这轮对话/任务的上下文。它对应的就是模型的「上下文窗口」里那些对话历史。打个比方短期记忆就像你和人聊天时脑子里的当前话题——这次聊天结束、或者话题切换太久它就淡忘了。你我叫小明在做一个电商项目 AI好的小明关于电商项目有什么可以帮你 你帮我设计数据库 ← AI 还记得你叫小明、在做电商 你新开一个对话你好 ← AI 不记得小明了短期记忆没了2.2 怎么实现最直接的方式把历史对话拼接到每次请求里。# 短期记忆 维护一个 messages 列表messages[{role:user,content:我叫小明},{role:assistant,content:你好小明},{role:user,content:我刚才说我叫什么},# 它能答对]2.3 核心挑战上下文窗口装不下对话越长历史越多迟早会超出上下文窗口而且 Token 成本飙升。常见应对策略做法滑动窗口只保留最近 N 轮对话旧的丢掉摘要压缩把早期对话总结成一段话替代原文混合近期保留原文 远期保留摘要三、长期记忆Long-term Memory3.1 它是什么长期记忆 跨对话、跨会话持久保存的信息。关掉重开、过了一周它依然记得。打比方长期记忆就像你写在笔记本里的东西——不依赖当前在不在聊需要时翻出来看。它通常存储用户画像你的名字、偏好、习惯“小明喜欢用 Python、讨厌过度设计”历史事实之前发生过的关键事件、做过的决定经验知识从过往任务中学到的方法、踩过的坑3.2 怎么实现长期记忆不能塞在上下文里太多了而是存到外部需要时再检索回来。最主流的方式就是向量数据库 检索——这其实就是 RAG 的思路用在了记忆上存入把记忆小明喜欢 Python转成向量存进向量库 ↓ 读取新对话时根据当前话题检索相关记忆拼进上下文 ↓ 模型我记得你喜欢 Python那这个方案就用 Python 写# 长期记忆的极简示意# 1. 存把重要信息写入向量库memory_db.add(用户小明偏好 Python反感过度设计,user_idxiaoming)# 2. 取新会话开始时检索该用户的相关记忆memoriesmemory_db.search(query当前问题,user_idxiaoming,top_k3)# 3. 把检索到的记忆拼进 system promptsystem_promptf关于该用户你已知{memories}\n请基于这些信息回答。3.3 进阶记忆的读 / 写 / 更新成熟的长期记忆系统不只是存还要管理写入时机哪些信息值得记不是所有对话都要存更新/纠正“小明换成 Go 了”——旧记忆要能更新遗忘机制过时、无用的记忆要清理否则越积越乱四、短期 vs 长期一张表看清维度短期记忆长期记忆范围当前对话/任务跨对话、永久存在哪上下文窗口对话历史外部存储向量库/数据库生命周期对话结束就没了持久保存典型内容刚才聊的内容用户画像、历史经验主要挑战窗口装不下 → 压缩/裁剪何时写、怎么检索、如何更新类比脑子里的当前话题写在笔记本上的东西五、一个完整 Agent 的记忆是怎么协作的真实的 Agent 通常两种记忆一起用用户提问 ↓ ① 从【长期记忆】检索相关信息用户偏好、历史经验 ↓ ② 加上【短期记忆】本轮对话历史 ↓ ③ 一起组成上下文 → 喂给模型 → 生成回答 ↓ ④ 判断本轮有没有值得长期记住的新信息 有 → 写入【长期记忆】举个例子——一个编程助手 Agent长期记忆记得你常用 Python、项目用 FastAPI、不喜欢复杂方案短期记忆记得这轮你正在调试一个登录接口的报错协作效果它给的方案既贴合你的长期偏好Python 简洁又紧扣当前问题登录报错这就是有记忆和没记忆Agent 的体验鸿沟。六、几个实践建议#建议说明1先做好短期记忆多数应用把多轮对话 摘要压缩做好就够用了2长期记忆按需引入真的需要跨会话记住用户时再上别过度设计3不是什么都要记长期记忆只存高价值信息垃圾进垃圾出4记忆也要检索得准长期记忆本质是 RAGEmbedding 和检索质量决定效果5注意隐私合规存用户信息要考虑授权、加密、可删除6善用现成方案有 Mem0、LangChain Memory 等开源库不用全从零造七、总结大模型本身无状态记忆是外挂上去的能力短期记忆 当前对话上下文存在窗口里靠压缩/裁剪管理长期记忆 跨会话持久信息存在外部向量库靠检索调用本质是 RAG好的 Agent 两者结合长期记忆提供你是谁短期记忆提供我们在聊什么实践原则先把短期做扎实长期按需引入只记高价值信息一句话记忆系统是让 AI Agent 从一次性工具进化成懂你的长期助手的核心。理解了短期与长期记忆的分工你就掌握了构建实用 Agent 的关键一环。相关阅读长期记忆与我之前写的《RAG 知识库实战》《向量数据库选型》《Embedding 指南》《上下文工程》是同一条技术线建议串起来看。
AI Agent 的记忆系统:短期记忆 vs 长期记忆,一文讲透
发布时间:2026/6/14 18:28:49
AI Agent 的记忆系统短期记忆 vs 长期记忆一文讲透一、为什么 Agent 需要记忆你有没有遇到过这种情况和 AI 聊了半天它突然失忆了前面说过的事完全不记得或者每次打开新对话都要重新自我介绍一遍。这背后的根本原因是大模型本身是无状态的——它不会自动记住任何东西。每次调用它只能看到你这一次传给它的内容过完即忘。但一个真正好用的 AI Agent必须能记事:记住你这轮对话前面说了什么不然没法多轮交流记住你是谁、喜欢什么不然每次都像初次见面记住之前做过的任务、学到的经验不然永远在重复犯错给 Agent 加上记忆系统就是让它从金鱼记忆变成靠谱助理的关键。而记忆主要分两类短期记忆和长期记忆。二、短期记忆Short-term Memory2.1 它是什么短期记忆 当前这轮对话/任务的上下文。它对应的就是模型的「上下文窗口」里那些对话历史。打个比方短期记忆就像你和人聊天时脑子里的当前话题——这次聊天结束、或者话题切换太久它就淡忘了。你我叫小明在做一个电商项目 AI好的小明关于电商项目有什么可以帮你 你帮我设计数据库 ← AI 还记得你叫小明、在做电商 你新开一个对话你好 ← AI 不记得小明了短期记忆没了2.2 怎么实现最直接的方式把历史对话拼接到每次请求里。# 短期记忆 维护一个 messages 列表messages[{role:user,content:我叫小明},{role:assistant,content:你好小明},{role:user,content:我刚才说我叫什么},# 它能答对]2.3 核心挑战上下文窗口装不下对话越长历史越多迟早会超出上下文窗口而且 Token 成本飙升。常见应对策略做法滑动窗口只保留最近 N 轮对话旧的丢掉摘要压缩把早期对话总结成一段话替代原文混合近期保留原文 远期保留摘要三、长期记忆Long-term Memory3.1 它是什么长期记忆 跨对话、跨会话持久保存的信息。关掉重开、过了一周它依然记得。打比方长期记忆就像你写在笔记本里的东西——不依赖当前在不在聊需要时翻出来看。它通常存储用户画像你的名字、偏好、习惯“小明喜欢用 Python、讨厌过度设计”历史事实之前发生过的关键事件、做过的决定经验知识从过往任务中学到的方法、踩过的坑3.2 怎么实现长期记忆不能塞在上下文里太多了而是存到外部需要时再检索回来。最主流的方式就是向量数据库 检索——这其实就是 RAG 的思路用在了记忆上存入把记忆小明喜欢 Python转成向量存进向量库 ↓ 读取新对话时根据当前话题检索相关记忆拼进上下文 ↓ 模型我记得你喜欢 Python那这个方案就用 Python 写# 长期记忆的极简示意# 1. 存把重要信息写入向量库memory_db.add(用户小明偏好 Python反感过度设计,user_idxiaoming)# 2. 取新会话开始时检索该用户的相关记忆memoriesmemory_db.search(query当前问题,user_idxiaoming,top_k3)# 3. 把检索到的记忆拼进 system promptsystem_promptf关于该用户你已知{memories}\n请基于这些信息回答。3.3 进阶记忆的读 / 写 / 更新成熟的长期记忆系统不只是存还要管理写入时机哪些信息值得记不是所有对话都要存更新/纠正“小明换成 Go 了”——旧记忆要能更新遗忘机制过时、无用的记忆要清理否则越积越乱四、短期 vs 长期一张表看清维度短期记忆长期记忆范围当前对话/任务跨对话、永久存在哪上下文窗口对话历史外部存储向量库/数据库生命周期对话结束就没了持久保存典型内容刚才聊的内容用户画像、历史经验主要挑战窗口装不下 → 压缩/裁剪何时写、怎么检索、如何更新类比脑子里的当前话题写在笔记本上的东西五、一个完整 Agent 的记忆是怎么协作的真实的 Agent 通常两种记忆一起用用户提问 ↓ ① 从【长期记忆】检索相关信息用户偏好、历史经验 ↓ ② 加上【短期记忆】本轮对话历史 ↓ ③ 一起组成上下文 → 喂给模型 → 生成回答 ↓ ④ 判断本轮有没有值得长期记住的新信息 有 → 写入【长期记忆】举个例子——一个编程助手 Agent长期记忆记得你常用 Python、项目用 FastAPI、不喜欢复杂方案短期记忆记得这轮你正在调试一个登录接口的报错协作效果它给的方案既贴合你的长期偏好Python 简洁又紧扣当前问题登录报错这就是有记忆和没记忆Agent 的体验鸿沟。六、几个实践建议#建议说明1先做好短期记忆多数应用把多轮对话 摘要压缩做好就够用了2长期记忆按需引入真的需要跨会话记住用户时再上别过度设计3不是什么都要记长期记忆只存高价值信息垃圾进垃圾出4记忆也要检索得准长期记忆本质是 RAGEmbedding 和检索质量决定效果5注意隐私合规存用户信息要考虑授权、加密、可删除6善用现成方案有 Mem0、LangChain Memory 等开源库不用全从零造七、总结大模型本身无状态记忆是外挂上去的能力短期记忆 当前对话上下文存在窗口里靠压缩/裁剪管理长期记忆 跨会话持久信息存在外部向量库靠检索调用本质是 RAG好的 Agent 两者结合长期记忆提供你是谁短期记忆提供我们在聊什么实践原则先把短期做扎实长期按需引入只记高价值信息一句话记忆系统是让 AI Agent 从一次性工具进化成懂你的长期助手的核心。理解了短期与长期记忆的分工你就掌握了构建实用 Agent 的关键一环。相关阅读长期记忆与我之前写的《RAG 知识库实战》《向量数据库选型》《Embedding 指南》《上下文工程》是同一条技术线建议串起来看。