这篇适合谁,读完能做到什么
适合已经用 LangChain 搭过智能体、希望它在不同对话和会话之间记住信息的开发者。读完你应该能分清短期记忆和长期记忆,知道 LangGraph store 怎么组织数据,能把 store 传给智能体并让工具读写它,并会安装 PostgreSQL 后端所需的依赖。
长期记忆和短期记忆有什么不同
长期记忆让智能体跨会话保存和回忆信息[1]。短期记忆只限于单个线程(thread),长期记忆则跨线程持久存在,随时可以调取[1]。
底层是 LangGraph store
长期记忆建立在 LangGraph store 之上。store 把数据保存为 JSON 文档,并按命名空间(namespace)和键(key)组织[1]。命名空间像文件夹,键像文件名。常见做法是用用户 ID、组织 ID 或其他标签作为命名空间,方便整理和查找[1]。
命名空间可以分层。跨命名空间的搜索通过内容过滤器(content filter)实现[1]。
短期记忆和长期记忆怎么分工
短期记忆的作用范围是单个线程。同一个线程里的对话可以接着用,换一个线程就看不到了[1]。长期记忆则跨线程保存,任何时候都能调取,适合放那些需要在多次对话之间保留的信息[1]。
两者可以同时使用:当前对话的上下文留在线程里,需要长期保留的内容写进 store。具体哪些信息该放进长期记忆,要看你的应用需要记住什么,这一点没有统一答案。
命名空间和键怎么取
store 里的每条记忆都放在一个自定义的命名空间下,并有一个独立的键。命名空间像文件夹,键像文件名,两者组合起来就能定位一条记忆[1]。
很多应用会把用户 ID 或组织 ID 放进命名空间,这样不同用户的记忆天然分开,也方便按用户整理[1]。命名空间还可以分层。要跨命名空间查找时,通过内容过滤器来筛选结果[1]。
怎么给智能体加上记忆
第一步是创建一个 store,然后把它传给 create_agent[1]。工具通过 runtime.store 参数读写 store[1]。这里涉及两种存储选项:InMemoryStore 和 PostgreSQL[1]。
用 PostgreSQL 时要装什么
用 pip 安装时,命令如下:
pip install -U langgraph-checkpoint-postgres "psycopg[binary]"用 uv 管理项目依赖时:
uv add langgraph-checkpoint-postgres "psycopg[binary]"默认安装的 langgraph-checkpoint-postgres 会带上 psycopg(Psycopg 3),但不带扩展。上面的命令额外加上了 psycopg[binary],多数用户推荐这样装[1]。其他安装选项可以查阅 Psycopg 官方安装文档[1]。
JavaScript 项目则用 npm:
npm install @langchain/langgraph-checkpoint-postgres其他存储后端
Redis、MongoDB 等其他存储后端,可以在 store 集成列表里找到[1]。如果要用 MongoDB,还有一篇单独的长期记忆示例[1]。
记忆的类型和写入策略
语义记忆(semantic)、情景记忆(episodic)和程序记忆(procedural)是几种常见的记忆类型。它们的详细讨论,以及写入记忆的策略,见记忆概念指南[1]。store 本身的持久化细节,可以参考 LangGraph stores 的持久化指南[1]。
下一步
想继续深入,可以先读 LangGraph store 的持久化指南,再按自己的后端选择集成,接着按上面的分组示例在工具里接入读写[1]。
本文改编自 LangChain 官方文档中的「Long-term memory」页面[1],原文以 MIT 许可证发布。
来源
- 1Long-term memoryLangChain docs (MIT)
引用本页: LangChain 长期记忆. TellWorld, https://www.tellworld.net/zh/practice/practice-langchain-long-term-memory. 更新于 2026-11-14