AI Agent 记忆系统:从短期到长期的技术架构与实践
从会话级上下文管理到跨会话知识沉淀,系统拆解 AI Agent 记忆系统的核心架构、工程策略与前沿趋势。
AI Agent 记忆系统:从短期到长期的技术架构与实践
从会话级上下文管理到跨会话知识沉淀,本文系统拆解 AI Agent 记忆系统的核心架构、工程策略与前沿趋势。
前言
随着 AI Agent 应用的快速发展,智能体需要处理越来越复杂的任务和更长的对话历史。然而,LLM 的上下文窗口限制、不断增长的 token 成本,以及如何让 AI"记住"用户偏好和历史交互,都成为构建实用 AI Agent 系统的核心挑战。
记忆系统(Memory System) 正是为解决这些问题而诞生的关键技术。它让 AI Agent 能够像人类一样:
- 短期记忆:在单次对话中保持上下文连贯性
- 长期记忆:跨会话记住用户偏好、历史交互和领域知识
这不仅提升了用户体验的连续性和个性化程度,也为构建更智能、更实用的 AI 应用奠定了基础。
一、Memory 基础概念
1.1 记忆的定义与分类
对"记忆"的定义有两个层面:
| 层级 | 定义 | 典型场景 |
|---|---|---|
| 会话级记忆 | 用户和 Agent 在一个会话中的多轮交互(user-query & response) | 单次客服对话、一次代码生成 |
| 跨会话记忆 | 从多次会话中抽取的通用信息,跨会话辅助 Agent 推理 | 用户画像、长期偏好、领域经验 |
1.2 各 Agent 框架的定义差异
不同框架对记忆的命名虽各有不同,但共同遵循会话级与跨会话级两层划分:
- Google ADK:
Session表示单次持续交互;Memory是长期知识库,可包含来自多次对话的信息 - LangChain:
Short-term memory用于单线程对话;Long-term memory不属于基础核心组件,而是高阶的"个人知识库"外挂 - AgentScope:虽然官方强调"需求驱动",但 API 层面仍是两个组件(
memory与long_term_memory)
习惯上,会话级历史消息称为短期记忆,跨会话共享信息称为长期记忆。两者本质上是是否跨 Session的划分,而非简单的时间维度。长期记忆从短期记忆中抽取提炼,又参与到短期记忆中辅助个性化推理。
二、Agent 框架集成记忆系统的架构
2.1 通用模式
各 Agent 框架集成记忆系统通常遵循相似的四步流程:
- 推理前加载:根据当前 user-query 从长期记忆中加载相关信息
- 上下文注入:将检索到的长期记忆信息加入当前短期记忆,辅助模型推理
- 记忆更新:短期记忆在推理完成后,将关键信息写入长期记忆
- 信息处理:长期记忆模块内部结合 LLM + 向量化模型进行信息提取和检索
2.2 短期记忆(Session 会话)
短期记忆存储会话中的所有交互消息(用户输入、模型回复、工具调用及其结果等),直接参与模型推理。
核心特点:
- 存储会话中的所有交互消息
- 直接作为 LLM 的输入上下文
- 每次交互都会新增消息(实时更新)
- 受模型 maxToken 限制,需通过上下文工程策略优化
2.3 长期记忆(跨会话)
长期记忆与短期记忆形成双向交互:
- Record(写入):从短期记忆的会话消息中提取有效信息(事实、偏好、经验),通过 LLM 语义理解和抽取,存入长期记忆
- Retrieve(检索):根据当前用户查询,从长期记忆检索相关信息,注入短期记忆作为上下文,辅助模型推理
信息组织维度:
-
用户维度(个人记忆):实时更新的个人知识库
- 用户画像分析报告
- 个性化推荐(千人千面)
- 处理具体任务时加载至短期记忆
-
业务领域维度:沉淀的经验(含领域经验和工具使用经验)
- 可沉淀至领域知识库
- 可通过强化学习微调沉淀至模型
在实践中,长期记忆通常是独立的第三方组件,常见的有 Mem0、Zep、Memos、ReMe 等。
三、短期记忆的上下文工程策略
狭义上下文工程:针对短期记忆的压缩、摘要、卸载等运行时处理策略,主要解决上下文窗口限制和 token 成本问题。
3.1 三种核心策略
上下文缩减(Context Reduction)
通过减少上下文中的信息量来降低 token 消耗:
- 保留预览内容:对大块内容只保留前 N 个字符或关键片段作为预览
- 总结摘要:使用 LLM 对整段内容进行总结,保留关键信息、丢弃细节
✅ 有效减少 token
❌ 会导致信息丢失
上下文卸载(Context Offloading)
解决"被缩减的内容是否可恢复"的问题。缩减后,原始完整内容卸载到外部存储(文件系统、数据库等),消息中只保留最小必要的引用(如文件路径、UUID)。
优势:上下文更干净、占用更小、信息不丢、随取随用
适用场景:网页搜索结果、超长工具输出、临时计划等占 token 较多的内容
上下文隔离(Context Isolation)
通过多智能体架构,将上下文拆分到不同的子智能体中。主智能体编写任务指令,发送给子智能体,子智能体的整个上下文仅由该指令组成,完成任务后返回结果。
优势:上下文小、开销低、简单直接
适用场景:任务有清晰简短的指令,只有最终输出才重要(如代码库中搜索特定片段)
策略选择原则
| 考虑因素 | 处理建议 |
|---|---|
| 时间远近 | 近期消息优先保留;历史消息优先缩减或卸载 |
| 数据类型 | 用户输入、模型回复、工具调用结果采用不同策略 |
| 可恢复性 | 需完整信息时优先卸载;可接受丢失时使用缩减 |
3.2 各框架的实现方式
Google ADK
通过 events_compaction_config 设置上下文处理策略,与 Session 数据存储独立:
from google.adk.apps.app import App, EventsCompactionConfig
app = App(
name='my-agent',
root_agent=root_agent,
events_compaction_config=EventsCompactionConfig(
compaction_interval=3, # 每3次新调用触发压缩
overlap_size=1 # 包含前一个窗口的最后一次调用
),
)LangChain
通过 middleware 中的 SummarizationMiddleware 设置上下文处理参数:
from langchain.agents import create_agent
from langchain.agents.middleware import SummarizationMiddleware
agent = create_agent(
model="gpt-4o",
tools=[...],
middleware=[
SummarizationMiddleware(
model="gpt-4o-mini",
max_tokens_before_summary=4000, # 4000 tokens时触发摘要
messages_to_keep=20, # 摘要后保留最后20条消息
),
],
)四、长期记忆技术架构
4.1 核心组件
长期记忆涉及 Record & Retrieve 两个核心流程,需要以下组件:
| 组件 | 作用 |
|---|---|
| LLM 大模型 | 语义理解、抽取、决策和生成 |
| Embedder 向量化 | 将文本转为语义向量 |
| VectorStore 向量数据库 | 持久化记忆向量与元数据 |
| GraphStore 图数据库 | 存储实体-关系知识图谱 |
| Reranker | 对初步检索结果按相关性重排序 |
| SQLite | 记录所有记忆操作的审计日志 |
4.2 Record & Retrieve 流程
Record(记录)
LLM 事实提取 → 信息向量化 → 向量存储 →(复杂关系存储)→ SQLite 操作日志Retrieve(检索)
User query 向量化 → 向量数据库语义检索 → 图数据库关系补充 →(Reranker-LLM)→ 结果返回4.3 长期记忆 vs RAG
像 Mem0 这类面向 AI Agent 的个性化长期记忆系统,与 RAG 在技术架构上有诸多相似,但功能定位不同:
| 维度 | RAG | 长期记忆 |
|---|---|---|
| 数据来源 | 静态文档/知识库 | 动态交互历史 |
| 更新频率 | 文档更新时 | 每次对话都可能更新 |
| 个性化 | 通用知识 | 强个性化(用户偏好、习惯) |
| 数据规模 | 较大 | 相对小但增长迅速 |
4.4 关键问题与挑战
准确性
- 有效的记忆管理:智能的巩固、更新和遗忘机制
- 检索准确性:依赖向量化检索 & 重排的核心能力
核心挑战:用户画像建模、记忆管理算法、检索相关性
安全和隐私
记忆系统记住了大量用户隐私信息,需重点关注:
- 数据加密与访问控制
- 防止恶意数据注入
- 透明的数据管理机制
- 用户对自身数据的掌控权
多模态记忆支持
文本、视觉、语音目前仍被孤立处理,构建统一的"多模态记忆空间"仍是未解难题:
- 跨模态关联与检索
- 统一的多模态记忆表示
- 毫秒级响应能力
4.5 Agent 框架集成示例
集成 Mem0(事实标准)
Mem0 是开源的长期记忆框架,几乎成为行业事实标准:
Mem0LongTermMemory mem0Memory = new Mem0LongTermMemory(
Mem0Config.builder()
.apiKey("your-mem0-api-key")
.build()
);
ReActAgent agent = ReActAgent.builder()
.name("Assistant")
.model(model)
.memory(memory) // 短期记忆
.longTermMemory(mem0Memory) // 长期记忆
.build();集成 ReMe(AgentScope 官方实现)
ReMe 是 AgentScope 官方提供的长期记忆实现,与框架深度集成:
ReMeLongTermMemory remeMemory = ReMeLongTermMemory.builder()
.userId("user123")
.apiBaseUrl("http://localhost:8002")
.build();
ReActAgent agent = ReActAgent.builder()
.name("Assistant")
.model(model)
.memory(memory) // 短期记忆
.longTermMemory(remeMemory) // 长期记忆
.longTermMemoryMode(LongTermMemoryMode.BOTH) // 同时启用读取和写入
.build();五、行业趋势与产品对比
5.1 发展趋势
记忆即服务(Memory-as-a-Service, MaaS)
类似"数据库"之于传统软件,记忆系统将成为 AI 应用的基础设施,提供标准化的服务接口、可扩展的存储与检索能力。
精细化记忆管理
借鉴人脑记忆机制,构建分层动态的记忆架构,对记忆进行全生命周期管理:
- LLM 驱动记忆提取 + 向量化存储 + 图数据库补充
- 向量化检索(海马体)+ LLM 提纯(大脑皮层)结合
- 通过强化学习提升记忆管理表现
多模态记忆系统
多模态大模型的兴起推动记忆系统向多模态、跨模态方向发展,要求存储具备跨模态关联与毫秒级响应能力。
参数化记忆(Model 层集成)
在 Transformer 架构中引入可学习的记忆单元 Memory Adapter,实现模型层面原生支持用户维度的记忆:
- ✅ 响应速度快
- ❌ 面临"灾难性遗忘"和更新成本高的挑战
5.2 两条技术路径
| 路径 | 描述 | 优点 | 挑战 |
|---|---|---|---|
| 外部记忆增强(主流) | 使用向量数据库等外部存储,检索时注入当前对话 | 灵活高效 | 依赖检索准确性 |
| 参数化记忆(深度内化) | 直接将知识编码进模型参数(微调/知识编辑) | 响应速度快 | 灾难性遗忘、更新成本高 |
5.3 开源产品现状
从各类技术指标评测结果以及开源社区活跃度(star、issues 等)来看,Mem0 仍然是长期记忆产品的领头地位。
结语
记忆系统作为 AI Agent 的核心基础设施,其发展直接影响着智能体的能力和用户体验。
当前各框架内置的压缩、卸载、摘要等策略,已经能解决 80-90% 的通用场景问题。但对于医疗、法律、金融等特定行业,基于通用上下文处理策略进行针对性的处理和更精细的压缩 prompt 设计,仍有较大的优化空间。
而长期记忆作为可独立演进的组件,未来会更加贴近人脑的记忆演化模式,包括:
- 记忆的巩固、强化、遗忘等全生命周期管理
- 以云服务模式提供通用的记忆服务
最终,这些都将共同助力 Agent 迈向更高阶的智能。
参考资料
原文:阿里云开发者社区 — AI Agent 记忆系统:从短期到长期的技术架构与实践
作者:柳遵飞(翼严)
发布:2026-02-05