LangChain记忆管理:构建智能体连续性的关键技术(值得收藏)

文章介绍了LangChain框架中的记忆治理机制,分为短期记忆和长期记忆两层。短期记忆基于Thread和Checkpointer维持单次会话连贯性;长期记忆通过Store接口实现跨会话用户偏好沉淀。文章通过代码示例展示两种记忆实现方式,强调记忆治理是智能体从"玩具"走向"生产力工具"的关键,需平衡连贯性、个性化和可持续性。


01 前言

在上一篇的[LangChain 系列 | 上下文工程]中,我们探讨了如何在单次交互中为模型提供精准的信息。如果说上下文工程解决的是空间维度(当前输入的信息量与质量)的问题,那么记忆(Memory)解决的则是时间维度(跨越交互的连续性)的问题。

在当下,基础模型(Base Models)的上下文窗口虽然已经极大扩展,但“无限上下文”并不等于“无限智能”。在实战中,智能体往往因为缺乏对历史信息的有效索引而出现“断片”。

在 LangChain V1.0+ 的架构体系中,记忆治理被严格划分为两个层级:

1、****短期记忆(Short-term Memory):它的作用范围是会话级(Conversation-scoped),主要负责存储当前对话的消息、上传的文件、身份验证状态以及工具执行的结果。基于Thread, 保证单次会话的连贯性。

2、长期记忆(Long-term Memory):它的作用范围是跨会话(Cross-conversation),用于持久化存储用户的偏好、提取出的深度洞察、历史数据以及长期的记忆片段。基于Store, 实现跨会话的用户偏好沉淀与知识管理。

注意: 短期记忆也是一种持久上下文,作用于某整个会话。

02 架构概览

框架通过将存储层(LangGraph实现)与计算层(LangChain实现)分离,建立了一套完整的数据治理体系,即如何根据存储层的数据,为计算层构建出“正确”的内容。

下图展示了运行时(Runtime)如何分别与短期记忆和长期记忆进行交互:

03 短期记忆

大多数 LLM 本质上是**无状态(Stateless)**的。LangGraph 实现短期记忆的方式,是构建一个有状态的系统(Stateful System)。这套机制由三个核心要素组成:

1、Thread (线程):类似于 Email 的会话 ID,用于隔离不同用户的对话。

2、State (状态):当前会话中累积的数据(Messages),随着每一步交互而更新。

3、Checkpointer (检查点):负责在每一步(Step)执行后,将 State 序列化并持久化到数据库。

工作流原理如下图所示:

一个示例:启用 Checkpointer 实现短期记忆

# pip install langgraph langchain-deepseek from langchain.agents import create_agent import os from langgraph.checkpoint.memory import InMemorySaver # 生产环境建议使用: from langgraph.checkpoint.postgres import PostgresSaver # 1. 初始化 Checkpointer (记忆后端) # InMemorySaver 仅用于测试,重启后数据会丢失 memory = InMemorySaver() os.environ["DEEPSEEK_API_KEY"] = "sk-..." # 2. 构建 Agent 时注入 checkpointer agent = create_agent( "deepseek-chat", tools=[], checkpointer=memory, ) # 3. 运行时配置 (Runtime Config) # 只要 thread_id 相同,Agent 就会自动加载之前的 State config_session_A = {"configurable": {"thread_id": "session_001"}} # 第一轮对话 print("--- Round 1 ---") agent.invoke( {"messages": [{"role": "user", "content": "你好,我是工程师 DJ"}]}, config_session_A ) # 第二轮对话 (Agent 会自动从内存恢复 "我是 DJ" 这个上下文) print("--- Round 2 ---") response = agent.invoke( {"messages": [{"role": "user", "content": "我的职业是什么?"}]}, config_session_A ) # 输出: 你的职业是架构师。 print(response["messages"][-1].content)

