在讨论创建 AI 智能体的独特优势时,主要讨论两点:调用工具完成任务的能力以及随时间改进的能力。记忆是创建能够为用户提供更好体验的自我改进智能体的基础。
在本课程中,我们将了解 AI 智能体的记忆是什么,以及我们如何管理和利用它来造福我们的应用程序。
本课程将涵盖
• 理解 AI 智能体记忆:记忆是什么以及为什么它对智能体至关重要。
• 实现和存储记忆:为 AI 智能体添加记忆功能的实用方法,侧重于短期记忆和长期记忆。
• 使 AI 智能体自我改进:记忆如何使智能体从过去的交互中学习并随时间改进。
完成本课程后,您将了解如何
• 区分各种类型的 AI 智能体记忆,包括工作记忆、短期记忆和长期记忆,以及诸如角色记忆和情景记忆等特殊形式。
• 使用 Semantic Kernel 框架实现和管理 AI 智能体的短期记忆和长期记忆,利用 Mem0 和 Whiteboard 记忆等工具,并与 Azure AI Search 集成。
• 理解自我改进 AI 智能体背后的原则,以及强大的记忆管理系统如何促进持续学习和适应。
其核心是,AI 智能体的记忆指的是允许它们保留和回忆信息的机制。这些信息可以是关于对话、用户偏好、过去行为,甚至是习得模式的具体细节。
没有记忆,AI 应用程序通常是无状态的,这意味着每次交互都从头开始。这会导致重复且令人沮丧的用户体验,因为智能体“忘记”了先前的上下文或偏好。
智能体的智能与它回忆和利用过去信息的能力紧密相关。记忆使智能体能够做到
• 反思性:从过去的行动和结果中学习。
• 交互性:在持续的对话中保持上下文。
• 主动性和反应性:根据历史数据预测需求或做出适当响应。
• 自主性:通过利用存储的知识更独立地操作。
实现记忆的目标是使智能体更具可靠性和能力。
把它想象成智能体在单个、持续的任务或思维过程中使用的草稿纸。它保存着计算下一步所需的即时信息。
对于 AI 智能体,工作记忆通常捕获对话中最相关的信息,即使完整的聊天历史很长或被截断。它侧重于提取关键元素,例如要求、提议、决策和行动。
工作记忆示例
在旅行预订智能体中,工作记忆可能会捕获用户的当前请求,例如“我想预订去巴黎的旅行”。这个具体要求被保存在智能体的即时上下文中,以指导当前的交互。
这种类型的记忆在单个对话或会话期间保留信息。它是当前聊天的上下文,允许智能体回顾对话中的先前轮次。
短期记忆示例
如果用户询问“去巴黎的航班要多少钱?”,然后接着问“那里的住宿呢?”,短期记忆确保智能体知道“那里”在同一对话中指的是“巴黎”。
这是跨多个对话或会话持续存在的信息。它允许智能体在较长时期内记住用户偏好、历史交互或一般知识。这对于个性化很重要。
长期记忆示例
长期记忆可能会存储“本喜欢滑雪和户外活动,喜欢喝着咖啡欣赏山景,由于过去的伤病,他想避开高级滑雪道”。这些从先前交互中学到的信息会影响未来旅行计划会话中的推荐,使它们高度个性化。
这种特殊的记忆类型帮助智能体发展出一致的“个性”或“角色”。它允许智能体记住关于自身或其预期角色的详细信息,使交互更加流畅和集中。
角色记忆示例 如果旅行智能体被设计为“滑雪专家规划师”,角色记忆可能会强化这个角色,影响其响应以符合专家的语气和知识。
这种记忆存储智能体在复杂任务中采取的步骤序列,包括成功和失败。这就像记住特定的“情景”或过去的经验,并从中学习。
情景记忆示例
如果智能体尝试预订某个航班但由于不可用而失败,情景记忆可以记录此失败,允许智能体在后续尝试中尝试替代航班或以更明智的方式通知用户问题。
这涉及从对话中提取和记住特定的实体(例如人、地点或事物)和事件。它允许智能体构建对所讨论关键元素的结构化理解。
实体记忆示例
从关于过去旅行的对话中,智能体可能会提取“巴黎”、“埃菲尔铁塔”和“在 Le Chat Noir 餐厅晚餐”作为实体。在未来的交互中,智能体可以回忆起“Le Chat Noir”并提议在那里进行新的预订。
虽然 RAG 是一种更广泛的技术,“结构化 RAG”被强调为一种强大的记忆技术。它从各种来源(对话、电子邮件、图像)提取密集、结构化的信息,并用它来提高响应的精度、召回率和速度。与仅依赖语义相似性的经典 RAG 不同,结构化 RAG 处理信息的固有结构。
结构化 RAG 示例
结构化 RAG 不仅仅匹配关键词,还可以从电子邮件中解析航班详细信息(目的地、日期、时间、航空公司),并以结构化方式存储它们。这允许精确查询,例如“我周二预订的去巴黎的航班是什么?”
为 AI 智能体实现记忆涉及一个系统性的记忆管理过程,包括生成、存储、检索、集成、更新,甚至“遗忘”(或删除)信息。检索是一个尤其重要的方面。
存储和管理智能体记忆的一种方法是使用 Mem0 等专用工具。Mem0 作为持久记忆层工作,允许智能体回忆相关交互,存储用户偏好和事实上下文,并随着时间的推移从成功和失败中学习。这里的想法是无状态智能体变成有状态智能体。
它通过两阶段记忆管道:提取和更新工作。首先,添加到智能体线程的消息被发送到 Mem0 服务,该服务使用大型语言模型(LLM)总结对话历史并提取新的记忆。随后,LLM 驱动的更新阶段确定是添加、修改还是删除这些记忆,将它们存储在混合数据存储中,该存储可以包括向量、图和键值数据库。该系统还支持各种记忆类型,并且可以结合图记忆来管理实体之间的关系。
除了像 Mem0 这样的专业记忆工具之外,您还可以利用 Azure AI Search 等强大的搜索服务作为存储和检索记忆的后端,尤其是对于结构化 RAG。
这允许您用自己的数据来支持智能体的响应,确保更相关和准确的答案。Azure AI Search 可以用于存储用户特定的旅行记忆、产品目录或任何其他特定领域的知识。
Azure AI Search 支持结构化 RAG 等功能,它擅长从对话历史、电子邮件甚至图像等大型数据集中提取和检索密集、结构化的信息。与传统的文本分块和嵌入方法相比,这提供了“超人的精度和召回率”。
自我改进智能体的一个常见模式是引入一个“知识智能体”。这个独立的智能体观察用户和主要智能体之间的主要对话。它的作用是
识别有价值的信息:确定对话的任何部分是否值得作为一般知识或特定用户偏好保存。
提取和总结:从对话中提炼出重要的学习或偏好。
存储在知识库中:持久化这些提取的信息,通常在向量数据库中,以便以后可以检索。
增强未来的查询:当用户发起新查询时,知识智能体检索相关的存储信息并将其附加到用户的提示中,为主要智能体提供关键上下文(类似于 RAG)。
• 延迟管理:为了避免减慢用户交互速度,可以最初使用更便宜、更快的模型来快速检查信息是否值得存储或检索,仅在必要时才调用更复杂的提取/检索过程。
• 知识库维护:对于不断增长的知识库,不经常使用的信息可以移动到“冷存储”以管理成本。
加入 Azure AI Foundry Discord,与其他学习者交流,参加办公时间,并解答您的 AI 代理问题。