收藏 | Agent 也能“过目不忘“?手把手教你实现大模型记忆系统,小白也能看懂!
Agent 有了工具,终于能"动手做事"了——能搜索、能查数据库、能读文件、能调 API。
但你有没有想过一个问题:
Agent 做完了事,它记得自己刚才做了什么吗?
答案是:大多数 Agent 不记得。
更准确地说——它不是"不记得",而是你根本没给它"记住"的能力。
如果你做过多轮对话的 Agent,大概率遇到过这种情况:
- 聊了十几轮后,Agent 开始"忘事",你在第三轮说过的条件,到第十五轮它已经忘了
- 换一个新会话,Agent 完全不记得上次聊过什么,一切从零开始
- 上下文越来越长,Token 成本疯涨,但回答质量反而在下降
这些问题的根因,都指向同一件事:
Agent 没有记忆系统。
一、先说清一个大前提:上下文窗口不是记忆
这是很多人最容易搞混的点。
你可能会说:“现在的模型不是有 128K、200K 的上下文窗口了吗?这不就是记忆吗?”
不是。
上下文窗口和记忆,是两个完全不同的东西。
上下文窗口是"工作台"
上下文窗口是模型单次推理时能看到的全部信息——System Prompt、对话历史、工具调用结果、中间状态,全部加在一起。
它有一个硬上限,超了就会被截断。
你可以把它想象成一张工作台:桌面上能放多少纸条,取决于桌面有多大。桌面满了,最早放上去的纸条就被挤下去了。
记忆系统是"档案柜"
记忆系统是一套独立于上下文窗口的存储和检索机制。它能把重要信息持久化保存,需要时再调出来放到工作台上。
你可以把它想象成档案柜:工作台放不下的东西,你可以归档到柜子里。下次要用的时候,打开柜子找出来就行。


上下文窗口是临时的、有限的、每次推理都要重新组装的。
记忆系统是持久的、可扩展的、跨会话可用的。
把上下文窗口当成记忆来用,就像把所有文件都堆在桌面上——桌面越来越满,找东西越来越慢,而且桌面一清空,什么都没了。
二、短期记忆和长期记忆各是什么
人的记忆有短期和长期之分,Agent 的记忆系统也是一样的。
短期记忆:当前任务的工作信息
短期记忆管理的是"这一次任务中需要用到的信息"。
典型内容包括:
-
当前对话历史
:用户说了什么,Agent 回答了什么
-
工具调用结果
:刚刚查了什么、搜了什么、读了什么文件
-
中间推理步骤
:Agent 目前的判断、分析、计划
-
临时工作变量
:比如计算中间值、待处理的任务列表
短期记忆的特点是:生命周期短,和当前任务强绑定,任务结束后大部分会被丢弃。
在工程上,短期记忆通常就是对话上下文本身,或者用一些管理策略来优化:
-
Buffer 策略
:保留最近 N 轮对话
-
Summary 策略
:对早期对话做摘要压缩
-
Sliding Window
:窗口滑动,只保留窗口内的内容
长期记忆:跨会话持久化的知识
长期记忆管理的是"跨越多次任务、多个会话都需要复用的信息"。
典型内容包括:
-
用户偏好和习惯
:比如"这个用户喜欢用中文"、“偏好简洁回答”
-
历史决策记录
:比如"上次选了方案 A,效果不好"
-
过往任务总结
:比如"用户上周让我帮他写了一份项目计划"
-
领域知识积累
:比如"这个项目的技术栈是 Python + FastAPI"
长期记忆的特点是:生命周期长,独立于单次对话,需要持久化存储。
在工程上,长期记忆需要外部存储支持:
-
向量数据库
:用于语义检索(Pinecone、Chroma、Milvus 等)
-
关系数据库
:用于结构化查询(比如查某个用户的偏好设置)
-
文件系统
:用于存储文档、笔记、日志
两者的关系
短期记忆和长期记忆不是孤立的,而是有转化关系:
-
短期 → 长期
:任务结束后,把重要信息提炼出来存入长期记忆
-
长期 → 短期
:新任务开始时,根据当前需求从长期记忆中检索相关信息

三、记忆系统在 Agent 架构中的位置
很多人做 Agent 时只关注"模型怎么调"、“工具怎么接”、“Prompt 怎么写”,但忘了记忆在架构中的位置。
记忆系统不是一个可有可无的附加模块,它嵌在 Agent 的核心链路里,影响每一次推理的质量。
看这张架构图:

