创建时间: 2026-03-29最后更新: 2026-09-10

1. 两种记忆

上一篇文章使用 checkpointer + thread_id 让 Agent 记住同一段会话中的消息。这解决的是线程内的短期记忆:只要继续使用同一个 thread_id,下一轮就能恢复前面的消息。

但实际应用还会遇到两个问题:

  • 服务重启后,原来的会话能否继续
  • 用户开启新会话后,Agent 能否继续使用他的偏好和重要事实

第一个问题与checkpoint 存在哪里有关。把 checkpoint 放在数据库中,服务重启后才能恢复同一段会话。第二个问题与长期记忆如何跨线程共享有关,例如保存“用户偏好简短回答”或“用户正在学习 LangChain”。

LangGraph 为这两类数据提供了两个不同的抽象:

数据解决的问题抽象常用标识
短期状态当前线程之前发生了什么checkpointerthread_id
长期记忆用户跨线程需要保留什么storenamespace + key

这里有一个容易混淆的地方:长期记忆描述的是数据的使用范围,持久化描述的是数据的存储方式。InMemoryStore 可以保存跨线程数据,但进程结束后会丢失;PostgreSQL Store 可以同时满足跨线程使用和进程重启后恢复。

正在加载图示...
正在验证登录状态
请稍候,验证完成后将继续显示文章内容