大数跨境

智能体记忆(Agent Memory)原理与生命周期

智能体记忆(Agent Memory)原理与生命周期 苏哲管理咨询
2026-10-25
14
导读:Agent Memory 是 AI 智能体跨会话持久存储信息的能力,和上下文(Context)有明确区分:上下文是模型当前轮可见的临时信息,记忆需要主动检索后注入上下文,不会自动生效。智能体记忆主要用
编者摘要:Agent Memory 是 AI 智能体跨会话持久存储信息的能力,和上下文(Context)有明确区分:上下文是模型当前轮可见的临时信息,记忆需要主动检索后注入上下文,不会自动生效。智能体记忆主要用于留存用户偏好、项目信息、决策记录,支撑任务接续、稳定输出与更好决策,并非所有对话内容都要保存。 记忆分为短时、长时、情景、语义四类:短时记忆服务当前任务;长时记忆跨会话持久化;情景记忆记录完整事件经过与结果;语义记忆存储剥离场景的独立事实。 记忆系统拥有完整生命周期:提取、存储、检索、更新、遗忘。提取筛选有用信息;存储可选文件、数据库、向量库;检索包含精确查找、关键词、语义、混合检索;更新要区分全局偏好与项目特殊约定;遗忘是彻底移除失效信息,和更新不同。记忆检索与上下文工程是两个独立环节,共同支撑智能体长期稳定执行任务。

10 个关键问题Q&A

  1. Q:什么是 Agent Memory? A:智能体记忆,是让 AI 智能体存储信息、跨会话复用历史交互信息的能力。
  2. Q:Context 和 Memory 的核心区别是什么? A:上下文是模型当前请求可用的临时信息;记忆是预先存储的信息,必须检索后加入上下文才能被模型使用。
  3. Q:智能体为什么需要记忆? A:记住事实、接续中断任务、基于历史信息做出更合适的决策。
  4. Q:什么是短时记忆? A:服务当前对话或任务周期的信息,不限于内存,对话落库也可以属于短时记忆。
  5. Q:情景记忆和语义记忆差别在哪? A:情景记忆保存完整事件过程与结果;语义记忆只保存独立事实,不带原始场景。
  6. Q:记忆生命周期包含哪五个操作? A:提取、存储、检索、更新、遗忘。
  7. Q:常见的记忆检索方式有哪些? A:精确查找、关键词检索、语义检索(Embedding)、混合检索。
  8. Q:更新记忆时最大难点是什么? A:区分修改是全局偏好变更,还是仅针对单个项目的特殊设定,避免误覆盖。
  9. Q:遗忘和更新有什么不同? A:更新是修改、保留信息;遗忘是彻底移除不再需要的记忆数据。
  10. Q:记忆检索等于上下文工程吗? A:不是。检索负责取出存量记忆;上下文工程负责挑选、组织信息交给大模型,二者独立。
附录  Agent Memory(智能体记忆)

AI 智能体从当前对话接收信息,并依靠这些信息决定下一步动作。 但这些信息在后续对话里无法自动保留。 智能体记忆让智能体可以存储信息,并在将来使用。

举个例子,用户告诉智能体:

我偏好 Python,项目里使用 PostgreSQL。

智能体把这些偏好保存下来。 几天之后用户提问:

给我的下一个项目推荐一套后端技术栈。

智能体取出之前存储的偏好,基于它给出推荐。 如果没有记忆,智能体可能会反复询问相同问题;有了记忆,智能体就能复用历史交互里的信息。

为什么智能体需要记忆?

记忆主要在三方面发挥作用:

  1. 记住事实
    保存用户偏好、项目细节、重要决策;
  2. 接续任务
    不用从头开始,继续之前未完成的工作;
  3. 优化决策
    参考过往交互里的相关信息。

设想一个辅助开发者搭建应用的代码智能体:在一次会话中,开发者指定了数据库、API 框架和编码规范。等到下一次会话,智能体可以直接读取这些信息,而不是重新询问。 只要历史信息有助于当下的决策,记忆就有价值。

上下文(Context) vs 记忆(Memory)

二者相关,但用途不同:

  • 上下文
    模型当下可用的信息;用于回答当前请求;包含指令、对话消息、实时检索数据;每次调用模型时动态组装。
  • 记忆
    为未来留存的信息;跨请求、跨会话复用;包含保存的事实、偏好、过往事件;按需存储、按需读取。

记忆不会自动变成上下文。 智能体必须主动检索相关记忆,再把它塞进发给大模型的上下文里。 举例流程:

  1. 智能体存储:用户偏好 Python
  2. 用户开启一轮新对话
  3. 智能体检索到这条偏好记忆
  4. 将偏好加入当前上下文
  5. 大模型基于这条信息作答

这和前面讲的「上下文工程(Context Engineering)」直接相关。

重点重申:记忆不会自动进入上下文,必须由智能体检索后注入上下文。

智能体应该记住什么?

智能体不应该存储每一条消息,只挑选未来可能有用的信息:

  • 用户偏好(比如首选编程语言)
  • 项目事实(应用使用的数据库)
  • 决策记录(选择某套架构的原因)
  • 历史事件(任务已经完成的步骤)
  • 适用于后续交互的规则指令

同时要避免存储无关、不可靠、已经失效的信息。

记忆的类型

短时记忆 Short-Term Memory

保存当前对话 / 当前任务周期内需要用到的信息。 例子:用户让智能体搭建 REST API,对话中指定框架、数据库、鉴权要求,智能体靠这些信息完成任务。

