第8课:LangGraph Memory管理机制与实现方案 - 学习笔记
📚 课程核心主题
本节课讲解LangGraph中Memory管理的机制和实现方案,包括长期记忆的向量化存储、生产级AI Agent服务所需的核心能力、多智能体系统等高级主题。
🎯 第一部分:长期记忆的高级处理
长期记忆的向量化存储
为什么需要向量化?
问题:
- 长期保存的内容多了之后,检索效率会下降
- 需要从大量信息中快速找到相关内容
解决方案:向量化存储
是什么:
- 将文本信息转换为向量(Vector)
- 存储在向量数据库中
- 通过语义相似度检索相关信息
工作原理:
文本信息
↓
向量化(Embedding)
↓
存储到向量数据库
↓
检索时计算相似度
↓
返回最相关的信息
关键点:
- ✅ 向量化可以实现语义检索
- ✅ 比关键词检索更智能
- ✅ 可以理解语义相似性
长期记忆的其他处理方案
方案1:提取(Extraction)
- 从大量信息中提取关键信息
- 只存储重要的部分
方案2:总结(Summarization)
- 将多条信息总结成摘要
- 减少存储空间
方案3:图形化(Graph)
- 用图结构存储关系
- 适合存储实体之间的关系
关键理解:
- 不同的业务场景,使用不同的方案
- 可以组合使用多种方案
- 需要根据实际需求选择
🏗️ 第二部分:生产级AI Agent服务的核心能力
长期记忆结构不需要特殊设计
重要理解:
- ✅ 使用PostgreSQL或Redis时,不需要手动设计表结构
- ✅ LangGraph会自动创建相应的表结构
- ✅ 安装依赖包后,会自动实例化表结构
依赖包:
bash
# PostgreSQL
pip install langgraph-checkpoint-postgres
# Redis
pip install langgraph-checkpoint-redis
关键点:
- 框架已经帮我们设计好了
- 直接使用即可
- 不需要关心底层实现细节
生产级AI Agent的核心能力清单
作为一个生产级的AI Agent服务,需要具备以下核心能力:
1. ReAct Agent能力
- ✅ 支持推理和行动
- ✅ 能够自主规划和执行
2. 短期记忆存储
- ✅ 支持PostgreSQL或Redis存储
- ✅ 会话状态的持久化
3. Function Calling(工具调用)
- ✅ 支持调用外部工具
- ✅ 能够执行实际操作
4. MCP Server支持
- ✅ 支持MCP协议
- ✅ 跨系统工具调用
5. 人工审查(Human-in-the-Loop)
- ✅ 关键操作需要人工审核
- ✅ 例如:预订失败、退订等操作
实际场景:
- 预订酒店失败怎么办?
- 需要退订怎么办?
- 这些都需要人工介入审核
6. Redis存储的优势
为什么推荐Redis?
优势1:高吞吐
- ✅ 每秒10万级以上的高吞吐
- ✅ 适合高并发场景
优势2:数据过期设置(TTL)
- ✅ 可以设置哪些信息过期
- ✅ 哪些信息永不过期
实际应用:
- 用户偏好:永不过期
- 临时信息:设置过期时间(如7天后过期)
关键点:
- 这在PostgreSQL中很难实现
- 但在Redis中很简单
- 非常适合生产环境
7. 故障恢复
- ✅ 客户端和服务端的故障恢复
- ✅ 保证系统的高可用性
8. 历史消息修剪
- ✅ 如何修剪历史消息
- ✅ 控制上下文长度
9. 多Agent并发(核心)
- ✅ 使用异步任务队列
- ✅ 支持多个Agent同时工作
- ✅ 提高系统吞吐量
关键理解:
- 这是生产级系统的核心能力
- 需要异步任务队列来支持
- 保证系统的并发性能
🤖 第三部分:多智能体系统(Multi-Agent System)
什么是多智能体系统?
是什么:
- 多个智能体协作完成复杂任务
- LangGraph提供了多种实现模式
应用场景:
- 复杂的业务系统
- 需要多个Agent协作
- 每个Agent负责不同的任务
多智能体系统的模式
模式1:单智能体(Single Agent)
- 一个Agent完成所有任务
- 适合简单场景
模式2:基于网络(Network-based)
- 多个Agent通过网络连接
- Agent之间可以通信
模式3:门面模式(Facade Pattern)
- 有一个主Agent(Supervisor)
- 根据意图分发到不同的Agent
工作流程:
用户请求
↓
主Agent(Supervisor)
↓
根据意图识别
↓
分发到不同的Agent
↓
返回结果
实际应用:
- 智能导诊系统
- 根据用户症状,路由到不同科室
- 每个科室有专门的Agent处理
模式4:自定义模式
- 自己定义Agent之间的交互
- 完全自定义的协作方式
关键点:
- LangGraph已经实现了这些模式
- 可以直接使用
- 不需要从零开始开发
多智能体消息传递
问题: 多智能体之间如何传递消息?
答案:
- LangGraph提供了完整的实现
- 支持Agent之间的消息传递
- 有标准的消息协议
关键理解:
- 不需要自己实现消息传递机制
- 框架已经提供了
- 直接使用即可
🔄 第四部分:AI应用开发的两条路线
路线1:Workflow(工作流编排)
是什么:
- 基于复杂的工作流编排
- 适合有固定流程的业务
应用场景:
- 智能导诊系统
- 需要路由到不同科室
- 涉及动态路由、查询重写等
特点:
- ✅ 流程是预设的
- ✅ 需要人工审核环节
- ✅ 适合复杂业务流程
路线2:AI Agent(智能体系统)
是什么:
- 基于AI Agent的智能体系统
- 自主规划和执行
特点:
- ✅ 自主决策
- ✅ 高度自动化
- ✅ 适合灵活的任务
两条路线的配合使用
在实际项目中:
- ✅ 两种系统都需要
- ✅ Workflow用于复杂业务流程
- ✅ Agent用于智能决策
- ✅ 两者配合使用,实现完整的AI系统
🛠️ 第五部分:MCP Server的作用
为什么需要MCP?
问题:
- 自定义的本地工具只能在当前系统使用
- 无法跨系统调用
- 无法重复使用
解决方案:MCP Server
是什么:
- 使用MCP协议开发工具
- 可以跨系统调用
- 可以重复使用
优势:
- ✅ 工具可以暴露给其他系统
- ✅ 跨系统调用
- ✅ 提高工具的复用性
关键理解:
- MCP是工具调用的标准协议
- 适合企业级应用
- 提高系统的可扩展性
💡 关键概念总结
| 概念 | 简单理解 |
|---|---|
| 向量化存储 | 将文本转为向量,通过语义相似度检索 |
| 自动表结构 | LangGraph自动创建表结构,不需要手动设计 |
| 人工审查 | 关键操作需要人工审核,保证安全性 |
| 数据过期(TTL) | Redis可以设置数据过期时间,灵活管理 |
| 多智能体系统 | 多个Agent协作完成复杂任务 |
| 门面模式 | 主Agent分发任务到不同的Agent |
| 异步任务队列 | 支持多Agent并发,提高系统性能 |
| MCP Server | 跨系统工具调用的标准协议 |
❓ 思考题
-
为什么长期记忆需要向量化存储?
- 答:当长期保存的内容增多后,需要从大量信息中快速找到相关内容。向量化存储可以通过语义相似度检索,比关键词检索更智能,能够理解语义相似性。
-
生产级AI Agent需要哪些核心能力?
- 答:①ReAct Agent能力;②短期记忆存储;③Function Calling;④MCP Server支持;⑤人工审查;⑥Redis存储(支持数据过期);⑦故障恢复;⑧历史消息修剪;⑨多Agent并发(异步任务队列)。
-
为什么推荐使用Redis存储?
- 答:Redis有两个主要优势:①高吞吐,每秒10万级以上;②支持数据过期设置(TTL),可以灵活设置哪些信息过期、哪些永不过期,这在PostgreSQL中很难实现。
-
多智能体系统的门面模式是什么?
- 答:有一个主Agent(Supervisor),根据用户意图识别,将任务分发到不同的Agent。就像智能导诊系统,根据用户症状路由到不同科室,每个科室有专门的Agent处理。
-
MCP Server的作用是什么?
- 答:MCP Server可以让工具跨系统调用,提高工具的复用性。自定义的本地工具只能在当前系统使用,而MCP工具可以暴露给其他系统,实现跨系统调用。
📌 本节课重点回顾
✅ 长期记忆处理: 向量化存储、提取、总结、图形化等多种方案
✅ 生产级能力: ReAct Agent、记忆存储、工具调用、人工审查、故障恢复、多Agent并发等
✅ Redis优势: 高吞吐、支持数据过期设置,适合生产环境
✅ 多智能体系统: 门面模式、自定义模式等,支持Agent协作
✅ 两条路线: Workflow和Agent,两者配合使用实现完整AI系统
笔记整理时间:2024年
建议:理解生产级AI Agent的核心能力是构建企业级AI系统的关键,需要掌握多智能体系统和MCP Server的使用