LangGraph 智能体记忆机制深度解析:Checkpointer、Pre-Hook 与长短记忆实战逻辑
摘要: LangGraph原生支持大模型智能体的长短期记忆管理,开发者无需自研底层架构。短期记忆通过Checkpointer(自动存储对话状态)和Pre-Hook(加载与预处理历史上下文)实现闭环,支持两种上下文瘦身方案:trim_messages(截断老旧消息)和summarization_node(LLM生成摘要保留关键信息)。长期记忆通过标准Store接口对接Redis等数据库实现跨会话持久
前言
在基于 LangGraph 搭建大模型智能体、多轮对话应用时,记忆系统是核心刚需。很多开发者疑惑:用 LangGraph 还需要从零自研长短期记忆架构吗?Pre-Hook、Checkpointer 各自承担什么角色?消息截断、对话摘要又该如何嵌入记忆流程?
本文系统拆解 LangGraph 原生记忆底层逻辑,厘清核心组件分工、两种上下文瘦身模式、完整对话记忆流转流程,帮你彻底吃透 LangGraph 记忆体系,告别重复造轮子。
一、核心定论:LangGraph 可省略自研记忆系统
LangGraph 原生封装了短期多轮对话记忆与长期跨会话记忆能力,开发者无需从零搭建记忆存储、加载、上下文管理架构:
- 同会话多轮短期记忆:框架开箱即用,仅配置检查点即可自动维系对话上下文;
- 跨会话长期记忆:官方提供标准 Store 接口,对接 Redis、MongoDB 等数据库即可快速落地;
- 上下文超长瘦身:原生支持
trim_messages截断、summarization_node摘要两种主流方案,通过 Pre-Hook 无缝嵌入执行流程。
只需聚焦业务智能体逻辑,底层记忆读写、持久化、上下文裁剪全由框架托管。
二、两大核心组件:Pre-Hook 与 Checkpointer 分工
1. Checkpointer:短期记忆专属「存储仓库」
Checkpointer 是 LangGraph 短期记忆的持久化写入核心,核心职责:
- 智能体每轮执行完毕后,自动将当前对话状态、消息历史、上下文数据进行保存;
- 支持多存储适配:开发环境用
InMemorySaver内存存储,生产环境无缝切换 SQLite、PostgreSQL 等持久化存储; - 依托
thread_id作为会话唯一标识,隔离不同用户、不同会话的记忆数据。
简单理解:Checkpointer 只负责「存」,是记忆的持久化容器。
2. Pre-Hook:短期记忆专属「加载处理器」
Pre-Hook(你提及的 pre_mode_hook 为场景化俗称)是每轮智能体执行前置钩子,核心职责:
- 每次调用智能体前,根据
thread_id从 Checkpointer 中读取加载历史对话记忆; - 加载记忆后,执行上下文预处理:消息截断或对话摘要,解决上下文超长、Token 溢出问题;
- 把处理后的干净上下文注入智能体状态,保障多轮对话无缝接续。
简单理解:Pre-Hook 只负责「读 + 预处理」,是记忆的加载与瘦身入口。
3 记忆基础流转闭环
plaintext
用户输入消息
→ Pre-Hook 加载历史记忆 + 预处理瘦身
→ 智能体核心业务节点执行
→ 执行结束 Checkpointer 自动保存最新对话状态
三、Pre-Hook 两大上下文处理模式
当多轮对话累积消息过多,超出 LLM 上下文窗口限制时,Pre-Hook 支持两种成熟的记忆瘦身模式,可按需选型。
模式一:trim_messages 消息截断模式
核心原理
采用固定规则截断,保留最近指定条数、指定 Token 阈值的对话消息,老旧消息直接丢弃。
优缺点
- 优点:逻辑简单、执行速度快、无额外 LLM 调用成本;
- 缺点:会丢失早期对话关键信息,适合简单闲聊、轻量化对话智能体。
适用场景
客服问答、普通多轮闲聊、低延迟刚需的轻量智能体。
模式二:summarization_node 对话摘要模式
核心原理
不直接丢弃老旧消息,调用 LLM 对历史对话进行浓缩摘要,最终只保留「历史摘要 + 最新几轮实时消息」。
优缺点
- 优点:最大限度保留全局对话信息,节省 Token 同时不丢失关键上下文;
- 缺点:需要额外调用 LLM 生成摘要,有少量耗时与 Token 消耗。
适用场景
专业问答、任务型智能体、长流程业务对话、需要长期上下文关联的场景。
四、LangGraph 长短期记忆完整定位
-
短期记忆依托
Checkpointer + Pre-Hook组合,基于thread_id实现同一会话多轮上下文自动读写、持久化、预处理,全程无需手动管理消息列表。 -
长期记忆基于 LangGraph 原生
Store接口,实现跨会话、跨设备、跨时间的用户记忆沉淀(用户偏好、个人信息、历史业务记录等),支持 InMemoryStore、RedisStore、MongoDBStore 等快速接入,只需实现基础配置即可使用,无需自研存储检索逻辑。
五、什么时候需要自定义开发?
绝大多数业务场景用原生能力即可,仅以下情况需少量定制,不用重构整套记忆系统:
- 自定义消息裁剪规则:按业务场景定制保留策略、过滤无效系统消息;
- 定制摘要逻辑:指定摘要风格、只摘要特定类型对话内容;
- 适配自研存储:实现 LangGraph 标准 BaseStore 接口,对接自有数据库;
- 记忆去重与合并:对用户重复偏好、历史记录做自动合并优化。
六、总结
- LangGraph 原生完备记忆能力,无需自研长短期记忆架构,避免重复造轮子;
- 分工明确:Checkpointer 负责存储写入,Pre-Hook 负责加载与预处理;
- Pre-Hook 内置两种核心瘦身方案:
trim_messages简单截断、summarization_nodeLLM 摘要,适配不同业务场景; - 短期记忆靠「Checkpointer+Pre-Hook」闭环,长期记忆靠框架 Store 接口快速落地,开发者只需专注智能体业务逻辑。
-
pre_hook 管读和瘦身,checkpointer 管存和持久。瘦身两种:截断 trim,摘要 summarization。
更多推荐




所有评论(0)