AI Agents 实战——记忆与上下文管理的必要性

324 阅读29分钟

大型语言模型(LLM)本质上是无状态的,尽管它们看起来连贯且善于对话。它们只“知道”你在当前提示里告诉它的内容。除非你显式加入,否则不存在持久的上下文或历史。若设计得当,记忆能让智能体随时间保持一致、具备上下文意识,甚至实现个性化。

本章我们将涵盖以下主题:

  • 各类记忆类型
  • 上下文窗口管理
  • 记忆的存储、检索与刷新
  • 常用的记忆管理工具

读完本章后,你将充分理解记忆在 AI 智能体中的作用,以及让智能体更聪明、更可靠、更具上下文意识所需的工具与模式。

各类记忆类型(Different types of memory)

就像人类依赖记忆来理解世界一样,AI 智能体也需要记忆来在更长时间尺度上智能地运行。记忆使智能体能跨交互保留信息、记住既往事件、存储有用知识并形成一致行为。没有记忆,即便最强大的语言模型也是无状态的——只对当前输入作出反应,而不了解之前发生过什么。

随着 AI 智能体愈发复杂,对其记忆系统的要求也水涨船高。仅仅生成回答已不够——它必须记住、适应并改进。有趣的是,研究者在为智能体设计记忆架构时,大量借鉴了心理学对人类记忆的理解。这种平行关系催生了不断细化的 AI 记忆分类体系:从处理近期交互到构建长期知识与技能,各司其职。

本节我们将按照 Theodore R. Sumers 等人在 Cognitive Architectures for Language Agentsarxiv.org/pdf/2309.02…)中提出的框架,拆解现代 AI 智能体的主要记忆系统。

短期记忆(Short-term memory, STM)

短期记忆是智能体的即时工作区——一个临时草稿本,用于短时间内保留最新输入以便快速引用。因此在上述论文的术语中,STM 常被称为工作记忆(working memory)

在对话系统中,这对跨多轮交互保持连贯至关重要。比如用户说:“帮我订一张四人七点餐位。”随后又说:“再加一个人。”——STM 帮助智能体把两句话关联起来。

image.png

图 4.1:短期记忆上下文窗口示例

从技术实现上,STM 常以滑动上下文窗口/缓冲区形式存在,保存最近几段对话或数据。

定义(Definition)
上下文窗口(context window)指模型一次可处理的最大信息量(token) ——通常包括提示词、对话历史以及任何检索或注入的知识。这是记忆管理中的关键约束:一旦超出窗口,智能体就必须遗忘或摘要过去数据以留在限制之内。

当新输入到来,旧数据被向外挤出。这让交互轻量且响应快,但也意味着 STM 天生短暂:缓冲区装满或会话结束后,这些信息就不再存在

因此,STM 适合即时问答,却难以记住偏好跨会话学习。这引出一个关键问题:如何让 AI 智能体在多次交互中保持长期上下文与连续性

长期记忆(Long-term memory, LTM)

STM 处理当下,而长期记忆关注跨时间的延续性。它让智能体能跨会话回忆信息,从而实现个性化持久知识与更好的决策

LTM 通常建立在持久化存储之上——如向量数据库知识图谱结构化知识库。其中一项高效技术是 RAG(检索增强生成) :智能体从存储基座检索相关知识来支撑生成。这使 LTM 对客服助手、推荐引擎或个性化导师等代理尤为关键。

需要注意,STM 与 LTM 是相关联的:当某些短期信息对当前会话不再关键时,可将其下沉到 LTM(下一节我们将探讨类似技巧)。

image.png

图 4.2:将短期记忆推送至长期记忆的示例

在 LTM 内部,我们还可进一步细分出三类与人类认知相映的子类型。

语义记忆(Semantic memory)