记忆系统做了两件事:
-
检索
(在推理前):根据当前任务,从记忆存储中找出相关信息,塞进上下文
-
写入
(在推理后):把本次推理中产生的重要信息,持久化到记忆存储
这两步构成了一个闭环。
如果只有检索没有写入,记忆库永远是空的。
如果只有写入没有检索,存了也白存。
四、用一个真实场景,看看记忆到底怎么工作
场景:一个客服 Agent,用户连续咨询了两次。

第一次会话
用户:我买的那个蓝牙耳机,左耳没声音了。
Agent:您好,请问是哪款型号?
用户:就是上周在你们店买的 SoundMax Pro。
Agent:好的,SoundMax Pro 左耳无声,建议您先长按左耳 10 秒重置。如果还是不行,可以申请换货。
用户:好,我先试试重置。
会话结束后,记忆系统做了什么?
记忆管理器提炼关键信息,写入长期记忆:
用户购买了 SoundMax Pro 蓝牙耳机 问题:左耳无声 建议:长按 10 秒重置 用户表示会先试试 状态:待跟进
第二次会话(三天后)
用户:上次那个耳机的问题,重置了还是不行。
如果没有记忆系统,Agent 会问:
“请问您是哪款耳机?什么问题?”
用户已经说过一遍了,再问一遍会很烦。
如果有记忆系统,Agent 在收到消息时:
- 记忆管理器检索到上次会话的摘要
- 把"SoundMax Pro / 左耳无声 / 已尝试重置 / 未解决"注入上下文
- 模型看到完整背景后直接回答:
“SoundMax Pro 左耳无声的问题,您已经试过重置但没有效果,我帮您直接发起换货申请,您看可以吗?”
这就是记忆的价值:Agent 不用重新问,用户不用重新说,体验质的飞跃。
五、没有记忆的 Agent,会遇到哪些真实问题
这不是理论推演,是每个做过 Agent 的人都会遇到的坑。
问题 1:多轮对话信息丢失
对话轮次一多,上下文窗口塞不下了,最早的消息被裁掉。
Agent 就像一个只能看最近 5 页的人——前面的需求、条件、决策,全忘了。
问题 2:跨会话完全失忆
每次新会话,Agent 都是一张白纸。用户上次说过的偏好、做过的选择、确认过的方案,全部重来。
对用户来说,这就像每次打电话客服都要重新报一遍身份信息。
问题 3:Token 浪费严重
没有记忆管理,唯一的"记忆方式"就是把所有历史信息都塞进上下文。
30 轮对话 × 每轮几百 token = 上下文直接爆,成本指数增长,但大部分信息其实是冗余的。
问题 4:无法积累经验
Agent 犯了错误,下次还会犯。
Agent 做过一次正确决策,下次还是要重新推理。
因为它不记得自己之前的经历。
问题 5:无法做个性化
不记得用户是谁、喜欢什么格式、上次选了什么方案、讨厌什么风格。
没有记忆的"个性化 Agent",就是每次见面都自我介绍的社恐。
痛点速查表
| 问题 | 根因 | 影响 |
|---|---|---|
| 多轮忘事 | 上下文窗口有限 | 回答不连贯 |
| 跨会话失忆 | 没有持久化存储 | 用户体验差 |
| Token 浪费 | 没有信息压缩 | 成本不可控 |
| 不积累经验 | 没有记忆写入 | 效率无法提升 |
| 无法个性化 | 没有用户画像 | 千人一面 |
六、一个最小可用的记忆系统需要什么
你不需要一上来就搞复杂的向量数据库和知识图谱。

