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 ADKSession 表示单次持续交互;Memory 是长期知识库,可包含来自多次对话的信息
  • LangChainShort-term memory 用于单线程对话;Long-term memory 不属于基础核心组件,而是高阶的"个人知识库"外挂
  • AgentScope:虽然官方强调"需求驱动",但 API 层面仍是两个组件(memorylong_term_memory

习惯上,会话级历史消息称为短期记忆,跨会话共享信息称为长期记忆。两者本质上是是否跨 Session的划分,而非简单的时间维度。长期记忆从短期记忆中抽取提炼,又参与到短期记忆中辅助个性化推理。


二、Agent 框架集成记忆系统的架构

2.1 通用模式

各 Agent 框架集成记忆系统通常遵循相似的四步流程:

  1. 推理前加载:根据当前 user-query 从长期记忆中加载相关信息
  2. 上下文注入:将检索到的长期记忆信息加入当前短期记忆,辅助模型推理
  3. 记忆更新:短期记忆在推理完成后,将关键信息写入长期记忆
  4. 信息处理:长期记忆模块内部结合 LLM + 向量化模型进行信息提取和检索

2.2 短期记忆(Session 会话)

短期记忆存储会话中的所有交互消息(用户输入、模型回复、工具调用及其结果等),直接参与模型推理。

核心特点:

  • 存储会话中的所有交互消息
  • 直接作为 LLM 的输入上下文
  • 每次交互都会新增消息(实时更新)
  • 受模型 maxToken 限制,需通过上下文工程策略优化

2.3 长期记忆(跨会话)

长期记忆与短期记忆形成双向交互

  • Record(写入):从短期记忆的会话消息中提取有效信息(事实、偏好、经验),通过 LLM 语义理解和抽取,存入长期记忆
  • Retrieve(检索):根据当前用户查询,从长期记忆检索相关信息,注入短期记忆作为上下文,辅助模型推理

信息组织维度:

  1. 用户维度(个人记忆):实时更新的个人知识库

    • 用户画像分析报告
    • 个性化推荐(千人千面)
    • 处理具体任务时加载至短期记忆
  2. 业务领域维度:沉淀的经验(含领域经验和工具使用经验)

    • 可沉淀至领域知识库
    • 可通过强化学习微调沉淀至模型

在实践中,长期记忆通常是独立的第三方组件,常见的有 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 迈向更高阶的智能。


参考资料

  1. FlowLLM Context Engineering
  2. Google ADK Memory
  3. LangChain Memory
  4. AgentScope Memory
  5. O-MEM

原文:阿里云开发者社区 — AI Agent 记忆系统:从短期到长期的技术架构与实践
作者:柳遵飞(翼严)
发布:2026-02-05

On this page