当前位置: 首页 > news >正文

LangGraph的Agent长短时记忆的原理有什么区别,分别适用于什么业务场景

 

LangGraph 基于 状态存储与复用机制Checkpoint、Store 接口)实现的 “短期临时记忆” 与 “长期持久记忆”,核心区别在于 记忆的生命周期、复用范围与存储载体。二者通过工程化设计,分别解决 “单流程内临时复用” 和 “跨流程 / 跨会话持久复用” 的问题,以下从原理区别和适用场景展开解析:

一、先澄清:LangGraph 长短时记忆的本质

LangGraph 不依赖神经网络的时序记忆逻辑,而是通过 “状态分层存储” 实现 “短时” 与 “长时” 记忆:

  • 短时记忆:基于 Thread 内的 Checkpoint 实现,仅在单个流程(Thread)的生命周期内有效,流程结束(Thread 终止)则记忆丢失;
  • 长时记忆:基于 Store 接口 实现,记忆独立于单个流程,可持久化存储(如数据库),支持跨会话、跨流程复用

二者的核心差异是 “记忆是否突破 Thread 边界”,而非算法层面的 “短期遗忘 / 长期保留” 逻辑。

二、长短时记忆的原理区别

从 存储载体、生命周期、数据范围、复用方式、触发机制 五个维度,可清晰区分二者原理:

对比维度短时记忆(Short-Term Memory)长时记忆(Long-Term Memory)
存储载体Saver接口(如 InMemorySaver)。绑定单个 Thread 的 Checkpoint(StateSnapshot)→ 数据存于 Checkpoint 的 values 字段(如 messagesprogressStore 接口→ 数据存于 Store(如 InMemoryStore、PostgresStore),需手动定义 “命名空间”(如 (user_id, "preferences")
生命周期

与 Thread 完全绑定:

- Thread 创建时开始,Thread 终止(流程结束)时销毁;

- 若 Thread 未持久化(如用 InMemorySaver),服务重启后也丢失

可灵活控制:

- 临时长期:存于内存 Store,服务重启丢失;

- 持久长期:存于数据库 Store(如 PostgresStore),永久保留

数据范围

仅覆盖当前 Thread 的 完整状态快照片段

- 包含流程中所有状态字段(如对话记录、步骤进度);

- 但仅限当前流程,无法跨 Thread 访问

仅存储 筛选后的关键信息(非完整状态):

- 如用户偏好(“喜欢户外”)、全局配置(“促销活动规则”);

- 可跨所有 Thread 访问,数据范围更广

复用方式

无需额外操作,直接读取当前 Thread 的 Checkpoint 历史:

- 例:state["messages"] 直接获取当前 Thread 内的所有对话记录;

- 仅需指定当前 Thread 的 thread_id

需手动 “存储 - 检索”:

1. 存储:从 Checkpoint 提取关键信息,调用 store.put(namespace, data) 保存;

2. 检索:调用 store.search(namespace, query) 读取(支持精确 / 语义检索)

触发机制

完全自动化

- LangGraph 在每个 super-step 自动保存 Checkpoint,无需开发者干预;

- 复用时有 LangGraph 自动关联当前 Thread 的 Checkpoint 历史

完全手动化

- 开发者需显式定义 “哪些信息存长期记忆”(如用户偏好)、“如何检索”(如按 user_id 筛选);

- 需手动处理存储格式、命名空间、检索逻辑

三、适用场景:基于 “复用范围” 精准选型

二者的场景差异本质是 “是否需要跨流程 / 跨会话复用记忆”—— 短时记忆解决 “单流程内临时复用”,长时记忆解决 “跨流程 / 跨会话持久复用”。

LangGraph 长短时记忆场景总结表

记忆类型核心场景场景描述原理支撑(技术依赖)典型示例
短时记忆单会话多轮对话用户与系统在 “同一会话”(如单次聊天窗口打开期间)交互,需记住历史对话内容,避免重复询问基础信息(如订单号、需求偏好)。基于单个 Thread 的 Checkpoint,自动保存对话记录到 Checkpoint 的 values 字段(如 messages),复用时分直接读取当前 Thread 的 Checkpoint 历史。用户 1:“查订单 12345 物流”→机器人回复;用户 2:“它现在到哪了?”→机器人读取 Checkpoint 中的订单号,直接调用物流 API,无需重复询问。
分步式任务指导流程分多步骤执行(如软件安装、表单填写、教程引导),后续步骤需获取 “当前进度”,避免用户重复执行已完成步骤。每个步骤完成后,Checkpoint 自动保存 “进度标识”(如 progress: 环境配置→安装依赖 )到 values 字段,重启流程时读取最新 Checkpoint 的进度值。软件安装流程:用户完成 “环境配置” 后关闭页面→重新进入时,流程读取 Checkpoint 进度,直接提示 “下一步:安装依赖(命令:pip install xxx)”,跳过已完成步骤。
单流程内中间结果缓存流程中某步骤生成耗时 / 资源密集型中间结果(如数据清洗结果、API 调用返回值),后续步骤需复用该结果,避免重复计算 / 调用。Checkpoint 自动保存中间结果到 values 字段(如 processed_data: 清洗后的用户行为日志 ),后续步骤直接从当前 Thread 的 Checkpoint 中读取,无需重跑前置步骤。100GB 用户日志处理流程:“读取→清洗→特征提取”→“清洗” 完成后 Checkpoint 保存清洗结果→“特征提取” 步骤直接读取该结果,无需重新读取 100GB 原始日志。
长时记忆用户跨会话偏好记忆用户在 “不同会话”(如今天聊天窗口、明天新窗口)与系统交互,需长期保留用户偏好(如购物兴趣、内容风格),避免每次会话重复询问。基于 Store 接口,在用户首次会话(Thread A)中从 Checkpoint 提取偏好,通过 store.put((user_id, "preferences"), 偏好值) 存储;后续会话(Thread B/C)通过 store.search((user_id, "preferences")) 检索复用。用户周一在电商 APP 标记 “喜欢户外装备”(Thread A 存 Store)→周五打开新会话(Thread B)→推荐模块从 Store 读取偏好,直接推荐户外帐篷,无需重复询问兴趣。
全局配置与规则共享多个独立流程(如客服对话、订单处理、商品展示)需共享 “全局配置 / 规则”(如企业客服电话、促销活动时间、合规条款),配置更新后所有流程同步生效。管理员通过 “配置管理流程”(Thread X)将配置写入 Store(store.put(("global", "config"), 配置值) );其他流程(Thread Y/Z)通过 Store 检索最新配置,无需单独维护。企业更新促销时间为 “11.11-11.15”(存 Store)→客服对话流程(回答 “促销时间”)、商品详情流程(显示 “促销倒计时”)均从 Store 读取该时间,确保信息统一。
多流程数据沉淀与复用多个流程需共享 “沉淀的业务数据”(如用户标签、历史订单统计、客户等级),避免每个流程重复调用核心系统或重新计算。数据生成流程(Thread X)从 Checkpoint 提取关键数据(如用户标签),通过 Store 按业务维度存储(store.put((user_id, "tags"), ["高价值客户"]) );其他流程(Thread Y/Z)检索复用该数据辅助决策。“用户标签生成流程” 计算出 “用户 001:高价值客户”(存 Store)→“订单优惠流程” 读取标签推送专属折扣,“客服优先级流程” 读取标签优先接入,无需重复计算用户等级。

四、核心区别总结与选型建议

维度短时记忆(Short-Term)长时记忆(Long-Term)
核心逻辑Thread 内自动管理,“用完即走”跨 Thread 手动管理,“持久沉淀”
复用边界仅限单个流程 / 会话跨流程、跨会话、甚至跨用户
开发成本零成本(LangGraph 自动处理)需手动定义存储 / 检索逻辑、命名空间
数据安全性Thread 结束即销毁,无需额外清理需考虑持久化安全(如加密、权限控制)

选型建议

  1. 若记忆仅在 “单个流程 / 会话” 内有用(如多轮对话、分步任务),优先用 短时记忆(依赖 Checkpoint,零开发成本);
  2. 若记忆需 “跨会话 / 跨流程” 复用(如用户偏好、全局配置),必须用 长时记忆(依赖 Store,需手动设计存储逻辑);
  3. 实际业务中常二者结合:例如 “多轮对话” 用短时记忆保存当前会话消息,“用户偏好” 用长时记忆保存跨会话兴趣,共同支撑智能决策。

推荐阅读

基于AI Agent的数据资产自动化治理实验

吃透大数据算法-算法地图(备用)

字节多Agent架构Aime—— 让多个 AI 像 “灵活团队” 一样干活的新系统

吃透大数据算法-百万商品库的 “闪电匹配”:HNSW 算法的电商实战故事

http://www.dtcms.com/a/537416.html

相关文章:

  • 定制网站开发的目的是什么做单位网站的公司吗
  • 做网站建立数据库自适应的网站模板
  • 路由硬盘做网站空间不中国城乡建中国城乡建设部网站
  • 电脑怎么做服务器 网站wordpress手机号网站
  • 跨境电商技术与运营双升级!亚马逊 / TikTok/Temu 本周新政解读,附卖家技术适配指南​
  • C++ 类的学习(七) 类的转换 和 嵌套类
  • C++进阶: 虚函数1-----继承中的灵魂
  • 软件协议使用应知应会
  • C语言进阶:深入探讨指针(一)
  • 网站备案 信息wordpress支付接口同步回调
  • 当 AI 开始书写历史:我们如何用 Gateone.ai 把“历史人物时间线”从学术幻想变成 SaaS 产品
  • 如何推广企业网站杭州物联网前十名公司
  • SQL Server
  • state machine diagrams用于需求分析阶段还是设计阶段
  • 【穿越Effective C++】Scott Meyers的《Effective C++》逻辑框架概要汇总--各条款是什么?为什么?怎么做?
  • 易旅游网站建设wap网站开发和自适应
  • 免费iOS加固方案指南
  • 登封快乐送餐在那个网站做的广告wordpress版本对应php版本
  • 云南网站建设一度科技网站团购活动页面怎么做
  • 电动自行车为何限速25公里每小时?——安全、法规与技术的平衡之道
  • 怎样用vs2017做网站长沙做网站要多少钱
  • 怎么学建设网站盐城企业建设网站
  • 长沙百度做网站多少钱wordpress页面模板目录文件
  • VLFM视觉语言基础模型使用指南
  • 口碑好的番禺网站建设开饰品店网站建设预算
  • 网站 设计 分辨率wordpress+制作首页模板下载
  • 手写 Vuex4 源码(下)
  • 《HTTPS 的灵魂:加密、认证与数字证书》
  • 电商网站产品模块手机网站推荐几个
  • 考研408——机组OS