语义记忆存储一般性知识——事实、概念、规则与定义。它是系统中那个“知道事情”的部分,使智能体能够推理、解释并给出有根据的回答
需要注意的是,从设计上看,LLM 自带参数化知识,已包含对世界的广泛认知:它们“懂”物理、数学、通识文化,以及互联网上公开文档所编码的一切。然而,这些知识可能不足以不适用于我们的特定场景:比如,我们希望 AI 智能体记住本医疗中心以往所有的诊断记录?这显然不可能成为通用训练集的一部分,因此也不属于驱动我们代理的 LLM 的参数化知识
这就是为什么语义记忆对法律、医疗或金融等复杂领域的代理尤为重要——这些领域对事实正确性领域理解要求极高。
在实践中,语义记忆通常通过向量化的嵌入存入向量库来实现,检索原理与第 1 章讨论的 RAG 类似。

注(Note)
语义记忆也可作为部分 STM 的最终归宿。确有保留价值的会话片段或组件可被向量化并存入语义记忆的向量数据库。

情景记忆(Episodic memory)

在人脑语境中,情景记忆是指回忆个体亲历的特定事件的能力。对应到 AI,它使智能体能够存取来自环境交互的特定经历/片段,而不仅是通用事实知识。
例如,一名 AI 导师可能记得上周某位学生如何作答一道数学题,并据此调整今天的课程。这类记忆常以结构化日志或事件历史的形式存储,供代理参考以做基于案例的决策调整行为
在实践上,情景记忆也可以看作是少样本提示(few-shot prompting)技术的扩展

定义(Definition)
少样本提示(Few-shot prompting)是为大语言模型在提示本身内提供少量(通常 2–5 个)代表性示例的技术。示例可引导模型输出更贴合目标任务,而无需大量微调或训练数据。

示例:
任务:情感分析
示例 1:
Text: "I loved this movie!"
Sentiment: Positive
示例 2:
Text: "This movie was terrible."
Sentiment: Negative
现在请分类以下文本:
Text: "The movie was enjoyable overall, despite some flaws."
Sentiment: ______

通过这种方式,少样本提示利用模型从少量示例快速归纳模式的能力,在无需显式再训练的前提下,提升特定任务表现。
事实上,只要存储若干 (“用户问题”, “给定答案”) 或 (“用户问题”, “已执行任务”) 的配对,就能引导 AI 智能体以正确方式执行特定动作。

依据 Chad DeChant 的论文 Episodic memory in AI agents poses risks that should be studied and mitigated,为 AI 智能体实现情景记忆可带来如下显著增强:

  • 规划与决策:通过回忆相似的既往经历与结果来拼装新的策略或计划;
  • 更好的学习:回顾过往事件及其结果,识别模式并从错误中学习
  • 问题求解:以类比重组既有解法的方式,用过去场景的例子帮助解决当前问题;
  • 预测与想象:如同人类基于过往事件心智模拟未来情境,AI 可用情景记忆来预测可能结果

但作者亦指出潜在风险:

  • 欺骗:代理可能利用情景记忆,回忆过往交互并策略性操控未来互动;
  • 不必要的知识留存:代理可能保留/回忆用户希望保密的信息,带来隐私风险
  • 行为不可预测:复用过去经验影响未来行动,可能难以预测其后果,引发意外
  • 情境感知增强的副作用:更强的记忆或使 AI 更能适应运行环境,可能绕开控制或审计

尽管存在风险,论文强调可通过精心设计的约束策略与安全原则显著缓解,例如:确保人可解释的记忆、提供用户可控的增删隔离记忆存储、禁止代理自我编辑其记忆等。

注(Note)
在人类与 AI 系统中,情景记忆语义记忆用途不同:

  • 情景记忆日记:存“发生了什么”——与时间与地点绑定的具体事件/经历。对 AI 而言,可能是记住某位用户的过去投诉,或一次失败流程的操作步骤
  • 语义记忆百科:存“已知是什么”——与上下文无关事实、概念与规则。对 AI 而言,可能是产品规格、政策规则或领域知识
    区分二者可提升代理的推理效果:需要时调取过往事件,而在保证一致性与准确性时依赖既有知识

通常,AI 代理通过记录交互来获取情景记忆,通常包含:

  • 用户输入:用户的查询或指令;
  • 代理响应:AI 生成的动作或回复;
  • 上下文元数据:时间戳、用户标识、环境上下文等。

这些交互以结构化格式存入数据库。常见存储方案包括:

  • 关系型数据库:如 SQLite、PostgreSQL,用于存储结构化交互日志
  • 向量数据库:如 Pinecone、Weaviate、Chroma,存储交互的嵌入(数值表示),便于进行相似度检索

