AI 学习资料 · AI 智能体入门(精选 9 课)
第 13 课 AI 智能体的记忆
谈到构建 AI 智能体的独特好处,人们主要会说两点:能调用工具完成任务,以及能随时间不断改进。记忆是打造能自我改进、给用户更好体验的智能体的基础。
本课介绍 AI 智能体的记忆是什么,以及如何管理和使用记忆,让应用受益。
编者注:原课程在这里列出两个配套的 Jupyter 笔记本教程(分别用 Mem0 加 Azure AI Search、用 Cognee 实现记忆),本库未收录,需要可到原仓库查看。
简介
本课内容包括:
- 理解 AI 智能体的记忆:记忆是什么,为什么它对智能体至关重要。
- 实现和存储记忆:给 AI 智能体加上记忆能力的实用方法,重点是短期记忆和长期记忆。
- 让 AI 智能体自我改进:记忆如何让智能体从过去的交互中学习,并随时间进步。
学习目标
学完本课,你将知道如何:
- 区分 AI 智能体的各种记忆类型,包括工作记忆、短期记忆和长期记忆,以及角色记忆、情节记忆等特殊形式。
- 用 Microsoft Agent Framework 为 AI 智能体实现和管理短期及长期记忆,借助 Mem0、Cognee、白板记忆等工具,并与 Azure AI Search 集成。
- 理解自我改进的 AI 智能体背后的原理,以及稳健的记忆管理系统如何帮助智能体持续学习和适应。
理解 AI 智能体的记忆
从根本上说,AI 智能体的记忆是指让智能体能够保留和回想信息的机制。这些信息可以是一段对话的具体细节、用户偏好、过去的行动,甚至是学到的规律。
没有记忆,AI 应用往往是无状态的,也就是说每次交互都从零开始。这会让用户体验重复又令人沮丧:智能体总是“忘记”之前的上下文或偏好。
为什么记忆很重要?
智能体有多聪明,与它回想和利用过去信息的能力密切相关。有了记忆,智能体就能够:
- 反思:从过去的行动和结果中学习。
- 互动:在持续进行的对话中保持上下文。
- 主动预判,及时应对:根据历史数据预判需求,或做出恰当的回应。
- 自主:凭借存储的知识,更独立地工作。
实现记忆的目标,是让智能体更可靠、更能干。
记忆的类型
工作记忆
可以把它看作智能体在执行单个正在进行的任务或思考过程时用的一张草稿纸。它保存着计算下一步所需的即时信息。
对 AI 智能体来说,即使完整的聊天记录很长或被截断,工作记忆通常也能抓住对话中最相关的信息。它专注于提取关键要素,比如需求、提议、决定和行动。
工作记忆示例
在旅行预订智能体中,工作记忆可能会记下用户当前的请求,比如“我想订一趟去巴黎的行程”。这个具体需求被放在智能体的即时上下文里,用来指导当前的交互。
短期记忆
这种记忆在单次对话或会话期间保留信息。它就是当前聊天的上下文,让智能体能回头引用对话中前面几轮的内容。
在 Microsoft Agent Framework 的 Python SDK 示例里,短期记忆对应用 agent.create_session() 创建的 AgentSession。会话是框架内置的短期记忆:只要重复使用同一个会话,对话上下文就一直可用;但会话结束或应用重启后,这些上下文不会保留下来。需要跨会话保留的事实和偏好,应放进长期记忆,通常存在数据库、向量索引或其他持久化存储中。
短期记忆示例
如果用户先问“飞巴黎的机票多少钱?”,接着又问“那边的住宿呢?”,短期记忆能确保智能体知道“那边”指的是同一段对话里提到的“巴黎”。
长期记忆
这是跨多次对话或会话持续保留的信息。它让智能体能在很长一段时间里记住用户偏好、历史交互或一般知识。这对个性化非常重要。
长期记忆示例
长期记忆可能记着:“Ben 喜欢滑雪和户外活动,喜欢一边看山景一边喝咖啡,因为以前受过伤,想避开高级滑雪道。”这些从之前交互中了解到的信息,会影响以后规划旅行时给出的建议,让建议高度个性化。
角色记忆
这种专门的记忆帮助智能体形成一致的“个性”或“角色”。它让智能体记住关于自己或自己预设角色的细节,使交互更顺畅、更有针对性。
角色记忆示例
如果旅行智能体被设计成“滑雪行程规划专家”,角色记忆可能会强化这个角色,让它的回答符合专家的口吻和知识。
工作流程/情节记忆
这种记忆保存智能体在复杂任务中采取的一系列步骤,包括成功和失败。这就像记住具体的“经历片段”,从过去的经验中学习。
情节记忆示例
如果智能体曾尝试预订某个航班,但因为没有余票而失败,情节记忆可以把这次失败记下来。下次再尝试时,智能体就能改订其他航班,或者更清楚地向用户说明问题。
实体记忆
这是指从对话中提取并记住具体的实体(比如人物、地点或事物)和事件。它让智能体对讨论过的关键要素形成结构化的理解。
实体记忆示例
在一段谈论过去旅行的对话里,智能体可能会提取“巴黎”“埃菲尔铁塔”和“在 Le Chat Noir 餐厅吃晚饭”作为实体。以后交互时,智能体就能想起“Le Chat Noir”,并主动提出再帮你订那家餐厅。
结构化 RAG(检索增强生成)
RAG 本身是一种更宽泛的技术,而“结构化 RAG”被认为是一种强大的记忆技术。它从各种来源(对话、电子邮件、图片)中提取密集的结构化信息,用来提升回答的精确率、召回率和速度。传统 RAG 只依赖语义相似度,结构化 RAG 则利用信息本身固有的结构。
结构化 RAG 示例
结构化 RAG 不只是匹配关键词,还能从一封邮件里解析出航班详情(目的地、日期、时间、航空公司),并以结构化的方式保存。这样就能精确地回答“我订的星期二去巴黎的是哪趟航班?”这类问题。
实现和存储记忆
为 AI 智能体实现记忆,需要一套系统的记忆管理流程,包括生成、存储、检索、整合、更新,甚至“遗忘”(即删除)信息。其中检索尤其关键。
专用记忆工具
Mem0
存储和管理智能体记忆的一种方法,是使用 Mem0 这类专用工具。Mem0 是一个持久化的记忆层,让智能体能回想相关的交互、保存用户偏好和事实背景,并随着时间从成功和失败中学习。它的思路是把无状态的智能体变成有状态的智能体。
它通过一条分两个阶段的记忆流水线:提取和更新来工作。首先,加入智能体线程的消息会被发送到 Mem0 服务,该服务用大语言模型(LLM)总结对话历史、提取新的记忆。随后,由 LLM 驱动的更新阶段决定是新增、修改还是删除这些记忆,并把它们存进一个混合数据存储,其中可以包括向量数据库、图数据库和键值数据库。这个系统还支持多种记忆类型,并能借助图记忆来管理实体之间的关系。
Cognee
另一种强大的方案是使用 Cognee。它是一个面向 AI 智能体的开源语义记忆系统,能把结构化和非结构化数据转换成由嵌入支撑、可查询的知识图谱。Cognee 采用双存储架构,把向量相似度搜索和图关系结合起来,让智能体不仅知道哪些信息相似,还能理解概念之间是怎样关联的。
它擅长混合检索,把向量相似度、图结构和 LLM 推理结合起来,从直接查找原始片段,到结合图谱关系回答问题都能做。这个系统维护着一份活的记忆:它会不断演变、增长,同时作为一张相互连通的图谱始终可以查询,既支持短期的会话上下文,也支持长期的持久记忆。
原课程配套的 Cognee 笔记本教程演示了如何构建这样一个统一的记忆层,包括导入多种数据源、可视化知识图谱,以及针对不同智能体需求采用不同的检索策略。
用 RAG 存储记忆
除了 Mem0 这样的专用记忆工具,你还可以利用强大的搜索服务,比如用 Azure AI Search 作为存储和检索记忆的后端,尤其适合结构化 RAG。
这样可以用你自己的数据为智能体的回答提供依据,让回答更相关、更准确。Azure AI Search 可以用来存储某个用户的旅行记忆、产品目录或其他领域知识。
Azure AI Search 支持结构化 RAG等能力,擅长从对话历史、电子邮件甚至图片等大型数据集中提取和检索密集的结构化信息。与传统的文本切块加嵌入的方法相比,它能提供“超越人类的精确率和召回率”。
让 AI 智能体自我改进
自我改进智能体的一种常见模式,是引入一个“知识智能体”。这个独立的智能体旁观用户与主智能体之间的对话,它的职责是:
- 识别有价值的信息:判断对话中有没有值得保存下来的内容,可以作为一般知识或某个具体的用户偏好。
- 提取和总结:从对话中提炼出关键的经验或偏好。
- 存入知识库:把提取出的信息持久保存,通常存进向量数据库,方便以后检索。
- 增强以后的查询:用户发起新的查询时,知识智能体检索出相关的已存信息,附加到用户的提示词中,为主智能体提供关键的上下文(类似 RAG)。
记忆的优化
- 延迟管理:为了不拖慢与用户的交互,可以先用一个更便宜、更快的模型快速判断某条信息是否值得存储或检索,只在必要时才启动更复杂的提取或检索流程。
- 知识库维护:知识库越来越大时,可以把不常用的信息移到“冷存储”,以控制成本。
免责声明:本课中文最初由 AI 翻译工具 Co-op Translator 自动翻译,本库对照英文原文做了校订和删节。译文仍可能有错漏,与英文原版不一致之处,以英文原版为准。