尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
LangGraph智能体与长期记忆
LangGraph 智能体与长期记忆从无状态对话到有记忆的协作者摘要本文基于 DeepLearning.AI《LangGraph 中的 AI 代理》与《基于 LangGraph 的长期代理记忆》两门课程实践拆解 LangGraph 智能体的三大核心机制StateGraph 状态流、自定义 reducer 与检查点Checkpointing、语义记忆与程序性记忆。通过邮件助手从分类→起草→记住用户细节的演进路径展示如何让 Agent 拥有跨会话的长期记忆能力。适合正在构建 Agent 应用、需要处理多轮状态与记忆的开发者。1. 为什么 Agent 需要记忆大多数 LLM 应用是无状态的每次调用都是独立会话上下文必须显式传入。但真实业务场景要求 Agent 具备两类记忆短期记忆工作记忆单个会话内的状态流转如多轮对话、工具调用结果长期记忆跨会话记住用户偏好、历史决策、业务上下文下次会话仍可复用LangGraph 把这个问题抽象为两个核心原语StateGraph状态图Checkpointer检查点外加基于消息存储的语义记忆。2. StateGraph把 Agent 变成状态机LangGraph 的核心思想是把 Agent 流程建模为有向状态图fromlanggraph.graphimportStateGraph,ENDfromtypingimportTypedDict,Annotatedimportoperator# 定义状态结构classAgentState(TypedDict):messages:Annotated[list,operator.add]# 消息列表默认追加graphStateGraph(AgentState)2.1 踩坑 1默认 reducer 只追加不替换课程明确指出一个关键陷阱messages状态键用默认的operator.add或reducer总是把新消息追加到数组末尾。当你想替换某条消息如修正一条 AI 回复时需要自定义 reducerdefreplace_or_append(left,right):按 id 替换已有消息否则追加ifnotleft:returnright message_idright[0].idifany(m.idmessage_idforminleft):return[mforminleftifm.id!message_id]rightreturnleftrightclassAgentState(TypedDict):messages:Annotated[list,replace_or_append]这在实现AI 自主修正自己或人工介入修改回复时是刚需。3. 检查点Human-in-the-Loop 的基础设施LangGraph 的检查点Checkpointing机制把每一次状态转换都持久化下来这是实现**人在回路Human-in-the-Loop**的基础fromlanggraph.checkpoint.sqliteimportSqliteSaver memorySqliteSaver.from_conn_string(:memory:)# 在编译图时传入 checkpointerappgraph.compile(checkpointermemory)# 用 thread_id 区分会话config{configurable:{thread_id:1}}3.1 新版 LangGraph 的两个关键变化课程提醒较新版本与拍摄时版本有两处差异额外状态信息会存储到内存并在get_state()/get_state_history()时展示状态在每次状态转换时存储旧版只在 interrupt 或结束时存储这些变化让状态历史更完整但也会让输出略有不同——注意版本差异导致的运行结果变化。4. 长期记忆邮件助手演进案例《长期代理记忆》课程以邮件助手为主线展示了记忆能力的逐步叠加4.1 阶段一无记忆的邮件助手对来信分类回复 / 忽略 / 通知起草回复安排会议4.2 阶段二加入语义记忆Semantic Memory关键改进助手能记住之前邮件中的细节。实现上采用语义记忆——把用户与助手的交互沉淀为可检索的记忆条目# 语义记忆的核心思路# 1. 定义 memory 工具写入记忆条目# 2. 定义 recall 工具检索相关记忆# 3. Agent 在对话前先 recall 相关记忆再决定如何响应tools[write_memory,recall_memory]这样当用户说我上次说过我们 3 月要发布新版本助手能检索到历史记忆并理解上下文而不是重新询问。4.3 长期记忆的类型划分课程区分了几类长期记忆各有适用场景记忆类型内容存储方式典型场景语义记忆事实性知识向量库/键值存储用户偏好、业务事实程序性记忆流程/技能代码/工具定义业务操作规范情景记忆历史事件序列时间线存储会话回放、审计5. 可复现实验带记忆的邮件助手课程配套代码lesson_3给出了完整路径importosfromdotenvimportload_dotenv _load_dotenv()# 加载第三方 API token# 1. 构建邮件助手图分类/起草/安排会议# 2. 添加 memory 工具与 recall 工具# 3. 用 SqliteSaver 持久化会话状态# 4. 多轮对话验证记忆能力6. 深度洞察与踩坑汇总洞察一检查点是认知脚手架而非单纯容错。每次状态转换可追溯回滚不只是技术操作更是对提示质量、上下文完整性、问题拆解合理性的即时复盘。洞察二长期记忆要区分事实与流程。语义记忆解决它知道什么程序性记忆解决它知道怎么做。把业务流程硬塞进语义记忆会导致检索混乱。洞察三会话隔离thread_id是生产环境必配。不同用户、不同任务的对话必须用独立 thread_id否则记忆会串线。坑表现解法默认 reducer 只追加无法替换/修正消息自定义按 id 去重 reducer版本差异运行结果与课程不一致关注 checkpoint 存储时机差异无 thread_id多用户记忆串线按会话/用户隔离记忆无限膨胀检索噪声增大记忆条目去重 时效管理LLM 输出不确定性每次结果不同复现时固定温度/种子7. 总结一句话总结LangGraph 把 Agent 的记忆能力工程化为状态图 检查点 语义记忆三件套——短期记忆靠 StateGraph 流转跨会话记忆靠 Checkpointer 持久化长期知识靠 Semantic Memory 检索三者叠加才构成真正的有记忆的协作者。互动收尾你的 Agent 应用目前处理到哪一层记忆是无状态、会话内状态、还是跨会话长期记忆在实现记忆时踩过哪些坑记忆污染、检索噪声、存储膨胀评论区分享你的方案我们下一期拆解记忆的检索策略。本文基于 DeepLearning.AI 课程学习实验代码步骤可复现。
RELATED