当 AI 代理需要回忆过往经验来辅助当前决策时,通常执行以下步骤:

  1. 查询嵌入:将当前用户输入转换为嵌入向量
  2. 相似度搜索:与向量库中的存量嵌入进行相似度比对,找出最相关的过往交互
  3. 上下文注入:通过提示工程等方式,把检索到的记忆注入到当前上下文,以影响生成
    此流程使代理能基于既往经验自适应其行为,增强个性化交互连续性

程序性记忆(Procedural memory)

最后一种需要说明的是程序性记忆。对人类而言,此类长期记忆负责存储如何做事:如骑车、系鞋带——一旦学会,几乎不需意识参与。对 AI 智能体而言,程序性记忆的功能相似:编码支配代理行为的基础“做法/诀窍” 。例如,在自动驾驶中,程序性记忆支持导航例程避障的执行,而无需每次从零评估每个决策。

依据 Cognitive Architectures for Language Agents 中提出的 CoALA 框架,程序性记忆由两部分组成:

  • LLM 权重隐式编码了海量程序性知识(语言使用、推理模式、世界模型等);
  • 代理代码显式定义流程,如提示构造、检索机制、锚定流程与决策逻辑。

本质上,程序性记忆写在模型与架构里。因此在多数当前系统中,它被视为静态(不同于人类可随经验自适应的程序性记忆):部署期间 LLM 权重保持不变,代理代码也很少由代理自身重写。

注(Note)
理论上可以构建自动更新自身源码的代理——尤其是其技能集合(比如编写新技能)或决策逻辑;但在线上环境进行 LLM 再微调(改权重)仍不常见,因其成本高、复杂度高与安全性顾虑
更务实、也更常见的做法是让代理修改其系统消息——相当于更新自我指令以引导行为。这是一种轻量级的程序性适配,但范围仍有限,且在多数系统中尚未充分利用。

下表概括了三类记忆在用途与示例上的差异(见 表 4.1):

记忆类型目的内容存储机制使用示例更新机制
语义(Semantic)存储通用世界知识与事实抽象概念、定义与关系(如“巴黎是法国首都”)知识库、向量数据库,或模型参数检索事实信息领域知识通过结构化数据训练人工录入更新
情景(Episodic)记录特定事件与经历过往交互的上下文细节(如用户的历史查询)日志、数据库或结构化记忆库基于用户历史实现个性化响应在交互中捕获;可结合用户反馈
程序性(Procedural)编码做事的方法与技能动作序列或流程(如处理请求的步骤)代码/工作流模型权重执行任务(如认证、数据处理)通过训练、强化学习人工更新

表 4.1:记忆类型、用途与示例

三者共同构成智能体持久能力累积知识脊梁:从促进行动支持决策从过去中学习

我们已讨论了短期记忆长期记忆;不过,还有第三类值得一提:语义型内存缓存(semantic in-memory cache)

介于短期与长期记忆之间——语义缓存的作用

介于 STM(短期记忆) 的即时性与 LTM(长期记忆) 的持久性之间,语义缓存(semantic caches)提供了一层灵活、极速的基于“含义”检索的回忆机制。它通过将最近的交互存为向量嵌入(embeddings) ,在当前会话内进行语义相似检索,而无需查询或将数据持久化到长期存储。

注(Note)
在传统应用开发中,内存缓存(in-memory cache)是驻留在内存(通常是 RAM)中的临时存储层,用于降低延迟、提升性能。应用无需对相同数据反复查询数据库或外部 API,而是直接从缓存读取,因而访问更快。常见工具包括 Redis、Memcached 以及各类框架内置的内存层。
这类缓存通常基于键值对:用唯一键存储结果,随后通过该键取回,非常适合用户会话、API 响应、低频变更的计算结果等场景。
AI 智能体与更广泛的 LLM 应用中,理念类似,但键值对由嵌入向量承载,使检索通过向量搜索而非关键词匹配完成。

图 4.3 中,你可以看到关键词缓存语义内存缓存的差异示例:

image.png

图 4.3:关键词缓存 vs 语义内存缓存