短时记忆常见内容:

  • 近期对话消息
  • 当前任务以及任务状态
  • 工具调用和返回结果
  • 执行过程中临时做出的决定

示例:

conversation = [
{"role": "user", "content": "Build a REST API."},
{"role": "user", "content": "Use FastAPI and PostgreSQL."},
]

重要:短时记忆不等于只放在内存 RAM 里。系统可以把对话历史持久化存入数据库,但依然归类为短时记忆。

长时记忆 Long-Term Memory

跨对话、跨任务会话持久保存信息。 例子:用户长期做 Python 后端项目,偏好 PostgreSQL,智能体保存这条偏好,隔很久之后的会话依然可以读取。

长时记忆常见内容:

  • 用户偏好
  • 项目需求
  • 重要决策
  • 历史交互学到的事实
  • 已完成任务的结果

最简实现可以存在 JSON 文件:

{
"preferred_language": "Python",
"preferred_database": "PostgreSQL"
}

长时记忆不只是 “存数据”,系统还要判断存什么、何时检索、何时更新、何时删除。

情景记忆 Episodic Memory

存储特定事件、经历,回答:发生了什么?智能体做了什么?结果如何?

示例:

{
"event": "Resolved database connection failures",
"cause": "Connection pool exhaustion",
"action": "Increased the connection pool size",
"outcome": "Service recovered"
}

事件:解决数据库连接失败;原因:连接池耗尽;动作:调大连接池;结果:服务恢复

语义记忆 Semantic Memory

存储剥离了原始场景的事实与知识,不需要加载当初聊这件事的整段对话。

示例:

{
"project": "Inventory API",
"framework": "FastAPI",
"database": "PostgreSQL"
}

语义记忆适合稳定不变的事实、偏好、项目基础信息。

情景记忆 vs 语义记忆对比(调试数据库故障场景)

  • 情景记忆(一段具体经历):昨天 API 报错,原因是数据库连接池耗尽,调大连接池后服务恢复。
  • 语义记忆(一条独立事实):库存 API 使用 PostgreSQL。

区别:情景记忆保留事件全过程与结果;语义记忆只保留事实本身。 智能体可以同时使用两者:排查新故障时,既读取项目数据库配置,也读取过去同类故障的处理记录。

记忆检索 和 上下文工程 是两个独立步骤:记忆负责提供存量信息;上下文工程负责筛选、整理模型当下需要的内容。

记忆生命周期 Memory Lifecycle

智能体记忆不只是存储,一套记忆系统包含五大核心操作,构成完整生命周期: 

提取 Extract → 存储 Store → 检索 Retrieve → 更新 Update → 遗忘 Forget

  1. 提取 Extract
    识别未来有用的信息。对话里混杂事实、偏好、临时需求、无关废话,不能全部存成记忆。 例:用户说 “我后端用 Python,关系型数据库优先 PostgreSQL”,系统提取两条记忆:首选语言 Python、首选关系库 PostgreSQL。 提取可以靠规则、LLM,或者两者结合;提取要保留原意,不能把不确定的话当成确定事实。
  2. 存储 Store
    保存提取出来的信息。存储方案按需选择:
  • JSON 文件:简单原型验证
  • 关系型数据库:结构化记录
  • 向量数据库:基于相似度检索
  • 专用记忆系统(如 Mem0):一站式提取 + 管理

存储的记忆信息要足够支撑后续使用。

  1. 检索 Retrieve
    查找和当前任务相关的记忆。 例:用户问给新项目推荐数据库,系统检索到 PostgreSQL 偏好,再把这条记忆加入发给大模型的上下文。

检索方式:

  • 精确查找:根据 key / ID 定位
  • 关键词检索:query 和文本关键词匹配
  • 语义检索:基于语义相似度(依赖 Embedding)
  • 混合检索:关键词 + 语义检索结合

原则:只拿相关记忆,不要把所有记忆全塞进去。

  1. 更新 Update
    记忆会过时、出错,新信息到来时要更新。 例子:用户先说偏好 PostgreSQL,之后说新项目改用 MySQL。 系统要区分:这条新说法是覆盖全局偏好,还是仅针对这个特定项目?二者不一定冲突。

更新策略可选:

  • 直接覆盖原有值
  • 新增一条范围更窄的事实
  • 标记旧事实失效
  • 暂时保留冲突信息,等待后续消解
  1. 遗忘 Forget
    删除不再需要的记忆。 触发场景:用户主动要求遗忘、项目结束、信息不再有效。 遗忘 ≠ 更新:更新是修改并保留信息;遗忘是彻底移除。 如果同一条记忆有多份副本、多个索引,删除时要一并处理。

实操练习

仓库地址:https://github.com/ratishjain12/ai-engineering-notes/tree/main/examples/agents/agent-memory 示例演示能力:

  • 从对话提取并保存事实
  • 新开会话检索历史记忆
  • 更新已保存偏好
  • 将检索出来的记忆注入 LLM Prompt

目标:理解记忆层和智能体的协作逻辑,而不只是调用 SDK。

【声明】内容源于网络
0
0
苏哲管理咨询
为企业及组织提供AI+战略、数智化转型咨询及观点、建议等
内容 2398
粉丝 0
苏哲管理咨询 为企业及组织提供AI+战略、数智化转型咨询及观点、建议等
总阅读70.5k
粉丝0
内容2.4k