相关推荐

Java聊天系统设计与实现:Socket多线程并发编程实战

Java聊天系统设计与实现:Socket多线程并发编程实战

简介:面向需要学习 Java 网络编程、完成课程设计或毕业设计的开发者,这一基于 Java 的聊天系统设计与实现资源提供了从客户端到服务器端的完整方案。资源包大小约 518KB,内含源代码、系统运行截图、项目报告和使用说明文档,覆盖用…

📅 2026/9/11 18:10:34
DouK-Downloader 完整教程:三步快速批量下载抖音和 TikTok 作品

DouK-Downloader 完整教程:三步快速批量下载抖音和 TikTok 作品

DouK-Downloader 完整教程:三步快速批量下载抖音和 TikTok 作品 【免费下载链接】TikTokDownloader 抖音 / TikTok 平台作品下载/数据采集工具 项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader 从一个真实需求说起 假设你现在有个任务&…

📅 2026/9/11 18:10:34
Spring Boot外卖点餐系统实战:角色权限、订单状态机与部署排错全解析

Spring Boot外卖点餐系统实战:角色权限、订单状态机与部署排错全解析

简介:这是一份面向毕业设计场景的Spring Boot外卖点餐系统完整项目,适合计算机相关专业学生用于课程设计、毕业设计或项目答辩参考。后台采用Spring Boot框架,前端页面使用Vue,数据库为MySQL,运行环境JDK1.8&#xff0…

📅 2026/9/11 18:10:34
MORE NEWS

更多资讯

📰

STM32F405ZG与AD5293数字电位器实现工业自动校准方案

做仪表、传感器变送器或者工业板卡的朋友,八成都有过半夜还在车间里拿螺丝刀拧电位器的经历。每个批次元器件都有离散性,每块板子都要单独校准,校准完还得担心机械电位器用久了氧化、振动导致阻值漂移。后来我把整个方案换成了数字电位器&…

📰

“先做事,出错再处理”(使用 `try-except`),区别于传统的 LBYL(Look Before You Leap,先检查再执行)

一、 核心语言与底层机制模式 1. 迭代器与生成器模式 (Iterator & Generator) 核心考点:实现 __iter__ 和 __next__ 协议;使用 yield 关键字实现惰性计算(按需生成数据)。应用场景:分页浏览大型数据集、流式传输百…

📰

9Router 智能路由实战指南:三级自动回退、配额追踪与低成本 AI 编码方案

9Router 智能路由实战指南:三级自动回退、配额追踪与低成本 AI 编码方案 【免费下载链接】9router Unlimited FREE AI coding. Connect Claude Code, Codex, Cursor, Cline, Copilot, Antigravity to FREE Claude/GPT/Gemini via 40 providers. Auto-fallback, RTK …

📰

OpenProject 开源项目管理软件实战导读:免费自托管,甘特图与团队协作一次配齐

OpenProject 开源项目管理软件实战导读:免费自托管,甘特图与团队协作一次配齐 【免费下载链接】openproject OpenProject is the leading open source project management software for product, project and portfolio management. A powerful Jira alt…

📰

把团队配置锁进 umi 自定义模板:一条 umi create 生成新项目

把团队配置锁进 umi 自定义模板:一条 umi create 生成新项目 【免费下载链接】umi A framework in react community ✨ 项目地址: https://gitcode.com/GitHub_Trending/um/umi 上周又被要求"把老项目拷一份改改名"。第三次了,你还在手…

📰

Bilibook:Windows平台轻量级知识管理工具部署指南

1. Bilibook项目概述Bilibook是一个基于Windows平台的轻量级知识管理工具,专为中文用户设计。它采用本地化部署方案,无需复杂配置即可快速搭建个人知识库系统。作为一位长期使用各类笔记软件的资深用户,我发现Bilibook在以下场景特别实用&…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