提示:需要查看高清图?请在 next-gen Packt Reader 或本书的 PDF/ePub 版本中查看。购买本书可免费获得 next-gen Packt Reader。扫描二维码或访问 packtpub.com/unlock,搜索本书名称并确认版本。

与依赖模型 token 上下文窗口的 STM 不同,也有别于为跨会话持久记忆而设计的 LTM,语义缓存会话作用域、瞬时且快速的。它并非用来长期保留知识或事件,而是帮助代理在进行中的交互动态找回相关上下文——即便表述方式已与最初不同。

这种实时回忆得益于专为语义检索打造的向量能力数据库。例如 Cosmos DB(集成向量索引)Pinecone、Weaviate、Qdrant 等,可在低延迟下存取嵌入,并支持内存搜索、元数据过滤、按相关性与时效性评分等功能,非常适合实现语义缓存。

举例:在病人预约流程中,若用户先前说过“下午最合适”,之后又问“3 点以后有空吗? ”,语义缓存可以匹配并取回先前陈述——即便它已不在上下文窗口里。这样,代理无需额外 token 成本,也能保持连贯性与上下文感知

实践中,语义缓存充当智能的短期回忆层:让代理在不作长期承诺的前提下,保持响应迅速、语义流畅、资源高效。它不是 STM 或 LTM 的替代,而是互补:在对话流中提供低延迟、以相关性驱动的记忆。

在下一节中,我们将把目光转向 STM——即代理在决策过程中如何持有并操作活跃信息。在那里,感知、推理与上下文将实时融合。

管理上下文窗口(Managing context windows)

STM(短期记忆 / 工作记忆) 语境下,上下文窗口(context window) 的概念至关重要。它定义了模型可同时处理的最大文本跨度(以 token 计)。该窗口使模型在生成回复时能“记住”并利用特定的信息片段,从而避免用户反复提供相同上下文。

尽管最新 LLM 的可处理 token 上限不断提升(如 GPT-4o 可达 128K tokens),上下文窗口管理仍充满挑战:当输入超过窗口容量时,模型无法访问更早的文本,容易在连贯性与相关性上出现问题,尤其在长文档处理长对话任务中,输出可能缺乏上下文或延续性。

因此,我们需要精心设计上下文窗口的处理策略。常见且实用的技术包括:

1) 滑动窗口(Sliding window)

通过维护固定大小的最近消息窗口并动态更新,来管理短期记忆。首先确定窗口大小——可以按最近消息条数或按token 上限(结合系统约束与期望的回答质量)。随后随新消息到来丢弃最早的消息以保持窗口尺寸。
例如,将滑动窗口设置为同时保留 4 条消息(实际多以 token 数控制),则类似于下图:

image.png

图 4.4:短期记忆滑动窗口示例

这一过程不断前移窗口,仅保留当前相关的信息。

2) 消息列表编辑(Editing message lists)

这是滑动窗口的细化版本,可更粒度化地决定保留哪些消息。做法是在将消息送入驱动代理的 LLM 前,有选择地裁剪/过滤
例如:一名客服代理在 20 轮往返对话后,只有最近几条与用户最新诉求直接相关。与其将 20 条全部送入(可能超 token),不如只保留:

  • 用户最新的问题
  • 助手最近 1–2 条回复
  • 一条关键早期上下文(如用户的操作系统版本)

其余闲聊或冗余内容一律裁剪。这样可确保模型在窗口内聚焦关键细节

在实践中,需要制定明确规则来判定保留/丢弃:

  • 新近性(Recency) :优先保留最新消息(本质上是滑动窗口);
  • 相关性(Relevance) :仅保留与当前查询/任务直接相关的消息(可由另一 LLM依据专用系统提示进行相关性评估);
  • 发送者(Sender) :仅保留来自特定发送者(用户或某个代理)的消息。

过滤器的粒度取决于每条消息的元数据
例如,我们可以决定仅保留过去 5 分钟内用户发送的消息:

image.png

图 4.5:编辑短期记忆消息列表示例

在后续实操章节中可见,诸如 LangGraph 等框架为消息提供丰富的元数据结构,便于实施细粒度过滤。示例元数据:

{"sender": "user",
 "timestamp": "dd-mm-hh-mm",
 "content": "I like option 2"
}
3) 摘要化(Summarization)

冗长对话历史长文档压缩为简洁聚焦的概要,提炼要点保留关键信息,在显著降低 token 数的同时保持核心上下文

image.png

图 4.6:短期记忆消息摘要化示例

通常由 LLM 生成摘要,并将其作为参数注入系统消息中指导代理如何处理 STM。

注(Note)
无论采用何种技术,关键还在于何时触发:例如,当 STM 的 token 数接近上限(可设为所用 LLM 最大上下文的阈值附近)时,执行token 计数并强制启用所选策略(如摘要化消息编辑)。

以上技术是处理 STM 上下文窗口的关键,但在某些场景仍不够。根据智能体类型,你可能需要在会话之外更长时间地保留与存储工作记忆
下一节我们将讨论如何处理这类需求

存储、检索与刷新记忆(Storing, retrieving, and refreshing memory)

将信息从 STM(短期记忆) 迁移到 LTM(长期记忆) ,对于在会话之间保留上下文并随时间实现“学习”至关重要。该过程通常包括从最近交互中识别相关事实、用户偏好或洞见,并以结构化、可检索的格式进行存储。

长期记忆可依用例以多种方式实现。常见做法是使用向量数据库进行语义存储——把信息片段嵌入为向量并存储,以便相似度检索,常与 RAG 结合。这使系统即便在提示中未显式提供相关内容,也能按语境召回数据。

存储的信息也可整理为结构化元数据(如用户画像或偏好),或作为事实条目追加到更广泛的知识库中。
需要注意的是,上述方法可以与向量存储结合使用。此混合方案允许系统先用显式、结构化字段(如用户 ID、主题标签、时间戳)进行初筛,再在该子集内进行语义向量检索。例如,在多用户应用中,代理可先仅检索特定用户相关文档,确保上下文被正确限定。

image.png

图 4.7:混合记忆检索示例——结合过滤与向量搜索

一旦相关记忆切片被隔离,便可通过向量相似度搜索,依据当前查询浮现最契合语境的信息。此分层方法同时提高精确度相关性,并在调用更昂贵的向量相似度操作前缩小搜索空间,从而优化性能

从长远看,我们还需考虑记忆管理策略。在 AI 智能体中刷新与更新记忆,意味着定期审阅并修改已存知识,确保其相关、准确、可用。该过程既可以是被动的(由特定交互或变更触发),也可以是主动的(按计划在后台执行)。

记忆更新既可在工作记忆层实时进行,也可在长期记忆异步执行。比如,当用户修改偏好或纠正代理时,可立即覆盖或更正相应记忆条目。

image.png

图 4.8:在用户会话上下文中编辑记忆的示例

另一方面,代理也可定期回顾累积的交互,以精炼摘要重构画像移除过时事实
刷新语义记忆的常见技术是:为已更新文档重新生成嵌入,并替换数据库中的旧向量。对于结构化元数据,更新则可能包括覆盖用户画像字段,或调整分数/计数器以反映长期行为。通过结合实时后台刷新策略,并同时支持语义结构化更新,AI 智能体就能让记忆系统随用户需求与应用动态共同演化——确保所依赖信息既最新语境准确

智能体中的时间与空间推理(Temporal and spatial reasoning in AI agents)

要让 AI 智能体在动态环境中有效运作,它们必须具备对时间序列空间语境的理解与推理能力。这不仅涉及回忆过去,还包括基于已学模式预判未来。示例如下:

  • 利用时序事件(Temporal sequencing) :时间推理使代理按时间顺序处理事件,从而理解因果关系并预测后续动作。
    例如,在客服聊天机器人中,识别用户之前询问过某商品库存,可促使代理在未来交互中主动提供更新或相关信息。
    强化学习场景中,代理通过回忆导致成功的动作序列来随时间优化策略
  • 引用过往交互(Referencing past interactions) :通过维护交互历史,代理能个性化回应并保持对话连续性。这种情景记忆让交互更自然、更具上下文意识;代理可引用先前细节,增强体验与信任
  • 管理时间衰减(Temporal decay) :如同人类会遗忘不再被强化的信息,AI 智能体也需管理存储信息的时效相关性。引入时间衰减机制可避免过时或低相关数据挤占记忆,提升处理与检索效率。