一个最小可用的记忆系统,只需要 5 个组件:
组件 1:对话缓存(Chat Buffer)
保存最近 N 轮对话,确保短期内的连贯性。
`class ChatBuffer:
def init(self, max_turns=20):
self.max_turns = max_turns
self.messages = []
def add(self, role, content):
self.messages.append({"role": role, "content": content})
if len(self.messages) > self.max_turns * 2:
self.messages = self.messages[-self.max_turns * 2:]
def get_recent(self):
return self.messages`
组件 2:摘要模块(Summarizer)
当对话太长时,把早期内容压缩成摘要,节省 Token。
`class ConversationSummarizer:
def init(self, llm_client):
self.llm = llm_client
def summarize(self, messages):
prompt = f"""请将以下对话历史压缩成一段简洁的摘要,
保留关键信息(用户需求、已做决策、重要结论):
{messages}“”"
return self.llm.generate(prompt)`
组件 3:记忆存储(Memory Store)
持久化保存重要信息,支持检索。最简单的实现可以用文件或 SQLite。
`import json
from datetime import datetime
class SimpleMemoryStore:
def init(self, storage_path=“memory.json”):
self.path = storage_path
self.memories = self._load()
def save(self, key, content, metadata=None):
self.memories[key] = {
"content": content,
"metadata": metadata or {},
"timestamp": datetime.now().isoformat()
}
self._persist()
def search(self, query, top_k=5):
# 最简版本:关键词匹配
# 进阶版本:向量语义检索
results = []
for key, mem in self.memories.items():
if query.lower() in mem["content"].lower():
results.append(mem)
return results[:top_k]`
组件 4:记忆管理器(Memory Manager)
串联以上组件,决定什么时候检索、什么时候写入。
`class MemoryManager:
def init(self, buffer, summarizer, store):
self.buffer = buffer
self.summarizer = summarizer
self.store = store
def before_inference(self, user_input):
"""推理前:检索相关记忆"""
relevant = self.store.search(user_input)
context = "\n".join([m["content"] for m in relevant])
return context
def after_inference(self, user_input, agent_output):
"""推理后:更新缓存,判断是否写入长期记忆"""
self.buffer.add("user", user_input)
self.buffer.add("assistant", agent_output)
# 判断是否需要持久化(简单策略:每 10 轮做一次摘要)
if len(self.buffer.messages) >= 20:
summary = self.summarizer.summarize(
self.buffer.messages[:10]
)
self.store.save(
key=f"session_{datetime.now().isoformat()}",
content=summary
)
self.buffer.messages = self.buffer.messages[10:]`
组件 5:完整串联
`class AgentWithMemory:
def init(self, llm, tools, memory_manager):
self.llm = llm
self.tools = tools
self.memory = memory_manager
def run(self, user_input):
# 1. 检索相关记忆
memory_context = self.memory.before_inference(user_input)
# 2. 组装上下文
messages = [
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "system", "content": f"相关记忆:\n{memory_context}"},
*self.memory.buffer.get_recent(),
{"role": "user", "content": user_input}
]
# 3. 模型推理(含工具调用循环)
response = self.llm.chat(messages, tools=self.tools)
# 4. 更新记忆
self.memory.after_inference(user_input, response)
return response`
这五个组件加在一起,你的 Agent 就具备了基本的记忆能力:
- 短期内能保持对话连贯
- 长对话能自动压缩
- 重要信息能持久化
- 新会话能检索历史
七、记忆设计的常见误区
误区 1:什么都往记忆里存
记忆不是垃圾桶。如果什么都存,检索出来的全是噪声。
正确做法:只存有价值的信息——用户偏好、关键决策、任务结论。日常寒暄不需要存。
误区 2:只存不清理
记忆越积越多,过期信息和冗余信息会严重影响检索质量。
正确做法:设计清理策略——过期淘汰、重要性衰减、定期合并。
误区 3:把所有历史都塞进上下文
“既然记忆很重要,那我就把所有记忆都放进去。”——这会导致上下文爆炸、Token 浪费、推理质量下降。
正确做法:只检索和当前任务相关的记忆,不要全量注入。
误区 4:只有短期没有长期
只做了对话缓存,没有持久化存储。一关程序,什么都没了。
正确做法:起码有一个最简单的持久化层,哪怕是写文件。
误区 5:以为大窗口可以替代记忆
“我用 200K 上下文的模型,不需要记忆。”
200K token 大约是 15 万字。听起来很多,但如果你的 Agent 运行几天,几十轮对话加上工具调用结果,很快就不够了。
而且,窗口越大,推理成本越高,速度越慢。
正确做法:大窗口解决的是"短期能看多少",记忆系统解决的是"长期能记多少"。两者互补,不能替代。
误区速查表
| 误区 | 后果 | 正确做法 |
|---|---|---|
| 什么都存 | 检索噪声大 | 只存关键信息 |
| 只存不清理 | 质量衰减 | 设计淘汰策略 |
| 全量注入 | Token 爆炸 | 按需检索 |
| 只有短期 | 无法跨会话 | 加持久化层 |
| 靠大窗口 | 成本高、速度慢 | 记忆 + 窗口互补 |
普通人如何抓住AI大模型的风口?
领取方式在文末
为什么要学习大模型?
目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。
目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过 30%。
随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:
人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!
最后
只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!
在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。
真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
大模型全套学习资料展示
自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!
01 教学内容

-
从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!
-
大量真实项目案例: 带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事!
02适学人群
应届毕业生: 无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。
零基础转型: 非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。
业务赋能突破瓶颈: 传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。

vx扫描下方二维码即可
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!
03 入门到进阶学习路线图
大模型学习路线图,整体分为5个大的阶段:
04 视频和书籍PDF合集

从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)
05 行业报告+白皮书合集
收集70+报告与白皮书,了解行业最新动态!
06 90+份面试题/经验
AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)

07 deepseek部署包+技巧大全

由于篇幅有限
只展示部分资料
并且还在持续更新中…
真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)