AI代理的记忆机制
在构建AI代理时,两个核心优势经常被提及:调用工具完成任务的能力和随着时间提升性能的能力。而记忆正是实现自我提升代理、为用户创造更优体验的基础。
本课将探讨AI代理的记忆是什么,如何管理记忆,以及如何利用记忆提升应用效果。
课程内容概览
- 理解AI代理记忆:记忆的定义及其对代理的重要性。
- 记忆的实现与存储:为AI代理添加记忆功能的实用方法,重点关注短期记忆和长期记忆。
- 打造自我提升的AI代理:记忆如何帮助代理从历史交互中学习并不断改进。
可用实现示例
本课包含两个完整的笔记本教程:
- 13-agent-memory.ipynb:使用Mem0和Azure AI搜索结合微软代理框架实现记忆功能。
- 13-agent-memory-cognee.ipynb:利用Cognee构建结构化记忆,自动生成基于嵌入的知识图谱,支持图形化展示和智能检索。
学习目标
完成本课后,您将能够:
- 区分不同类型的AI代理记忆,包括工作记忆、短期记忆、长期记忆,以及个性化和情景记忆等特殊形式。
- 使用微软代理框架实现和管理AI代理的短期和长期记忆,结合Mem0、Cognee、Whiteboard记忆及Azure AI搜索等工具。
- 理解自我提升AI代理的原理,掌握如何通过健全的记忆管理系统实现持续学习和适应。
理解AI代理记忆
AI代理的记忆指的是使其能够保存和回忆信息的机制。这些信息可能是对话细节、用户偏好、过往行为甚至学习到的模式。
没有记忆的AI应用通常是无状态的,每次交互都从零开始,导致重复且令人沮丧的用户体验,代理“忘记”之前的上下文或偏好。
记忆的重要性
代理的智能与其回忆和利用过去信息的能力密切相关。记忆使代理能够:
- 反思:从过去的行为和结果中学习。
- 互动:保持对话上下文的连贯性。
- 主动与反应:基于历史数据预测需求或做出恰当回应。
- 自主:依托存储的知识更独立地运作。
记忆的目标是让代理更可靠、更有能力。
记忆类型
工作记忆
类似于代理在单次任务或思考过程中使用的草稿纸,保存当前计算下一步所需的即时信息。
例如,旅行预订代理的工作记忆可能保存用户当前请求“我想预订去巴黎的行程”,以指导当前交互。
短期记忆
保存单次对话或会话期间的信息,维持当前聊天的上下文,使代理能回溯之前的对话内容。
例如,用户先问“去巴黎的机票多少钱?”,随后问“那住宿呢?”,短期记忆确保代理知道“那里”指的是“巴黎”。
长期记忆
跨多次对话或会话持续保存的信息,帮助代理记住用户偏好、历史交互或一般知识,实现个性化服务。
例如,长期记忆可能记录“Ben喜欢滑雪和户外活动,喜欢山景咖啡,因旧伤避免高级滑雪道”,未来旅行规划时据此推荐更合适的行程。
个性化记忆
帮助代理形成一致的“个性”或“角色”,记住自身或角色的细节,使交互更自然和聚焦。
例如,旅行代理被设计为“滑雪专家”,个性化记忆强化这一角色,影响其回答风格和知识深度。
工作流/情景记忆
记录代理在复杂任务中采取的步骤及其成败,类似记忆“事件”,以便从经验中学习。
例如,代理尝试预订某航班失败,情景记忆记录此事,后续尝试时可选择替代航班或更知情地告知用户。
实体记忆
提取并记住对话中的具体实体(人、地点、事物)和事件,构建结构化的关键信息理解。
例如,从一次旅行对话中提取“巴黎”、“埃菲尔铁塔”、“Le Chat Noir餐厅”,未来可记得“Le Chat Noir”并主动提供预订服务。
结构化RAG(检索增强生成)
结构化RAG是一种强大的记忆技术,能从多种来源(对话、邮件、图片)提取密集且结构化的信息,提升响应的准确性、召回率和速度。区别于传统仅依赖语义相似度的RAG,结构化RAG利用信息的内在结构。
例如,它能从邮件中解析航班详情(目的地、日期、时间、航空公司)并结构化存储,实现精准查询如“我周二预订了哪趟去巴黎的航班?”
记忆的实现与存储
实现AI代理记忆涉及系统化的记忆管理流程,包括生成、存储、检索、整合、更新甚至“遗忘”信息。检索是其中尤为关键的环节。
专用记忆工具
Mem0
Mem0是一个持久记忆层,帮助代理回忆相关交互、存储用户偏好和事实上下文,并从成功与失败中学习,使无状态代理转变为有状态代理。
其工作流程为两阶段:提取和更新。首先,代理线程中的消息发送至Mem0服务,利用大型语言模型(LLM)总结对话历史并提取新记忆。随后,LLM驱动的更新阶段决定是否添加、修改或删除记忆,存储于包含向量、图谱和键值数据库的混合数据存储中。该系统支持多种记忆类型,并可结合图谱记忆管理实体关系。
Cognee
Cognee是开源的语义记忆系统,将结构化和非结构化数据转化为基于嵌入的可查询知识图谱。它采用双存储架构,结合向量相似搜索和图关系,帮助代理理解信息间的关联,而非仅仅相似度。
Cognee擅长混合检索,融合向量相似度、图结构和LLM推理,实现从原始数据块查找到图感知问答。系统维护一个不断演进且可查询的“活记忆”,支持短期会话上下文和长期持久记忆。
Cognee笔记本教程展示了如何构建这一统一记忆层,涵盖多样数据源的导入、知识图谱可视化及针对不同代理需求的检索策略。
利用RAG存储记忆
除了专用工具如Mem0,还可利用强大的搜索服务如Azure AI搜索作为记忆的存储和检索后端,尤其适合结构化RAG。
这使代理的回答能基于自身数据,确保更相关和准确。Azure AI搜索支持结构化RAG,能从大量数据(对话历史、邮件、图片)中提取和检索密集结构化信息,提供远超传统文本分块和嵌入方法的精准度和召回率。
让AI代理实现自我提升
自我提升代理的常见模式是引入“知识代理”,它独立观察用户与主代理的对话,负责:
- 识别有价值信息:判断对话中是否有值得保存为通用知识或用户偏好的内容。
- 提取与总结:提炼对话中的核心学习或偏好。
- 存储知识库:将提取信息持久保存,通常存入向量数据库,便于后续检索。
- 增强未来查询:当用户发起新查询时,知识代理检索相关信息并附加到用户提示中,为主代理提供关键上下文(类似RAG)。
记忆优化策略
- 延迟管理:为避免影响用户交互速度,可先用更快更廉价的模型快速判断信息价值,必要时再调用复杂的提取/检索流程。
- 知识库维护:对不断增长的知识库,将不常用信息转移至“冷存储”以控制成本。
还有关于代理记忆的问题?
欢迎加入Microsoft Foundry Discord,与其他学习者交流,参加答疑时段,获取AI代理相关问题的解答。