时间衰减的管理策略:

  • 时间感知检索(Time-aware retrieval) :在决策时优先近期且高频访问的信息。做法包括:为每条记忆加时间戳并在检索时使用新近性评分;在向量库层面对嵌入进行时间衰减或设置时序过滤
  • 强化机制(Reinforcement mechanisms) :对反复访问或重要的信息加强保留,让次要信息逐渐淡出。可追踪访问频率并施加强化信号(例如提升相似度得分或标记为“置顶/pinned”)。这些可通过自定义检索逻辑混合 RAG 管道管理。
  • 记忆修剪(Memory pruning) :定期评估并移除陈旧信息以优化记忆占用与系统性能。可由 LLM 或记忆管理器年龄、访问频率、相关性等标准对记忆条目进行评估;低价值项归档或删除,以优化内存与延迟。

通过有效管理时间衰减,AI 智能体能在保留有用信息剔除不相关数据之间取得平衡,最终带来更准确、语境更契合的响应。

用于管理记忆的常用工具(Popular tools to manage memory)

正如本章所示,为 AI 智能体配备完善的记忆系统,对在长期或反复交互中提供个性化、连贯体验至关重要。
LangChain、LangGraph、Semantic Kernel 等流行的 AI 编排器提供了现成库,便于同时管理 STMLTM。但某些应用的记忆需求更为复杂,单靠以上框架可能笨重不够灵活

因此,近年来出现了许多面向记忆的轻量框架,为复杂应用提供更强健的工具包。下面介绍三款最受欢迎的工具:LangMem、Mem0 与 MemGPT(现名 Letta) ——它们分别以不同方式增强智能体的记忆能力。

LangMem

LangMem 是在 LangChain 生态内开发的专用记忆管理工具,为开发者提供细粒度、可编程的记忆读写控制——与 LangGraph 搭配尤其强大。借助它,你可以明确指定智能体何时写入/读取记忆(例如在决策节点外部 API 调用后用户输入后)。

LangMem 引入区分两种互补处理模式的记忆架构:Hot path(热路径)Background memory(后台记忆) 。它们决定信息何时如何被存储与处理,使开发者能精准掌控记忆行为。

image.png

图 4.9:LangMem 中的热路径与后台记忆。来源:langchain-ai.github.io/langmem/hot…

  • Hot path(热路径) :在智能体活跃推理过程中写入记忆。也就是说,代理与用户互动、答疑解题或引导流程时,有意识地决定记住什么。借助名为 manage_memory 的工具,代理可用自然语言调用它来存储关键信息、决策或偏好。例如,用户表示“我更喜欢早上的预约”,代理即可立刻保存该偏好。记忆以 namespace(类似文件夹)的方式组织,按用户/主题/会话进行作用域划分,从而清晰控制存什么、存在哪、为何存
  • Background memory(后台记忆)被动、异步运行,通常在交互结束后整段对话历史进行处理,提取摘要、反复出现的主题或元数据,而不打断用户体验。它适合长期用户画像的构建,或将冗长对话凝练为少量可消化的洞见——好比对话后的复盘,系统无需被显式指示“记住什么”,也能从内容中归纳所需。

LangMem 与 LangGraph 紧密集成,可构建具备结构化工作流与状态管理的智能体。由于 LangMem 的记忆是线程感知的,它与对话流同步演进,让代理不仅记住孤立事实,还能理解何时/为何存储了这些事实。

LangMem 支持多种存储后端:从便于测试与快速开发内存存储起步,再到面向生产的持久化数据库。这种灵活性保证记忆策略能够随智能体的复杂度与生命周期平滑扩展。

结合热路径后台记忆,LangMem 让代理既即刻反应持续反思:既能在实时决策中聪明行动,也能随时间学习与适应,有效衔接短期感知长期学习,为具备记忆感知的智能体打下坚实基础。

Mem0

Mem0 是一层专门的记忆中间件,旨在让 AI 智能体在跨用户与跨会话的场景中保留、适配并个性化其行为。

