资讯动态

Agent 的两种记忆:短期记忆和长期记忆,七个维度一次分清

发布时间:2026/10/3 7:11:52 来源:尧图企业网站定制
短期记忆和长期记忆之前各写过一篇《Agent 的短期记忆三种 checkpointer 和一个 thread_id》讲单次会话内的记忆怎么存《Agent 的长期记忆一个 Store装下跨会话的信息》讲跨会话的记忆交给谁管。各自单看都好理解放到一起两者的区别就容易混。这篇把两种记忆放进同一张表按七个维度对着比。先看总表对比维度短期记忆长期记忆作用域线程或者会话级别与单个会话绑定跨线程、跨会话存在命名空间里核心目标保证单次对话的连贯和上下文感知跨会话的个性化、信息积累主要存储内容对话原始历史和会话状态要跨会话复用的信息管理组件checkpointerStore生命周期留多久由 checkpointer 决定独立于线程留多久由 Store 决定访问方式配置后自动管理手动读写应用场景维持聊天上下文保存跨会话复用的信息表格先放在这下面逐个维度展开。作用域一个会话之内和跨会话短期记忆是线程或者会话级别的记忆跟单个会话的线程绑在一起。长期记忆不一样它是跨线程、跨会话的它存在自定义的命名空间里可以被多个线程共享。短期记忆管连贯长期记忆管积累短期记忆要保证的是单次对话的连贯和上下文感知。同一个会话里连着问好几个问题回答会参考之前聊过的内容在那个基础之上接着答。平时用聊天模型应该能体会到这一点。长期记忆承担的是另一件事跨会话的个性化和信息积累。它保存的是用户在多个会话里都能访问到的共享数据比如用户偏好关键的历史信息等等。存的东西也不一样短期记忆存的主要是对话的原始历史。一个会话里的消息分四种系统消息system、AI 消息AI、工具消息tool、用户消息human。存下来的就是 messages 列表再加上这个会话的一些状态数据。长期记忆存的是要跨会话复用的信息。比如用户的偏好、行为的经验、优化的规则。checkpointer 管短期Store 管长期短期记忆用的是 checkpointer除了常用的 InMemorySaver也能换成数据库后端来做存储。长期记忆交给 Store 管。常见的有 InMemoryStore 和 PostgresStore一个把数据放在内存里一个背后是 PostgreSQL 数据库。这些都是常见的实现具体用哪种按项目对持久化的要求来选。生命周期数据能留多久短期记忆能留多久取决于 checkpointer 用的是内存还是数据库内存版的进程结束数据就没了数据库版的能长期留着。长期记忆独立于任何特定的线程不设过期时间的话它会一直保存具体留多久由 Store 的配置决定。访问方式一边自动一边手动配好 checkpointer 之后短期记忆是自动管理的。Agent 的状态在每个步骤之后自动持久化到检查点下次访问的时候自动恢复。长期记忆必须手动控制。要在应用逻辑里通过代码显式调用store.put和store.get。store.put负责写store.get负责读。什么场景用哪种短期记忆适合维持聊天上下文让 Agent 记住用户在当前对话里刚刚说过的话。长期记忆用来保存用户的身份、偏好、行为这类要跨会话复用的信息。实际的 Agent 场景可能比这张表总结的这些复杂得多。日常用的时候按公司的要求或者项目的需求选合适的组件就可以。用起来本身不复杂关键是把概念理解到位知道在什么场景下该用哪种记忆。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