上一篇讲了短期记忆(一次会话内的)。这一篇讲长期记忆——跨会话的记忆,也是 Phase 5 的收尾。
短期记忆会话结束就没了。但有些信息该跨会话持久:用户的长期偏好、历史交互的结论、积累的知识。换个会话、换个时间,Agent 还应该记得。这就是长期记忆。
长期记忆要解决什么
短期记忆的边界是「会话结束即过期」。但有些场景需要跨会话:
- 用户偏好:用户上次说过「我喜欢简洁回答」,这次新会话也该记得
- 历史结论:上周会话里得出的方案结论,这次该能引用
- 积累的知识:Agent 跨多次交互学到的经验
这些信息放在短期记忆(thread 内)不合适——会话结束就丢了。它们需要一个跨 thread 的、持久的存储。这就是 LangGraph Store。
LangGraph Store:跨会话的存储
LangGraph Store 是一个跨 thread 的持久存储。和 checkpointer(管 thread 内的短期记忆)不同,Store 管的是跨 thread 的长期信息。
| Checkpointer | Store | |
|---|---|---|
| 范围 | thread 内(会话内) | 跨 thread(跨会话) |
| 存什么 | 完整 state 快照 | 按需提取的长期信息 |
| 生命周期 | 会话结束可清 | 长期持久 |
Store 不是把整个会话存下来(那是 checkpointer 的活),而是有选择地存「值得长期记的信息」——比如「这个用户偏好简洁回答」。
长期记忆怎么用
长期记忆的使用也是「存 + 注入」的模式(和短期记忆一样的框架,第 35 篇):
存:Agent 在交互中,判断哪些信息值得长期记,写进 Store。比如用户表达了偏好,Agent 把「用户偏好简洁」存进 Store(按用户 ID 索引)。
注入:新会话开始时,beforeModel middleware 从 Store 取出这个用户的长期记忆,注入到 context。于是 Agent「记得」这个用户的偏好。
注意:长期记忆的注入是有选择的——不是把整个 Store 倒进 context(那会爆),而是取「和当前相关」的部分。这又回到第 22 篇的 Context Engineering——精准投放,不多塞。
长期记忆vs RAG:像不像
你可能觉得长期记忆听起来像 RAG——都是「按需取相关信息」。确实有相似:都是「从大量信息里取相关的塞进 context」。
区别在于信息来源和更新方式:
- RAG:从静态知识库取(文档加载进来的,相对固定)
- 长期记忆:从动态交互历史取(Agent 在交互中不断写入,持续演进)
有些实现甚至把长期记忆做成「向量化后存进 Store,用时语义检索」——本质上是用 RAG 的技术管理长期记忆。两者技术相通,但定位不同。
一个判断:不是所有 Agent 都需要长期记忆
长期记忆有成本:要维护 Store、要决定存什么、要管理注入。不是所有 Agent 都需要。
| Agent 类型 | 需要长期记忆吗 |
|---|---|
| 一次性问答(无用户体系) | 不需要 |
| 单会话助手(不需跨会话) | 不需要 |
| 个性化助手(记住用户偏好) | 需要 |
| 长期协作 Agent(积累经验) | 需要 |
判断标准:这个 Agent 要不要「跨会话地记住特定用户/特定上下文」。要,才上长期记忆;不要,短期记忆(checkpointer)就够。
收束:Phase 5 完成
这一篇讲完,Phase 5(Tools/MCP/记忆)就完成了。回顾这 6 篇:
- 32 工具调用:@tool 与 bind_tools
- 33 MCP 协议:跨应用共享
- 34 MCP 三能力:Tools/Resources/Prompts
- 35 记忆是什么:state + middleware
- 36 短期记忆:checkpointer 管会话
- 37 长期记忆:Store 跨会话
到这里,Agent 的「手」(工具)和「脑」(记忆)都讲完了。下一篇开始最后的 Phase 6——生产化收束:可观测、评估、部署,以及全系列总结。
关于十三Tech
我是十三,All in AI Agent 方向的架构师,专注 AI 工程实践。我相信 AI 是程序员的最佳搭档。
如果你想跟完这套「图解 LangChain」,欢迎关注公众号 「十三Tech」。全系列 42 篇,会按认识基础、LangGraph 状态机、Agent 与 middleware、RAG 检索、Tools/MCP/记忆、生产化收束这条线更新。

