news 2026/2/4 23:08:40

AI智能体拥有持久记忆:基于LangGraph的长短期记忆管理实践指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI智能体拥有持久记忆:基于LangGraph的长短期记忆管理实践指南

如何让AI智能体(Agent)像人类一样拥有持久的记忆,从而在复杂的连续任务中保持上下文感知和深度理解?这已成为构建高级智能体的核心挑战。本文将深入探讨Agent Memory的核心概念,并聚焦于LangGraph框架下的长短期记忆实现,详解短期会话与长期知识的存储、管理、语义检索等技巧。更进一步地,我们将通过一个引入MCP协议的实战案例,手把手带你构建一个真实的融合长记忆机制的Multi-Agent系统,直观展示中断、记忆与协作的融合。

基于大语言模型(LLM)的智能体(Agent)系统中,记忆机制是实现持续、连贯和个性化交互的核心基石,通过记忆,可以让Agent记住过往的交互,保持上下文的一致性,并能从反馈中学习,适应用户的偏好。

本文核心要点概述:

1.介绍Agent Memory的基本情况

2.LangGraph长短期记忆详解及案例说明:包含短期记忆实现、管理方法,长期记忆的实现方法,以及搭建了融合postgres数据库、集成Embedding服务进行语义搜索等可用于生产环境的真实案例。

3.引入MCP协议构建真实的Agent长记忆应用:搭建一个基于supervisor架构,集成中断机制、长短期记忆机制的multi-agent系统。

记忆机制介绍

Agent Memory是什么?

上图中(来源于Mem0[1]),左边是没有Memory的agent,右边是有Memory的agent,后者可以根据用户的过往信息(素食主义者、不喜欢乳制品)给出更合理的响应(不含乳制品的素食菜单),而前者的回答显然是不合适的。

简单来说,Memory是赋予Agent记忆能力的技术和架构,能够让Agent像人一样记住过去的交互、学到的知识、执行过的任务及未来的计划,是将一个LLM转变为能够执行复杂、长期任务的真正”智能体“的核心所在。

关于Agent Memory我们需要考虑什么?

如何获取记忆:通过和用户交互、环境交互...

怎么组织记忆:模型参数、模型上下文、数据库

怎么利用记忆:RAG、Few-shot...

有哪些Memory类型?

关于Memory的分类,有许多种分类体系,这里我们只讨论最常见及最易于理解的。

正如人类利用长短期记忆进行有效的交互和学习一样,Agent的记忆机制通常划分为短期记忆(short-term memory)和长期记忆(long-term memory),短期记忆决定了Agent在微观任务上的即时表现,而长期记忆则作为持久知识库,决定了Agent在宏观时间尺度上的智能深度和个性化水平,通过两者配合,Agent才能表现出连贯性、上下文感知能力,才会显得更智能。

Agent Memory如何工作?

Agent通常通过以下几步来有效地管理记忆,使得每次于用户的交互都更加精准智能:

  1. 记忆存储:通过设计一系列策略来存储重要的交互信息,这些信息可能来源于对话内容、历史数据或任务要求等等。

  2. 记忆更新:记忆会随着交互的发生,不断地进行更新,例如用户的偏好、最新的近况等等。记忆更新使得Agent能够不断优化其响应。

  3. 记忆检索:Agent根据当下的需求,去记忆中检索需要的记忆内容,从而提供更加智能的回复。

Agent Memory怎么实现?
  1. 物理外挂:即外置数据库和 RAG,需要检索当前query相关的内容,例如:Mem0、ACE。好处是即插即用,坏处是不够end-to-end

  2. Memory as Reasoning / Tool:通过训练Reasoning或Tool的方式动态更新context,例如:MemAgent、memory-R1。好处是更接近end-to-end,但不是很灵活。

  3. 参数更新:LLM本身就是一个Memory体,所有参数都是它的Memory,通过更新参数来更新记忆,这种方式是最本质的,但也是最难实现的。

