本文详细介绍了AI Agent记忆系统的构建方法,从解决单次对话内、跨会话之间以及多用户场景下的记忆问题出发,分别介绍了LangChain.js经典Memory、LangGraph.js新一代记忆管理和Zep平台等方案。文章还提供了避坑指南,帮助开发者更好地理解和应用Agent记忆系统。对于想要学习大模型和AI Agent开发的程序员来说,这是一份非常有价值的学习资料。
你跟它说"我在北京",下一句问"这里天气怎么样",它根本不知道"这里"是哪里。上篇文末我们用一个chatHistory数组临时解决了这个问题,但那个方案极其粗糙——数组会无限增长、进程一重启就全丢了、多个用户之间还会串数据。
真正的 AI 产品,记忆系统至少要解决三个问题:
- 「单次对话内」
,Agent 能记住上下文(短期记忆)
- 「跨会话之间」
,Agent 能记住用户偏好和历史信息(长期记忆)
- 「多用户场景」
,每个用户的记忆互相隔离
今天这篇,我们就从原理到代码,把 Agent 的记忆系统彻底搞清楚。
Agent 记忆系统全景
先搞懂:Agent 记忆有几种?
在讲具体方案之前,先用一个人类的类比来理解 Agent 的记忆体系。
「短期记忆(Short-term Memory)」:就像你跟朋友面对面聊天,你记得刚才他说了什么。对 Agent 来说,就是当前这轮对话的上下文——聊天记录、工具调用结果、中间推理过程。一旦对话结束(或进程重启),这些信息就没了。
「长期记忆(Long-term Memory)」:就像你记得某个朋友"不吃辣"、“上次推荐过一本书给他”。对 Agent 来说,就是跨多次对话积累下来的用户偏好、历史事实、业务知识。这些信息需要持久化存储,下次对话还能调出来。
用一张表格总结:
| 维度 | 短期记忆 | 长期记忆 |
|---|---|---|
| 「作用域」 | 单次对话/线程内 | 跨会话、跨线程 |
| 「生命周期」 | 对话结束即丢失(除非持久化) | 长期保存 |
| 「典型内容」 | 聊天记录、工具调用结果 | 用户偏好、历史事实、业务知识 |
| 「类比」 | 聊天时的短暂记忆 | 大脑里的长期知识库 |
| 「实现方式」 | 消息列表 / Checkpointer | KV Store / 向量库 / 知识图谱 |
搞清楚分类后,接下来我们看具体的技术方案。从最简单的到最强大的,一步步来。
方案一:LangChain.js 经典 Memory(入门级)
LangChain.js 早期提供了四种 Memory 抽象,虽然官方已标记为 legacy 并推荐迁移到 LangGraph,但理解它们背后的思路,能帮你在任何框架里做出正确的记忆决策。
「BufferMemory」:最直接,把完整聊天记录原封不动塞进每次请求。优点是信息无损,缺点是对话越长 Token 越贵,聊到 50 轮可能已经吃掉半个上下文窗口。
「BufferWindowMemory」:只保留最近 K 轮,旧的直接丢弃。Token 可控,但代价是"第 1 轮说的重要事情,第 K+1 轮就彻底忘了"。
「ConversationSummaryMemory」:不存原文,而是让 LLM 每轮把对话压缩成一段摘要。不管聊多久,摘要长度都可控——但每轮都要多调一次 LLM,延迟和成本会上升,细节也可能丢失。
「ConversationSummaryBufferMemory」:前两者的结合——「近期对话保留原文,更早的压缩成摘要」。Token 用量可控,近期上下文也不失真,是这四种里最适合生产的。
四种方案的核心权衡一张图说清楚:
四种经典 Memory 方案对比
这些经典 Memory 类已被标记为 legacy,但「全量 vs 窗口 vs 摘要 vs 混合」这四种思路,在任何记忆框架里都通用,值得理解。
方案二:LangGraph.js 新一代记忆管理(推荐)
LangGraph.js 把记忆分成两层来管:「Checkpointer 管短期,Store 管长期」。
短期记忆:Checkpointer + thread_id
每次 Agent 执行完一步,Checkpointer 都会自动把当前状态(包括聊天记录)存下来。只要带上同一个thread_id,下次对话就能从上次继续——Agent 不会"失忆"。
const checkpointer = newMemorySaver(); // 开发用;生产换 PostgresSaver const agent = createReactAgent({ llm, tools, checkpointer }); const config = { configurable: { thread_id: "user-001-session-1" } }; await agent.invoke({ messages: [{ role: "human", content: "我在北京" }] }, config); // 同一个 thread_id,下轮对话 Agent 记得"你在北京" await agent.invoke({ messages: [{ role: "human", content: "这里天气怎么样?" }] }, config);thread_id就是会话的"身份证"——相同 ID 共享历史,不同 ID 完全隔离,天然支持多用户。
长期记忆:Store + 命名空间
短期记忆只在同一个线程内有效,一旦开新会话就又"不认识你"了。长期记忆靠Store解决,数据按命名空间存放,任何线程、任何时候都能读到:
const store = newInMemoryStore(); // 开发用;生产换数据库实现 // 存:把用户偏好写入长期记忆 await store.put(["users", "user-001"], "preferences", { favoriteFramework: "React" }); // 取:新会话里也能读到 const item = await store.get(["users", "user-001"], "preferences");命名空间类似文件夹路径——["users", "user-001"]是某用户的私有空间,["org", "shared"]是组织共享的知识库。把"读取/写入偏好"做成工具交给 Agent,它就能自己决定什么时候记、什么时候查。
「核心公式」:Checkpointer(单次对话不失忆)+ Store(跨对话记住你)= 完整的记忆体系。
方案三:用 Zep 给 Agent 加上"超级记忆"
前面两种方案,存什么、取什么都要自己写逻辑。如果你想要一个更"智能"的记忆层——对话进去,知识图谱自动出来——可以看看 「Zep」。
Zep 是什么?
Zep 是一个专门做 AI Agent 记忆的平台,核心是「时序知识图谱(Temporal Knowledge Graph)」。你把对话扔进去,它自动干三件事:
- 「提取事实」
:从对话里识别"用户喜欢 React"、"项目用 Next.js"这些结构化信息
- 「时序追踪」
:记住事实的时间线——“用户三个月前用 Vue,现在改用 React”,旧事实自动标记过期
- 「智能检索」
:Agent 需要上下文时,用语义 + 图算法 + 时间三重过滤,<200ms 返回最相关的记忆
Zep 时序知识图谱架构
为什么不直接把聊天记录全塞给 LLM?
聊了 200 轮就是几万 Token——一次请求费用高、大量内容是噪声、LLM 在超长上下文里准确率还会下降。Zep 把几万 Token 的原始对话压缩成知识图谱里的几十个节点,检索时只返回相关的几百 Token。官方数据:「只用不到 2% 的 Token,准确率反而更高」。
接入方式
安装依赖后,核心流程三步走:
npm install @getzep/zep-cloud @langchain/communityconst zep = newZepClient({ apiKey: process.env.ZEP_API_KEY }); // ① 存入对话,Zep 自动提取事实、构建图谱 await zep.memory.add(sessionId, { messages: [...] }); // ② 检索记忆——自动生成摘要 + 事实列表 const memory = await zep.memory.get(sessionId); // memory.summary → 对话摘要 // memory.facts → ["用户在学 LangChain.js", "技术栈: React + Next.js", ...] // ③ 跨会话语义搜索 const results = await zep.memory.searchSessions({ userId, text: "用户的技术栈" });和 LangChain.js 集成时,用ZepCloudChatMessageHistory替换普通的消息历史,再把memory.facts注入 System Prompt,Agent 就能在每轮对话里自动感知用户的历史背景。
「Zep 的核心价值」:自动摘要、事实提取、时序感知、跨会话搜索、低延迟——这些在 LangGraph Store 里都需要自己实现,Zep 帮你全包了。
三种方案怎么选?
三种记忆方案对比
| 维度 | 经典 Memory | LangGraph 方案 | Zep |
|---|---|---|---|
| 「短期记忆」 | BufferMemory 系列 | Checkpointer(自动) | 内置 |
| 「长期记忆」 | 需自己实现 | Store(手动读写) | 自动(知识图谱) |
| 「多用户隔离」 | 需自己实现 | thread_id / namespace | 内置 user/session |
| 「智能程度」 | 低(规则驱动) | 中(灵活可控) | 高(自动提取+检索) |
| 「部署复杂度」 | 低 | 中 | 中高(需要 Zep 服务) |
| 「适用阶段」 | Demo / 学习 | 生产推荐 | 对记忆质量要求高的产品 |
「我的建议」:
- 「学习阶段」
:先用经典 Memory 理解概念,再切 LangGraph
- 「生产项目(基础)」
:LangGraph Checkpointer + Store,灵活度够用
- 「生产项目(高阶)」
:LangGraph + Zep,让 Zep 管长期记忆,LangGraph 管工作流
- 「对话密集型产品」
(如 AI 客服、AI 陪伴):直接上 Zep,它在这个场景下 ROI 最高
避坑指南
1. 上下文窗口溢出
不管用哪种方案,最终都会把记忆塞进 LLM 的 Prompt。一旦超出模型的上下文窗口(比如 GPT-4o 是 128K Token),就会报错或被截断。
「解法」:用 SummaryBufferMemory 或 Zep 控制 Token 量;如果自己管消息列表,发送前用js-tiktoken算一下总 Token 数,超过阈值就触发压缩或截断。
2. 记忆污染
如果 Agent 把错误的信息存进了长期记忆(比如 LLM 幻觉生成了错误事实),后续对话都会受影响。
「解法」:
- 长期记忆的写入加人工审核或置信度过滤
- 给记忆加时间戳和来源标记,方便追溯和清理
- 定期做记忆"垃圾回收"
3. 多用户数据串了
这是最容易犯的错——忘了隔离不同用户的记忆。
「解法」:LangGraph 里严格用thread_id区分会话、namespace 区分用户;Zep 里用userId+sessionId组合。在调用入口加一层参数校验,强制要求传user_id,杜绝漏传。
4. 冷启动问题
新用户第一次来,Agent 对他一无所知。
「解法」:
- 在第一轮对话中主动收集关键信息(“请问你主要做什么方向的开发?”)
- 如果有用户画像数据(从业务系统导入),提前写入长期记忆
- 设置合理的默认记忆(“如果不确定用户背景,按中级前端开发者回答”)
5. 记忆检索不准
Store 里存了一堆信息,但 Agent 检索不到想要的。
「解法」:
- 给记忆加 metadata(标签、分类),方便过滤
- 用向量搜索代替精确匹配
- Zep 的知识图谱在这方面表现最好——它用语义 + 图结构 + 时间三重过滤
总结
Agent 的记忆系统,说白了就是解决三个层次的问题:
- 「当前对话不失忆」
→ 短期记忆(Checkpointer / BufferMemory)
- 「跨对话还记得你」
→ 长期记忆(Store / Zep 知识图谱)
- 「多用户不串数据」
→ 隔离机制(thread_id / namespace / userId)
从简单到复杂,技术方案的演进路径是:
数组手动管理(上篇的 chatHistory) → 经典 Memory 抽象(BufferMemory 系列) → LangGraph Checkpointer + Store(当前推荐) → Zep 时序知识图谱(高阶选择)如果你跟着上一篇搭了第一个 Agent,现在可以给它加上记忆试试。推荐直接从 LangGraph 方案开始——代码量不比经典 Memory 多多少,但能力和灵活度高一个档次。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包:
- ✅ 从零到一的 AI 学习路径图
- ✅ 大模型调优实战手册(附医疗/金融等大厂真实案例)
- ✅ 百度/阿里专家闭门录播课
- ✅ 大模型当下最新行业报告
- ✅ 真实大厂面试真题
- ✅ 2026 最新岗位需求图谱
所有资料 ⚡️ ,朋友们如果有需要《AI大模型入门+进阶学习资源包》,下方扫码获取~
① 全套AI大模型应用开发视频教程
(包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点)
② 大模型系统化学习路线
作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!
③ 大模型学习书籍&文档
学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。
④ AI大模型最新行业报告
2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
⑤ 大模型项目实战&配套源码
学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。
⑥ 大模型大厂面试真题
面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
以上资料如何领取?
为什么大家都在学大模型?
最近科技巨头英特尔宣布裁员2万人,传统岗位不断缩减,但AI相关技术岗疯狂扩招,有3-5年经验,大厂薪资就能给到50K*20薪!
不出1年,“有AI项目经验”将成为投递简历的门槛。
风口之下,与其像“温水煮青蛙”一样坐等被行业淘汰,不如先人一步,掌握AI大模型原理+应用技术+项目实操经验,“顺风”翻盘!
这些资料真的有用吗?
这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。