在讨论创建 AI 智能体(AI Agents)的独特优势时,主要会涉及两点:调用工具完成任务的能力,以及随着时间的推移不断改进的能力。记忆是创建能够为用户提供更好体验的自我改进型智能体的基础。
在本节课中,我们将探讨什么是 AI 智能体的记忆,以及如何管理和利用它来为我们的应用程序带来收益。
简介
本节课将涵盖:
- 理解 AI 智能体记忆: 什么是记忆,以及为什么它对智能体至关重要。
- 实现和存储记忆: 为 AI 智能体添加记忆功能的实用方法,重点关注短期和长期记忆。
- 让 AI 智能体实现自我改进: 记忆如何使智能体从过去的交互中学习并随着时间的推移不断改进。
可用的实现
本节课包含两个全面的 Notebook 教程:
- 13-agent-memory.ipynb: 使用 Mem0、Azure AI Search 以及 Microsoft Agent Framework 实现记忆。
- 13-agent-memory-cognee.ipynb: 使用 Cognee 实现结构化记忆,自动构建由嵌入(embeddings)支持的知识图谱,实现图谱可视化和智能检索。
学习目标
完成本节课后,您将了解如何:
- 区分各种类型的 AI 智能体记忆,包括工作记忆、短期记忆和长期记忆,以及角色记忆(persona memory)和情景记忆(episodic memory)等特殊形式。
- 为 AI 智能体实现和管理短期与长期记忆,使用 Microsoft Agent Framework,并利用 Mem0、Cognee、Whiteboard 记忆等工具,同时与 Azure AI Search 进行集成。
- 理解自我改进型 AI 智能体背后的原理,以及强大的记忆管理系统如何促进其持续学习和适应。
理解 AI 智能体记忆
从本质上讲,AI 智能体的记忆是指允许它们保留和回忆信息的机制。这些信息可以是关于对话的特定细节、用户偏好、过去的操作,甚至是学到的模式。
如果没有记忆,AI 应用程序通常是无状态的(stateless),这意味着每次交互都从头开始。这会导致重复且令人沮丧的用户体验,因为智能体会“忘记”之前的上下文或偏好。
为什么记忆很重要?
智能体的智力与其回忆和利用过去信息的能力密切相关。记忆使智能体能够做到:
- 反思(Reflective): 从过去的操作和结果中学习。
- 交互(Interactive): 在持续的对话中保持上下文。
- 主动与被动(Proactive and Reactive): 根据历史数据预测需求或做出适当的响应。
- 自主(Autonomous): 依靠存储的知识更独立地运行。
实现记忆的目标是让智能体变得更可靠、更有能力。
记忆的类型
工作记忆 (Working Memory)
可以将其想象为智能体在单个、正在进行的任务或思考过程中使用的草稿纸。它保存了计算下一步所需的即时信息。
对于 AI 智能体来说,即使完整的聊天记录很长或被截断,工作记忆通常也会捕获对话中最相关的信息。它侧重于提取关键元素,如需求、提议、决策和行动。
工作记忆示例: 在一个旅游预订智能体中,工作记忆可能会捕捉用户当前的请求,例如“我想预订去巴黎的旅行”。这个具体的需求会被保留在智能体的即时上下文中,以指导当前的交互。
短期记忆 (Short Term Memory)
这种类型的记忆在单次对话或会话期间保留信息。它是当前聊天的上下文,允许智能体回顾对话中的先前轮次。
短期记忆示例: 如果用户问:“去巴黎的机票多少钱?”然后接着问“那里的住宿呢?”,短期记忆可确保智能体知道在同一对话中“那里”指的是“巴黎”。
长期记忆 (Long Term Memory)
这是跨越多次对话或会话持续存在的信息。它允许智能体在很长一段时间内记住用户偏好、历史交互或常识。这对于个性化至关重要。
长期记忆示例: 长期记忆可能会存储“Ben 喜欢滑雪和户外活动,喜欢边喝咖啡边看山景,并且由于过去的伤病希望避开高级滑雪道”。这些从以往互动中学到的信息,将影响未来旅行计划会议中的建议,使其高度个性化。
角色记忆 (Persona Memory)
这种专门的记忆类型有助于智能体发展出一致的“个性”或“角色”。它允许智能体记住关于其自身或预期角色的细节,使交互更加流畅和专注。
角色记忆示例: 如果旅行智能体被设计为“滑雪专家”,角色记忆可能会强化这一设定,影响其回复以符合专家的基调和知识储备。
工作流/情景记忆 (Workflow/Episodic Memory)
这种记忆存储了智能体在复杂任务中采取的步骤序列,包括成功和失败。这就像记住特定的“情节”或过去的经历以便从中学习。
情景记忆示例: 如果智能体尝试预订特定航班但由于无票而失败,情景记忆可以记录此失败,允许智能体在随后的尝试中尝试其他航班,或以更知情的方式告知用户该问题。
实体记忆 (Entity Memory)
这涉及从对话中提取并记住特定的实体(如人、地点或事物)和事件。它允许智能体建立对所讨论关键元素的结构化理解。
实体记忆示例: 从关于过去旅行的对话中,智能体可能会提取“巴黎”、“埃菲尔铁塔”和“在 Le Chat Noir 餐厅享用晚餐”作为实体。在未来的交互中,智能体可能会回忆起“Le Chat Noir”,并主动提议在那里进行新的预订。
结构化 RAG(检索增强生成)
虽然 RAG 是一种更广泛的技术,但“结构化 RAG (Structured RAG)”作为一种强大的记忆技术被重点强调。它从各种来源(对话、电子邮件、图像)中提取密集的结构化信息,并使用它来提高响应的准确率、召回率和速度。与完全依赖语义相似性的经典 RAG 不同,结构化 RAG 利用信息的内在结构进行工作。
结构化 RAG 示例: 结构化 RAG 不仅仅是匹配关键字,它还可以从电子邮件中解析航班详细信息(目的地、日期、时间、航空公司),并以结构化的方式存储它们。这使得精确查询成为可能,例如“我订了周二去巴黎的哪个航班?”
实现和存储记忆
为 AI 智能体实现记忆涉及一个系统的记忆管理过程,其中包括生成、存储、检索、集成、更新甚至“遗忘”(或删除)信息。其中,检索是一个尤为关键的环节。
专用记忆工具
Mem0
存储和管理智能体记忆的一种方法是使用 Mem0 等专用工具。Mem0 充当一个持久记忆层,允许智能体回忆相关的交互、存储用户偏好和事实上下文,并随着时间的推移从成功和失败中学习。这里的核心理念是将无状态的智能体转变为有状态的智能体。
它通过一个**两阶段的记忆管道(two-phase memory pipeline)**工作:提取和更新。首先,添加到智能体线程的消息被发送到 Mem0 服务,该服务使用大型语言模型 (LLM) 来总结对话历史并提取新的记忆。随后,由 LLM 驱动的更新阶段决定是添加、修改还是删除这些记忆,将它们存储在一个混合数据存储中,该存储可以包含向量、图谱和键值数据库。该系统还支持各种记忆类型,并且可以结合图谱记忆来管理实体之间的关系。
Cognee
另一种强大的方法是使用 Cognee,这是一种用于 AI 智能体的开源语义记忆库,可将结构化和非结构化数据转换为由嵌入支持的可查询知识图谱。Cognee 提供了一种双存储架构 (dual-store architecture),结合了向量相似度搜索和图谱关系,使智能体不仅能理解哪些信息是相似的,还能理解概念之间是如何相互关联的。
它擅长混合检索 (hybrid retrieval),这种检索融合了向量相似度、图谱结构和 LLM 推理——从原始分块(chunk)查找到具有图谱感知能力的问答。该系统维护着一个活体记忆 (living memory),该记忆在进化和增长的同时,始终作为一个连通的图谱保持可查询状态,同时支持短期会话上下文和长期的持久记忆。
Cognee Notebook 教程(13-agent-memory-cognee.ipynb)演示了如何构建这个统一的记忆层,其中包含了一些实用的示例,如摄取各种数据源、可视化知识图谱,以及使用针对特定智能体需求定制的不同搜索策略进行查询。
使用 RAG 存储记忆
除了 Mem0 这样的专用记忆工具之外,您还可以利用像 Azure AI Search 这样强大的搜索服务作为后端来存储和检索记忆,特别是在用于结构化 RAG 时。
这允许您使用自己的数据来为智能体的回复提供事实依据,确保答案更具相关性和准确性。Azure AI Search 可用于存储用户特定的旅行记忆、产品目录或任何其他特定领域的知识。
Azure AI Search 支持结构化 RAG 等功能,该功能非常擅长从对话历史、电子邮件甚至图像等大型数据集中提取和检索密集的结构化信息。与传统的文本分块和嵌入方法相比,它提供了“超乎常人的准确率和召回率”。
让 AI 智能体实现自我改进
自我改进型智能体的一个常见模式是引入一个**“知识智能体 (knowledge agent)”**。这个单独的智能体负责观察用户和主智能体之间的主要对话。它的作用是:
- 识别有价值的信息: 确定对话中的任何部分是否值得作为通用知识或特定用户偏好保存下来。
- 提取并总结: 从对话中提炼出必要的学习内容或偏好。
- 存储在知识库中: 将提取的这些信息持久化保存,通常保存在向量数据库中,以便稍后检索。
- 增强未来查询: 当用户发起新查询时,知识智能体会检索存储的相关信息,并将其附加到用户的提示(prompt)中,为主智能体提供关键上下文(类似于 RAG)。
记忆的优化
- 延迟管理 (Latency Management): 为了避免减慢用户交互速度,最初可以使用更便宜、更快的模型来快速检查信息是否具有存储或检索价值,仅在必要时才调用更复杂的提取/检索过程。
- 知识库维护 (Knowledge Base Maintenance): 对于不断增长的知识库,可以将不常用的信息转移到“冷存储 (cold storage)”中以管理成本。
你可能也喜欢
- ♥ 探索微软智能代理框架12/26
- ♥ AI 智能体的可观测性与评估03/31
- ♥ AI 智能体设计原则01/18
- ♥ 工具使用设计模式01/19
- ♥ AI 智能体协议:MCP, A2A 与 NLWeb09/18
- ♥ 探索 AI Agent(智能体)框架04/26