LangGraph中的记忆管理

LangGraph[2]作为一款面向多智能体协作与状态管理的框架,其设计了巧妙的记忆管理系统,旨在为Agent提供在不同交互中存储、检索和利用信息的能力。它区分了两种主要的记忆类型:短期记忆和长期记忆。在实际使用中,通过这两种记忆协同,既能保障实时任务的高效执行,又支持了跨任务、跨周期的经验复用。

● short-term memory(通过Checkpointer实现):针对单个对话线程,核心价值在于保障对话的临时性,使得Agent能够跟踪会话中的多轮对话,可以在该线程内的任何时刻被回忆。

● long-term memory(通过Store实现):可以跨对话线程共享,可以在任何时间,任何线程中被回忆,而不像短期记忆局限于单个对话。

通过下表,可以更清晰的看到两者的区别:

LangGraph记忆的架构基础

要想更好的理解LangGraph中的记忆机制,首先需要理解其支持双轨记忆系统的核心概念。

Checkpointer

LangGraph有一个内置的持久化(Persistence)层,通过checkpointer实现,能够持久化存储图状态,这使得开发记忆功能和人类干预功能成为可能。

当使用检查点编译一个图时,检查点会在每个super-step保存图状态的checkpoint,这些checkpoint被保存到一个thread中,可以在图执行后访问。因为threads允许在执行后访问图的状态,所以可以实现记忆、人机协作、时间旅行、容错等多种强大的功能。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/2 23:59:12

java计算机毕业设计生物样本采集系统 基于SpringBoot的临床生物标本信息管理系统的设计与实现 面向医院检验科的生物样本库在线管理平台的设计与实现

计算机毕业设计生物样本采集系统g774o9 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。近年来,精准医疗与多中心科研合作快速升温,医院、实验室每天产生的…

作者头像 李华
网站建设 2026/2/4 16:33:18

Virtual DOM 的 Diff 算法演进:从 Vue 的双端比较到 React 的单端链表遍历

各位同学,大家好!今天我们来深入探讨前端框架中一个至关重要的核心技术:虚拟DOM的Diff算法。这个算法的效率高低,直接决定了我们应用渲染性能的上限。我们将沿着历史的脉络,对比分析Vue 2.x时代经典的双端比较算法&…

作者头像 李华
网站建设 2026/2/2 23:46:28

dify智能体平台性能压测报告:vLLM胜出

vLLM为何在dify智能体平台压测中胜出? 在构建现代AI应用的今天,一个核心挑战浮出水面:如何让大语言模型既快又稳地服务成千上万的并发用户?尤其是在像 dify智能体平台 这样需要支持多轮对话、长上下文记忆和实时响应的系统中&…

作者头像 李华
网站建设 2026/2/4 9:59:12

k8s-网络

Kubernetes (K8s) 网络解决方案是指在 Kubernetes 集群中实现容器网络通信的各种技术和工具。这些解决方案的设计目的是为了满足 Kubernetes 网络模型的要求,即:所有 Pod 都必须能够无需 NAT 就能互相通信。所有节点必须能够无需 NAT 就能与所有 Pod 通信…

作者头像 李华
网站建设 2026/2/3 0:26:43

刷视频赚钱

周末有个粉丝问我:独孤,我天天刷干货、学认知,为什么还是穷?我回他一句话:你不是在学习,你是在缓急焦虑。刷信息那一刻,你就已经站错了位置。成功的人,从不做信息的消费者。大多数人…

作者头像 李华
网站建设 2026/2/2 23:55:17

SQL Server 2008 R2中NVARCHAR(MAX)与NTEXT区别

在 SQL Server 2008 R2 中,NVARCHAR(MAX) 和 NTEXT 都用于存储 Unicode 文本数据,但存在重要区别:主要区别1. 版本支持NTEXT: 已过时,SQL Server 2005 及以后版本不推荐使用NVARCHAR(MAX): 推荐使用,是 NTEXT 的现代替…

作者头像 李华