依据官方文档,Mem0 具备以下特性:

  • 记忆加工(Memory processing) :利用 LLM 自动从对话中抽取与提炼有意义的洞见;捕捉实体、事件与关系并保留上下文,使代理无需人工打标签特定格式化即可记住关键信息。

  • 双存储架构(Dual storage architecture)

    • 向量数据库:用于存储记忆的语义表示,优化相似度检索
    • 图数据库:用于描述实体间关系并支持关系查询,为记忆网络提供结构与可追溯性

    定义(Definition)
    图数据库图结构(节点=实体,边=实体间关系)存储数据。与用表格的关系型数据库不同,图数据库擅长遍历与查询关系,适合表示复杂、互联的数据(如社交网络、推荐系统、知识图谱)。

  • 智能检索(Smart retrieval) :混合使用向量搜索图式查询,按重要性、新近性与上下文优先级返回最相关记忆,确保代理能引用精准且有意义的内容。

  • 简洁的 API 集成:通过轻量 API 快速接入,提供直观的 add(新增记忆)search(检索记忆) 端点,无需重投大量基础设施。

  • 记忆管理(Memory management) :随着新信息出现,Mem0 会更新存量记忆并化解矛盾,确保记忆在偏好变化或事实更新后仍一致可信

以上“记忆管理”体现了自适应学习:在用户交互中,Mem0 让代理动态完善记忆——无需正式再训练即可“边用边学”。这对于需要长期个性化体验的部署尤为有利。

总之,Mem0 充当智能体的认知骨干,连接短期交互长期记忆。其对个性化、适应性与灵活部署的强调,使其成为希望打造会记忆、会进化、能深度互动的智能体的理想之选。

Letta(原名 MemGPT)

Letta(原 MemGPT) 是一个开源框架,用于构建有状态、具记忆意识的 AI 智能体。其核心创新在于:将传统无状态的 LLM 交互,转化为持续演进的关系——通过长期记忆多步推理自适应上下文管理,让代理在跨会话中记住关键信息、偏好与决策,从而实现真正连贯、个性化的长期对话。

Letta 具备模型无关性(model-agnostic) ,开发者可按用例自由选择模型,不被特定厂商束缚。其独特组件 ADE(Agent Development Environment) 提供图形界面,让你深入观察代理的状态:包括如何推理、访问了哪些记忆、使用了哪些工具、以及如何响应——带来其他框架少有的透明、可交互调试体验

在工程层面,Letta 注重健壮性与集成性:提供完整 API/SDK(REST、Python、TypeScript),便于接入新旧系统。其自动持久化层会将每次交互、记忆更新与内部状态迁移安全写入 PostgreSQL,既保障会话连续性,也支持审计与分析

Letta 还支持 MCP(Model Context Protocol) ,允许代理在推理过程中动态访问与编排外部工具——如网页搜索、日历或自定义 API。

定义(Definition)
MCP 是一套标准化接口,使 AI 代理在推理过程中动态访问、调用与协调外部工具、API 或数据源;它充当语言模型与可用能力库之间的通信层,将代理能力从“文本生成”扩展至可行动作。在多智能体工具丰富的环境中,MCP 的灵活性、模块化与协调性尤为关键。

凭借深度记忆集成灵活工具编排持久状态跟踪透明可观测性,Letta 成为打造真正自主、具上下文意识且能越用越聪明的智能体的全栈平台。

小结(Summary)

记忆是智能体智能的基石:使其能够维持上下文个性化互动随时间适应。本章梳理了短期与长期记忆及其语义、情景、程序性子类;探讨了在 LLM 上下文受限条件下的管理策略,以及通过结构化 + 语义手段存储/检索/刷新记忆的方法;其中元数据过滤 + 向量检索混合模型尤其适合构建可扩展且相关性强的记忆访问。

最后,我们介绍了将记忆“工程化”的关键工具——LangMem、Mem0 与 MemGPT/Letta——它们分别从工作流感知存储到**“类操作系统”式上下文管理**等不同角度落地记忆能力。

在下一章中,我们将探索如何把记忆与智能体的**“做事”能力结合起来:通过正确定义工具与与外部生态的集成层**,让智能体不仅会“记”,更会“做”。

参考资料(References)