示例首先定义InMemorySaver,用于内存中存储短期记忆,生产环境通常使用PostgreSQL等数据库;然后通过create_agent创建Agent,并指定checkpointer;最后通过两轮agent的invoke调用,并指定同一个配置了thread_id的config。

最后输出如下:

--- Round 1 --- --- Round 2 --- 根据我们对话的开始,你提到过:**“我是工程师 DJ”**。 所以,你的职业是 **工程师**。

04 长期记忆

短期记忆的致命弱点在于:一旦thread\_id改变,或者历史记录被修剪(Trimming),信息就永久丢失了。

长期记忆(Long-term Memory)利用Store接口,允许智能体将关键信息从“对话流”中提取出来,存储到独立的数据库文档中。它使用 **Namespace(命名空间)**来隔离数据,结构类似于文件路径 (scope, identifier)。

跨会话交互原理如下图所示:

一个示例:工具读写实现长期记忆Store:

from langgraph.store.memory import InMemoryStore from langchain.tools import tool, ToolRuntime from langchain.agents import create_agent import os from pydantic import BaseModel # 初始化存储后端 (生产环境通常连接 Redis 或 PostgreSQL) store = InMemoryStore() # 这决定了工具中 runtime.context 能访问到哪些字段 classContext(BaseModel): user_id: str @tool defsave_user_preference(pref_detail: str, runtime: ToolRuntime): """ 保存用户偏好到长期记忆。 当用户提到“我喜欢...”或“我不吃...”时调用此工具。 """ # 1. 获取 Store 实例 current_store = runtime.store # 2. 从运行时上下文中安全获取 user_id (非用户输入,防注入) # 这需要在 invoke 时通过 configurable 传入 user_id = runtime.context.user_id # 3. 写入数据 # Namespace: 类似文件夹路径 ("users", "bob"),用于数据隔离 # Key: 文件名 "food_prefs" current_store.put( ("users", user_id), "food_prefs", {"detail": pref_detail, "updated_at": "2026-01-19"} ) return"已记录您的偏好。" @tool defget_user_info(runtime: ToolRuntime): """读取用户的历史偏好信息""" current_store = runtime.store user_id = runtime.context.user_id # 4. 读取数据 item = current_store.get(("users", user_id), "food_prefs") return item.value if item else"暂无该用户偏好记录" # 定义agent os.environ["DEEPSEEK_API_KEY"] = "sk-..." agent = create_agent( model="deepseek-chat", tools=[save_user_preference, get_user_info], store=store, # 注入长期记忆存储 context_schema=Context # 声明运行时上下文结构 ) user_context = Context(user_id="DJ_001") print("--round 1--") # 第一次交互:保存信息 agent.invoke( {"messages": [{"role": "user", "content": "记一下,我超级喜欢吃辣,尤其是川菜。"}]}, context=user_context ) print("--round 2--") # 第二次交互:跨会话/跨工具读取 result = agent.invoke( {"messages": [{"role": "user", "content": "我刚才说我喜欢吃什么来着?"}]}, context=user_context ) print(result["messages"][-1].content)

示例首先定义InMemoryStore,用于存储长期记忆,生产环境通常连接 Redis 或 PostgreSQL等;然后分别定义了两个可以操作长期记忆的工具;最后通过create_agent创建Agent,并指定tools、store和context_schema;通过两轮agent的invoke调用,并指定了同一个context。

最后输出如下:

根据记录,你之前提到过你**超级喜欢吃辣,尤其是川菜**!这是你在2026年1月19日分享的饮食偏好。 川菜确实很美味,像麻婆豆腐、水煮鱼、回锅肉这些经典川菜都很受欢迎。你最近有尝试什么新的川菜吗?

说明:长期记忆通常不直接暴露给 LLM 的 Context(太长且昂贵),而是通过 Tools 按需调用。

05 总结

记忆治理是 Agent 从“玩具”走向“生产力工具”的分水岭。在构建系统时,请遵循以下原则:

1. Checkpointer (短期记忆):解决“连贯性”,主要用于维持对话流(Flow)。

2. Store (长期记忆):解决“个性化”。用于持久存储知识(Knowledge)和偏好。

3. Middleware (治理):解决“可持续性”。防止记忆膨胀拖垮系统,通过自动总结和修剪保持上下文的精炼。

如何学习AI大模型?

如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!

这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!


第一阶段:从大模型系统设计入手,讲解大模型的主要方法;

第二阶段:在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段:大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段:大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段:大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段:以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段:以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

100套AI大模型商业化落地方案

大模型全套视频教程

200本大模型PDF书籍

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

LLM面试题合集

大模型产品经理资源合集

大模型项目实战合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1196375.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 之 Network

网卡从属关系bonding # 查看 bond0 的从属接口 ls -la /sys/class/net/bond0/# 查看 bonding_masters cat /sys/class/net/bonding_masters # 输出:bond0# 查看 bond0 的 slaves cat /sys/class/net/bond0/bonding/slaves # 输出:enp65s0f0np0 enp65s0f1…

Java程序员转行大模型开发全攻略:附CSDN独家学习资料包_大模型应用开发学习路线

本文为Java程序员转型大模型开发提供全面指南,涵盖基础知识学习、工具掌握、数学储备和项目实践四大步骤,并分析了Java程序员的独特优势。文章详细介绍了AI大模型时代的多种高薪岗位,如AI工程师、数据工程师等,提供了从初阶应用到…

破局Oracle迁移困局:破局Oracle迁移困局:直面兼容性与成本的隐性痛点

在企业数字化转型的深水区,数据库迁移早已超越了单纯的数据搬运,演变成一场涉及底层架构重构、业务逻辑适配与成本博弈的系统性工程。特别是在将核心业务系统从Oracle迁移至国产数据库(如KingbaseES)的过程中,项目团队…

从“会聊天“到“会办事“:AI Agent如何引领大模型新时代

AI Agent是能自主理解目标、规划步骤、调用工具并执行的智能系统,区别于普通AI工具的被动响应。它依靠大模型作为"大脑",具备规划力、记忆力和执行力,可应用于个人生活、企业运营和行业创新。未来AI Agent将更加主动,能…

2026必备!8个一键生成论文工具,MBA轻松搞定学术写作!

2026必备!8个一键生成论文工具,MBA轻松搞定学术写作! AI 工具助力论文写作,MBA 人不再焦虑 在当今快节奏的学术环境中,MBA 学生和研究者们面临着越来越高的写作压力。无论是开题报告、文献综述,还是最终的毕…

[mcp 工具传参]

Q: 他是如何传参的? 比如 我现在 weatherFun(location: str) 这里面 有 location ,如何传进去的 A: 这是 LLM(大语言模型)的核心魔法,也是 Agent 的基本工作原理。这个过程是全自动的,不需要你手动传参。 整个流…

从小白到专家:大模型中的Token Embedding完全解析

Token Embedding是大模型处理文本的核心技术,它将文本通过分词器切分为tokens并分配ID后,再将这些ID转换为高维向量。这一过程如同建立了一个从token ID到向量的查找表,使每个词在向量空间中获得坐标。Token Embedding不仅实现了文本的数值化…

草莓成熟情况检测数据集1662张VOC+YOLO格式

草莓成熟情况检测数据集1662张VOCYOLO格式 数据集格式:VOC格式YOLO格式 压缩包内含:3个文件夹,分别存储图片、xml、txt文件 JPEGImages文件夹中jpg图片总计:1662 Annotations文件夹中xml文件总计:1662 labels文件…

导师推荐9个AI论文平台,研究生高效写作必备!

导师推荐9个AI论文平台,研究生高效写作必备! AI 工具如何助力论文写作? 在当前研究生学习阶段,论文写作已成为一项不可避免的重要任务。无论是开题报告、文献综述,还是最终的毕业论文,都需要大量时间和精力…

