在讨论创建 AI 代理的独特优势时,主要讨论两点:调用工具完成任务的能力和随着时间的推移不断改进的能力。记忆是打造能够自我提升、为用户创造更好体验的代理的基础。
本课将探讨 AI 代理的记忆是什么,以及如何管理和利用记忆来提升应用效果。
本课内容包括:
• 理解 AI 代理记忆:什么是记忆以及它为何对代理至关重要。
• 实现和存储记忆:为 AI 代理添加记忆能力的实际方法,重点介绍短期和长期记忆。
• 使 AI 代理自我提升:记忆如何使代理从过去交互中学习并随着时间改进。
本课包含两个全面的笔记本教程:
• 13-agent-memory.ipynb:使用 Mem0 和 Azure AI 搜索结合 Semantic Kernel 框架实现记忆
• 13-agent-memory-cognee.ipynb:使用 Cognee 实现结构化记忆,自动构建基于嵌入的知识图谱,支持图谱可视化和智能检索
完成本课后,您将能够:
• 区分 AI 代理的各种记忆类型,包括工作记忆、短期记忆、长期记忆,以及如人格记忆和情景记忆等特殊形式。
• 使用 Semantic Kernel 框架,利用 Mem0、Cognee、白板记忆和 Azure AI 搜索等工具,为 AI 代理实现和管理短期及长期记忆。
• 理解自我提升 AI 代理背后的原理,以及健全的记忆管理系统如何助力持续学习和适应。
核心上,AI 代理的记忆指的是允许它们保留和回忆信息的机制。这些信息可以是对话的具体细节、用户偏好、过去行为,甚至学到的模式。
没有记忆,AI 应用往往是无状态的,即每次交互都从头开始。这会带来重复且令人沮丧的体验,代理“忘记”了之前的上下文或偏好。
代理的智能深深依赖于其回忆和利用过往信息的能力。记忆使代理能够:
• 反思:从过去的行为和结果中学习。
• 互动:在持续对话中维持上下文。
• 主动和反应:根据历史数据预见需求或恰当响应。
• 自主:通过调用存储的知识,更独立地运作。
实现记忆的目标是让代理更可靠且有能力。
把它想象成代理在单个进行中的任务或思考过程中使用的草稿纸。它保存执行下一步所需的即时信息。
对于 AI 代理,工作记忆通常捕获对话中最相关的信息,即使完整聊天记录很长或被截断。它专注于提取关键要素,如需求、方案、决策和行动。
工作记忆示例
在旅行预订代理中,工作记忆可能捕获用户当前的请求,例如“我想预订去巴黎的行程”。这一具体需求保存在代理的即时上下文中,以指导当前交互。
这种记忆在单次对话或会话期间保留信息。它是当前聊天的上下文,使代理能够回溯先前对话轮次。
短期记忆示例
用户问“飞往巴黎的机票多少钱?”之后又问“那住宿怎么样?”,短期记忆保证代理知道“那”指的是同一对话中的“巴黎”。
这些信息跨多个对话或会话持续存在。它允许代理记住用户偏好、历史交互或长时间积累的常识。这对于个性化至关重要。
长期记忆示例
长期记忆可能存储“Ben 喜欢滑雪和户外活动,喜欢山景咖啡,并因过去受伤避免高级滑雪道”。这些从先前交互中学到的信息将影响将来旅行规划中的推荐,实现高度个性化。
这种特殊记忆帮助代理发展一致的“个性”或“角色”。使代理记住关于自身或其预设角色的细节,使互动更流畅且更有针对性。
人格记忆示例
如果旅行代理被设计为“滑雪专家”,人格记忆可能强化这一角色,影响其回答风格与专业知识保持一致。
该记忆存储代理在完成复杂任务中采取的步骤顺序,包括成功与失败。它类似于记住特定“情景”或过去经历,以便从中学习。
情景记忆示例
如果代理尝试预订特定航班因无票失败,情景记忆会记录该失败,使代理在后续尝试中尝试替代航班或更智能地告知用户问题。
涉及从对话中提取和记住特定实体(如人、地点或事物)及事件。它使代理构建对讨论关键元素的结构化理解。
实体记忆示例
在一次关于过往旅行的对话中,代理可能提取“巴黎”,“埃菲尔铁塔”和“Le Chat Noir 餐厅晚餐”等实体。未来对话时,代理可回忆”Le Chat Noir”并主动提出帮忙预订。
虽然 RAG 是广义技术,但“结构化 RAG”被强调为强大的记忆技术。它从各种来源(对话、邮件、图片)提取密集结构化信息,用于提升响应的精准度、召回率和速度。不同于仅依赖语义相似度的传统 RAG,结构化 RAG 利用信息本身的结构。
结构化 RAG 示例
不仅仅匹配关键词,结构化 RAG 能从邮箱中解析航班详情(目的地、日期、时间、航空公司)并结构化存储,实现精准查询,比如“我周二预订的飞往巴黎的航班是什么?”
为 AI 代理实现记忆涉及记忆管理的系统化流程,包括生成、存储、检索、集成、更新甚至“遗忘”(删除)信息。检索尤为关键。
一种存储和管理代理记忆的专用工具是 Mem0。Mem0 作为持久记忆层,允许代理回忆相关交互、存储用户偏好和事实背景,并随着时间学习成功与失败。这里的思路是将无状态代理转变为有状态代理。
它通过提取与更新两个阶段的记忆管道工作。首先,加入代理线程的消息发送到 Mem0 服务,利用大型语言模型(LLM)总结对话历史并提取新记忆。随后通过 LLM 驱动的更新阶段决定是否添加、修改或删除记忆,将其存储在混合数据存储中,可能包含向量库、图数据库和键值数据库。此系统支持多种记忆类型,能整合图形记忆管理实体间关系。
另一强大方式是使用 Cognee,一个开源语义记忆系统,将结构化与非结构化数据转化为可查询的知识图谱,背书为嵌入向量。Cognee 提供双存储架构,结合向量相似度搜索和图关系,帮助代理理解信息之间的相似度和概念关联。
它擅长混合检索,融合向量相似度、图结构和 LLM 推理——从原始片段查找到图感知问答。系统维持动态记忆,不断进化成长,并保持作为一个连通图可查询,支持短期会话上下文和长期持久记忆。
Cognee 笔记本教程(13-agent-memory-cognee.ipynb)演示了如何构建统一记忆层,涵盖多样数据源摄取、知识图可视化及多种针对特定代理需求的查询策略。
除 Mem0 这类专用记忆工具外,还可利用强大的搜索服务如 Azure AI 搜索 作为存储和检索记忆的后端,特别适用于结构化 RAG。
这能让您的代理基于自有数据提供响应,确保答案更相关准确。Azure AI 搜索适用于存储用户专属旅行记忆、产品目录或任何领域知识。
Azure AI 搜索支持诸如 结构化 RAG 等能力,擅长从大量数据集(如对话历史、邮件乃至图片)中提取和检索密集的结构化信息。相比传统文本拆块和嵌入方法,展现“超人般的精准度和召回率”。
自我提升代理的常用模式是引入一个“知识代理”。该单独代理观察用户与主代理之间的对话。它的职责是:
识别有价值的信息:判断对话中是否有内容值得保存为通用知识或用户偏好。
提取和总结:提炼对话中的关键信息或偏好。
存储在知识库中:将提取信息持久化,通常存储在向量数据库中,以备后续检索。
增强未来查询:用户发起新查询时,知识代理检索相关存储信息并附加到用户提示,给予主代理关键上下文(类似 RAG)。
• 延迟管理:为避免拖慢用户交互,可先用便宜快速的模型快速检测信息是否有保存或检索价值,仅必要时调用更复杂的提取/检索流程。
• 知识库维护:对于不断增长的知识库,可将不常用的信息转移到“冷存储”以控制成本。
加入 Azure AI Foundry Discord ,与其他学习者交流,参加办公时间并获得 AI 代理相关问题解答。
免责声明:
本文件使用人工智能翻译服务 Co-op Translator 进行翻译。尽管我们努力确保准确性,但请注意,自动翻译可能存在错误或不准确之处。请以原始语言版本的文件为权威来源。对于重要信息,建议使用专业人工翻译。我们不对因使用本翻译内容而产生的任何误解或误释承担责任。