前言

在基于 LangGraph 搭建大模型智能体、多轮对话应用时,记忆系统是核心刚需。很多开发者疑惑:用 LangGraph 还需要从零自研长短期记忆架构吗?Pre-Hook、Checkpointer 各自承担什么角色?消息截断、对话摘要又该如何嵌入记忆流程?

本文系统拆解 LangGraph 原生记忆底层逻辑,厘清核心组件分工、两种上下文瘦身模式、完整对话记忆流转流程,帮你彻底吃透 LangGraph 记忆体系,告别重复造轮子。

一、核心定论:LangGraph 可省略自研记忆系统

LangGraph 原生封装了短期多轮对话记忆长期跨会话记忆能力,开发者无需从零搭建记忆存储、加载、上下文管理架构

  1. 同会话多轮短期记忆:框架开箱即用,仅配置检查点即可自动维系对话上下文;
  2. 跨会话长期记忆:官方提供标准 Store 接口,对接 Redis、MongoDB 等数据库即可快速落地;
  3. 上下文超长瘦身:原生支持 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 长短期记忆完整定位

  1. 短期记忆依托 Checkpointer + Pre-Hook 组合,基于 thread_id 实现同一会话多轮上下文自动读写、持久化、预处理,全程无需手动管理消息列表。

  2. 长期记忆基于 LangGraph 原生 Store 接口,实现跨会话、跨设备、跨时间的用户记忆沉淀(用户偏好、个人信息、历史业务记录等),支持 InMemoryStore、RedisStore、MongoDBStore 等快速接入,只需实现基础配置即可使用,无需自研存储检索逻辑。

五、什么时候需要自定义开发?

绝大多数业务场景用原生能力即可,仅以下情况需少量定制,不用重构整套记忆系统

  1. 自定义消息裁剪规则:按业务场景定制保留策略、过滤无效系统消息;
  2. 定制摘要逻辑:指定摘要风格、只摘要特定类型对话内容;
  3. 适配自研存储:实现 LangGraph 标准 BaseStore 接口,对接自有数据库;
  4. 记忆去重与合并:对用户重复偏好、历史记录做自动合并优化。

六、总结

  1. LangGraph 原生完备记忆能力,无需自研长短期记忆架构,避免重复造轮子;
  2. 分工明确:Checkpointer 负责存储写入,Pre-Hook 负责加载与预处理
  3. Pre-Hook 内置两种核心瘦身方案:trim_messages 简单截断、summarization_node LLM 摘要,适配不同业务场景;
  4. 短期记忆靠「Checkpointer+Pre-Hook」闭环,长期记忆靠框架 Store 接口快速落地,开发者只需专注智能体业务逻辑。
  5. pre_hook 管读和瘦身,checkpointer 管存和持久。瘦身两种:截断 trim,摘要 summarization。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