TellWorldAI 世界档案
问档案English

首页›实践›实践

实践

智能体的记忆怎么做

智能体记忆分短期和长期:会话内靠 AgentSession 保留上下文,跨会话要存进数据库或向量索引。讲清 Mem0、Cognee 和知识智能体各自怎么做。

这篇适合谁,读完能做什么

适合正在给智能体加记忆,或者想让智能体越用越懂用户的开发者。读完你应该能分清短期记忆和长期记忆,知道会话上下文什么时候会丢,并能从 Mem0、Cognee、Azure AI Search 和知识智能体几种做法里选一个起点。[1]

智能体为什么需要记忆

智能体最突出的两个特点,一是调用工具完成任务,二是随时间改进。记忆是做出能自我改进的智能体的基础。[1]

没有记忆的 AI 应用往往是无状态的,每次交互都从零开始。智能体会「忘记」之前的上下文和偏好,用户体验既重复又让人沮丧。[1]

有了记忆,智能体可以从过去的行动和结果中学习,在持续对话中保持上下文,根据历史数据提前响应或及时反应,也能更独立地借助已存的知识行动。目标是让智能体更可靠、更有能力。[1]

记忆分几类

  • 工作记忆:像一张草稿纸,服务于单个任务或一次思考过程,保存计算下一步所需的即时信息。即使完整的聊天记录很长或被截断,它也能抽取需求、方案、决定和行动等关键要素。例如,订票智能体会把「我想订一趟去巴黎的行程」保留在当前上下文中。[1]
  • 短期记忆:只保留单次对话或会话内的信息,让智能体能回指前面几轮的内容。例如用户先问去巴黎的机票多少钱,再问「那边住宿呢」,短期记忆能让智能体知道「那边」指的是巴黎。[1]
  • 长期记忆:跨多次对话或会话持续存在,记住用户偏好、历史交互或通用知识,是个性化的基础。例如,系统记下某位用户喜欢滑雪和户外活动、喜欢能看到山景的咖啡,并因为过去受过伤而要避开高级雪道,之后规划行程时就会据此推荐。[1]
  • 角色记忆(persona):帮助智能体保持一致的「人设」或角色定位。如果它被设计成「滑雪行程专家」,角色记忆会强化这一定位,让回答符合这一角色。[1]
  • 流程记忆(workflow/episodic):记录复杂任务中的步骤序列,包括成功和失败。例如订某个航班失败,记下这次失败之后,下一次就能改订其他航班。[1]
  • 实体记忆(entity):从对话中抽取人、地点、事物和事件等实体,形成对关键要素的结构化理解。例如从一次巴黎之行的对话中抽取「埃菲尔铁塔」和「Le Chat Noir 餐厅的晚餐」,之后就能主动提出在那家餐厅重新订位。[1]
  • 结构化 RAG:RAG 是更宽泛的技术。结构化 RAG 从对话、邮件、图片等来源中抽取密集的结构化信息,利用信息本身的结构,而不只依赖语义相似度。例如从邮件中解析出目的地、日期、时间和航空公司,就能精确回答「我周二订的去巴黎的航班是哪趟」。[1]

会话记忆:AgentSession 怎么用

在 Microsoft Agent Framework 的 Python SDK 示例中,短期记忆对应 AgentSession,用 agent.create_session() 创建。只要复用同一个会话,框架就会保留对话上下文。

但会话结束或应用重启后,这些上下文不会保存。需要跨会话保留的事实和偏好,要放进数据库、向量索引或其他持久化存储,也就是长期记忆。[1]

长期记忆的两种做法

Mem0 是一个持久的记忆层,能让无状态的智能体变成有状态的。它分两个阶段处理记忆。第一是抽取:发给 Mem0 的消息由大模型总结对话历史,提取出新的记忆。第二是更新:同样由大模型判断每条记忆应该新增、修改还是删除。记忆存放在混合数据存储中,可以包括向量数据库、图数据库和键值数据库。[1]

Cognee 是开源的智能体语义记忆,它把结构化和非结构化数据转成可查询的知识图谱,图谱背后有向量嵌入。它采用双存储结构,把向量相似度搜索和图关系结合起来,既能找出相似的内容,也能理解概念之间的关系。检索时,它把向量相似度、图结构和大模型推理结合起来。它在同一个相连的图谱中同时支持短期的会话上下文和长期的持久记忆。[1]

示例中两种方案各有一个 notebook:一个用 Mem0 加 Azure AI Search,配合 Microsoft Agent Framework;另一个用 Cognee 构建结构化记忆。[1]

用 Azure AI Search 存记忆

如果不想用专门的记忆工具,也可以把 Azure AI Search 当作记忆的存取后端。它能存放用户的旅行记忆、产品目录或其他领域知识,让智能体的回答基于你自己的数据。它还支持结构化 RAG,能从对话历史、邮件甚至图片这类大规模数据中抽取和检索密集的结构化信息。[1]

让智能体自我改进

一种常见做法是引入「知识智能体」。它单独观察用户和主智能体之间的对话,承担四项工作:[1]

  1. 判断对话中是否有值得保存的信息,比如通用知识或用户偏好。
  2. 提炼出关键的收获或偏好。
  3. 存入知识库,通常是向量数据库,方便之后检索。
  4. 新问题到来时,检索相关的已存信息,附加到用户的提示词后面,为主智能体提供上下文。这和 RAG 的思路相近。

控制延迟和成本

为了不拖慢交互,可以先用一个更便宜、更快的模型快速判断信息是否值得存或取,只有确实需要时才调用更复杂的抽取和检索流程。知识库变大之后,较少使用的信息可以转入冷存储,以控制成本。[1]

需要注意的地方

  • 短期记忆不等于长期记忆。只存在于会话里的上下文,会话结束后就不再保留。[1]
  • 记忆的检索是关键环节。完整的记忆管理还包括生成、存储、更新和遗忘(删除)。[1]
  • 本文只讲概念和选型,不展开代码。

下一步

想了解示例中用到的 Microsoft Agent Framework,可以从它的 GitHub 仓库开始。[1]

本文改编自 Microsoft 开源课程《AI Agents for Beginners》第 13 课[1],原文以 MIT 许可证发布。

来源

  1. 1
    Memory for AI AgentsMicrosoft ai-agents-for-beginners (MIT)

引用本页: 智能体的记忆怎么做. TellWorld, https://www.tellworld.net/zh/practice/practice-agent-memory. 更新于 2026-11-14

相关动态