告别查重焦虑!虎贲等考 AI 降重降 AIGC:学术写作的合规通关密码

论文查重率超标?AI 生成痕迹明显被预警?在学术规范日益严苛的今天,这两大难题成了无数毕业生和科研人的 “心头病”。不少人踩坑简易降重工具:要么同义词替换导致语义失真,要么机械改写破坏论文逻辑,甚至越…

2026中国十大童装品牌盘点

2026中国十大童装品牌盘点萌娃也要时尚出圈如今萌娃经济逐渐升温,家长们对童装的需求早已超越基础的遮体保暖,开始更多关注面料品质、设计合理性以及穿着舒适度。毕竟孩子的肌肤娇嫩,日常活动量又大,一件合适的童装…

告别学术 PPT 加班局!虎贲等考 AI PPT:10 分钟拿捏开题答辩硬核质感

还在为开题报告 PPT 逻辑混乱被导师打回?还在为论文答辩 PPT 数据堆砌抓不住重点?熬了三个通宵做的 PPT,却因排版丑、风格杂被吐槽 “不像学术汇报”?作为深耕论文写作科普的教育博主,我实测多款工具后发现&#xff0c…

番茄开花果实成熟情况检测数据集8036张VOC+YOLO格式

番茄开花果实成熟情况检测数据集8036张VOCYOLO格式数据集格式:VOC格式YOLO格式压缩包内含:3个文件夹,分别存储图片、xml、txt文件JPEGImages文件夹中jpg图片总计:8036Annotations文件夹中xml文件总计:8036labels文件夹…

一文读懂AI Agent协议栈:从MCP到UCP的层级关系与实战应用,告别“谁赢谁输“的误区

文章指出AI Agent协议不是竞争关系,而是协议栈的不同层级:MCP(工具连接)、A2A(Agent协作)、AG-UI(前端同步)、A2UI(生成UI)、AP2(支付)、UCP(商业逻辑)。开发者应按需引入层级,这种互补而非竞争的关系是Agent工程成熟的标志,解决了…

从软件开发到大模型工程师:我的零基础转行全攻略,非常详细收藏我这一篇就够了!

文章分享了作者从软件开发转行成为大模型应用工程师的成功经验。作为有开发经验的211硕士,作者因软件开发行业环境变化而选择转型AI大模型领域。通过三个月系统学习(基础→实战→项目),成功获得知名AI企业offer。作者详细分享了学…

海外短剧app开发源码h5,支持多语言多支付 付费模式广告模式

以下是关于开发支持多语言、多支付及混合盈利模式(付费广告)的海外短剧H5应用的关键技术方案和实现要点: 技术栈选择 前端框架推荐Vue.js或React,配合i18n实现多语言切换。后端可采用Node.js(Express/NestJS&#xf…

菠萝数据集634张VOC+YOLO格式

菠萝数据集634张VOCYOLO格式 数据集格式:VOC格式YOLO格式 压缩包内含:3个文件夹,分别存储图片、xml、txt文件 JPEGImages文件夹中jpg图片总计:634 Annotations文件夹中xml文件总计:634 labels文件夹中txt文件总计…

AI Agent全面解析:2026年AI圈新宠,从科研到企业的全场景应用

文章精选了15份全球顶尖机构AI Agent权威研报,涵盖技术架构、应用场景、市场趋势及安全治理。针对高校师生和职场人士,提供了从科研选题、技术开发到求职规划的全场景价值解析,展示了AI Agent如何自动拆解任务、组建虚拟团队,实现…

2026吐血整理!中国十大童装品牌大盘点

2026吐血整理!中国十大童装品牌大盘点开篇引入 家人们,每次带娃出门,是不是都觉得自己家宝贝穿得不够出彩,满心想着要是能有一身既好看又舒适的童装就好了?可真到了给孩子挑衣服的时候,那叫一个纠结。走进商场,…