【智能体】AI Agent 记忆系统:从短期到长期的技术架构与实践指南

AI Agent 应用场景的持续拓展,智能体面临的任务复杂度与对话历史长度与日俱增。然而,大语言模型(LLM)的上下文窗口限制、不断攀升的 Token 成本,以及如何让 AI 精准 "记住" 用户偏好与历史交互等问题,已成为制约实用型 AI Agent 落地的核心瓶颈。记忆系统(Memory System)作为针对性解决方案,成为构建高智能 AI Agent 的关键技术支撑。

一、记忆系统基础概念解析

(一)记忆的定义与核心分类

对 AI Agent 而言,记忆是其实现历史交互回溯、反馈学习与用户偏好适配的核心能力,主要分为两个层面:

  • 会话级记忆(短期记忆):特指用户与 AI Agent 在单次会话中的多轮交互数据,包括用户查询、Agent 响应、工具调用及执行结果等,直接服务于当前会话的实时交互。

  • 跨会话记忆(长期记忆):从多次会话中抽取提炼的通用信息,涵盖用户偏好、核心事实、领域经验等,能够跨会话辅助 Agent 进行个性化推理。

需要注意的是,短期记忆与长期记忆并非单纯以时间维度划分,核心区别在于是否能够跨 Session 复用。两者存在双向交互关系:长期记忆从短期记忆中提取有效信息不断迭代更新,同时又会反作用于短期记忆,为模型提供个性化推理支持。

(二)主流 Agent 框架的记忆定义对比

尽管各主流框架对记忆的命名存在差异,但均遵循 "会话级 + 跨会话级" 的二元划分逻辑,具体对比如下:

框架 会话级记忆 跨会话记忆 核心备注
Google ADK Session Memory(Long-Term Knowledge) 长期记忆作为可搜索的独立知识库
LangChain Short-term memory Long-term memory 长期记忆属于高阶辅助组件,非核心基础模块
AgentScope Memory LongTermMemory API 层面分为两个独立组件,功能边界清晰

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

不同 Agent 框架在记忆系统的具体实现上存在细节差异,但均遵循统一的核心架构模式,理解这一模式有助于高效设计与落地记忆系统。

(一)通用集成流程

Agent 框架集成记忆系统的核心流程可概括为四步:

  • 推理前加载:根据当前用户查询,从长期记忆中检索相关关联信息;

  • 上下文注入:将检索到的长期记忆信息融入当前短期记忆,为模型推理提供上下文支撑;

  • 记忆更新:推理完成后,将短期记忆中的有效信息提炼并写入长期记忆;

  • 信息处理:长期记忆模块通过 LLM 结合向量化模型,完成信息的提取、存储与检索优化。

这一流程形成了 "短期记忆 - 长期记忆" 的闭环交互:短期记忆实时承接会话数据,长期记忆沉淀通用知识,两者协同保障 Agent 的交互连贯性与个性化能力。

(二)短期记忆(Session)核心特性

短期记忆的核心作用是存储当前会话的全量交互数据,其关键特性包括:

  • 存储内容:涵盖用户输入、模型回复、工具调用请求及执行结果等会话相关数据;

  • 参与方式:直接作为 LLM 的输入上下文,参与实时推理过程;

  • 更新机制:每一轮交互都会新增或更新数据,保持实时性;

核心限制:受 LLM 的 maxToken 约束,超出限制时需通过上下文工程策略处理。

(三)长期记忆(跨会话)核心特性与实现

长期记忆与短期记忆形成双向互动机制,同时具备独立的技术实现逻辑:

1. 与短期记忆的双向交互
  • Record(写入):从短期记忆的会话数据中提取 "用户偏好、核心事实、任务经验" 等有效信息,通过 LLM 进行语义理解与抽取后,存储至长期记忆;

  • Retrieve(检索):基于当前用户查询的语义特征,从长期记忆中检索相关信息,注入短期记忆以辅助模型实现个性化推理。

2. 实践实现方式

长期记忆在实际开发中通常以独立第三方组件形式存在,因其涉及信息提取、向量化、存储、检索等复杂流程。主流长期记忆组件包括 Mem0、Zep、Memos、ReMe 等,这些组件均提供完整的 Record 与 Retrieve 能力,Agent 框架可通过 API 快速集成。

3. 信息组织维度

长期记忆的信息组织主要分为两大维度,满足不同场景需求:

  • 用户维度(个人记忆):以用户为核心构建实时更新的个人知识库,可支撑用户画像分析、个性化推荐等场景,在处理具体任务时按需加载至短期记忆;

  • 业务领域维度:沉淀领域经验与工具使用经验,既可以纳入领域知识库,也可通过强化学习微调的方式融入模型,提升 Agent 在特定领域的专业能力。

三、短期记忆的上下文工程策略

短期记忆直接参与 Agent 与 LLM 的交互过程,随着对话长度增加,必然面临 Token 超限与成本激增的问题。上下文工程策略的核心目标是通过智能化处理,在保障信息完整性的前提下,有效控制上下文规模。

(一)核心挑战与目标

  • 核心挑战:长对话场景下,短期记忆数据量易超出模型上下文窗口限制,导致信息丢失或 Token 成本过高;

  • 核心目标:智能控制上下文大小,在减少 Token 消耗的同时,保持关键信息完整,确保 Agent 高效理解与响应。

(二)三大核心处理策略

上下文工程针对短期记忆的处理策略主要包括缩减、卸载与隔离三类,各类策略的适用场景与实现逻辑如下:

1. 缩减(Reduction):有损压缩,提炼核心

通过摘要、过滤等方式减少信息体量,保留核心要点,去除冗余细节,属于 "有损压缩" 策略。具体实现包括两种方式:

  • 预览保留:对大块文本内容,仅保留前 N 个字符或关键片段作为预览,移除原始完整内容;
  • 总结摘要:利用 LLM 对整段内容进行概括总结,提取核心信息,丢弃次要细节。该策略的核心优势是能快速降低 Token 消耗,但需在信息压缩率与完整性之间寻找平衡。
2. 卸载(Offloading):无损存储,按需检索

将短期记忆中的完整内容转移至外部存储(如文件系统、数据库等),仅在上下文中保留引用指针(如文件路径、UUID 等),需要时通过指针检索恢复完整信息。

  • 适用场景:网页搜索结果、超长工具输出、临时计划等占用大量 Token 的内容;
  • 核心优势:上下文保持简洁,Token 消耗低,且信息无丢失,支持按需恢复使用。
3. 隔离(Isolation):模块化拆分,降低负载

通过多智能体架构,将复杂任务拆分至多个子智能体,实现上下文隔离,避免不同任务的信息交叉污染,同时降低单个 Agent 的上下文负载。

  • 适用场景:任务指令清晰简短、仅关注最终输出结果的场景(如代码库中搜索特定片段);
  • 核心优势:单个 Agent 的上下文规模小,计算开销低,执行效率高。

(三)策略选择三大原则

选择上下文处理策略时,需基于以下三个核心维度综合判断:

  • 时间远近:优先保留近期消息,确保当前对话的即时响应性与相关性,历史消息可优先采用缩减或卸载策略;

  • 数据类型:根据消息类型(用户输入、工具结果、系统指令等)区分优先级,重要类型(如用户核心需求、系统关键指令)优先完整保留;

  • 信息可恢复性:需要完整追溯的信息优先采用卸载策略(可恢复),对完整性要求低的信息可采用缩减策略(有损压缩)。

(四)主流框架的实现方式对比

各框架均内置了上下文处理策略,支持通过参数化配置实现个性化适配:

1. Google ADK

通过 events_compaction_config 独立配置上下文处理策略,与 Session 数据存储解耦:

python 复制代码
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          # 保留前一个窗口的最后一次调用信息
    ),
)
2. LangChain

通过中间件(SummarizationMiddleware)设置上下文处理参数,独立于短期记忆存储:

python 复制代码
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 Token时触发摘要
            messages_to_keep=20,  # 摘要后保留最后20条消息
        ),
    ],
)
3. AgentScope

通过 AutoContextMemory 实现智能化上下文处理,直接集成 Memory 接口,无需额外配置:

python 复制代码
AutoContextMemory memory = new AutoContextMemory(
    AutoContextConfig.builder()
        .msgThreshold(100)
        .maxToken(128 * 1024)
        .tokenRatio(0.75)
        .build(),
    model
);
ReActAgent agent = ReActAgent.builder()
    .name("Assistant")
    .model(model)
    .memory(memory)
    .build();

四、长期记忆技术架构及框架集成

长期记忆需满足跨会话持久化存储、高效检索与动态更新的需求,其技术架构涵盖多个核心组件与关键流程,同时需明确与相关技术的边界差异。

(一)核心技术组件

长期记忆系统围绕 Record(记录)与 Retrieve(检索)两大核心流程,包含以下关键组件:

  • LLM 大模型:负责短期记忆中有效信息的语义理解、抽取、决策与生成;

  • Embedder 向量化模型:将文本信息转换为语义向量,为相似性计算提供支持;

  • VectorStore 向量数据库:持久化存储记忆向量及相关元数据,支持高效语义检索;

  • GraphStore 图数据库:存储实体 - 关系知识图谱,辅助复杂关系推理;

  • Reranker(重排序器):对初步检索结果按语义相关性重新排序,提升检索精度;

  • SQLite:记录所有记忆操作的审计日志,支持版本回溯与问题排查。

(二)Record & Retrieve 核心流程

1. Record(记录)流程
复制代码
LLM 事实提取 → 信息向量化 → 向量存储 →(复杂关系存储至图数据库)→ SQLite 操作日志记录

该流程的核心是从短期记忆中筛选有价值的信息,通过标准化处理后实现长期存储,确保信息的可复用性。

2. Retrieve(检索)流程
复制代码
User query 向量化 → 向量数据库语义检索 → 图数据库关系补充 →(Reranker 重排序/LLM 优化)→ 结果返回

检索流程的核心是快速定位与当前查询高度相关的长期记忆信息,为短期记忆提供精准补充。

(三)长期记忆与 RAG 的核心差异

长期记忆系统(如 Mem0)与 RAG(检索增强生成)在技术架构上存在相似点,但在功能定位与应用场景上差异显著:

对比维度 RAG 长期记忆
主要目的 弥补 LLM 训练数据的时效性、专业性不足,提供外部知识支撑 记录特定用户的历史交互信息,实现个性化、跨会话连续服务
服务对象 全体用户或通用任务 特定用户或会话主体(高度个性化)
知识来源 结构化 / 非结构化文档(PDF、网页、数据库等) 用户与 Agent 的对话历史、行为日志等交互数据

技术相似点

  • 均采用向量化存储:通过 Embedding 模型将文本转换为向量,存入向量数据库;

  • 依赖相似性检索:用户查询时,通过向量化对比检索相关信息;

  • 上下文注入机制:将检索结果融入模型交互上下文,辅助 LLM 生成回答。

(四)核心挑战与解决方案方向

长期记忆系统在实际应用中面临三大核心挑战,需针对性设计解决方案:

1. 准确性挑战
  • 核心层面:包括记忆管理的有效性(巩固、更新、遗忘机制)与检索结果的相关性;
  • 解决方向:优化用户画像建模算法,提升信息提取精度;改进向量化检索与重排序技术,增强检索相关性。
2. 安全与隐私挑战
  • 核心风险:长期记忆存储大量用户隐私信息,易面临数据泄露、恶意注入等安全威胁;

  • 解决方向:建立数据加密与严格的访问控制机制;防范恶意数据注入攻击;构建透明的数据管理体系,保障用户对自身数据的掌控权。

3. 多模态记忆支持挑战
  • 当前问题:文本、视觉、语音等多模态信息仍处于孤立处理状态,缺乏统一的记忆空间;

  • 解决方向:研发跨模态关联与检索技术;构建统一的多模态记忆表示方法;优化存储与检索性能,实现毫秒级响应。

(五)主流框架集成实践

AgentScope 为例,常见的长期记忆组件集成方式如下:

1. 集成 Mem0(开源主流方案)

Mem0 是开源长期记忆框架的事实标准,集成示例:

python 复制代码
// 初始化 Mem0 长期记忆
Mem0LongTermMemory mem0Memory = new Mem0LongTermMemory(
    Mem0Config.builder()
        .apiKey("your-mem0-api-key")
        .build()
);
// 创建 Agent 并集成记忆系统
ReActAgent agent = ReActAgent.builder()
    .name("Assistant")
    .model(model)
    .memory(memory)  // 短期记忆
    .longTermMemory(mem0Memory)  // 长期记忆
    .build();
2. 集成 ReMe(AgentScope 官方方案)

ReMe 与 AgentScope 深度集成,支持用户级记忆隔离,集成示例:

python 复制代码
// 初始化 ReMe 长期记忆
ReMeLongTermMemory remeMemory = ReMeLongTermMemory.builder()
    .userId("user123")  // 用户ID,实现记忆隔离
    .apiBaseUrl("http://localhost:8002")  // ReMe 服务地址
    .build();
// 创建 Agent 并集成记忆系统
ReActAgent agent = ReActAgent.builder()
    .name("Assistant")
    .model(model)
    .memory(memory)  // 短期记忆
    .longTermMemory(remeMemory)  // 长期记忆
    .longTermMemoryMode(LongTermMemoryMode.BOTH)  // 双向交互模式
    .build();

五、主流开源产品对比

产品 开源时间 支持记忆类型 LLM 核心作用 向量数据库支持 图数据库支持
Mem0 2023 年 7 月 用户画像 + 领域记忆 记忆创建 / 更新 / 检索 支持 pgvector、Neo4j、Memgraph、Qdrant 等 支持
Zep 2023 年初 用户画像 + 领域记忆 记忆提取 + 实体识别 支持
时序知识图谱架构
MemOS 2025 年 7 月 用户画像 + 领域记忆 记忆提取 + 推理 可选支持(非必需) 支持 NebulaGraph、Neo4j
Memobase 2025 年 1 月 用户画像记忆 + 领域记忆 画像理解 + 更新 不依赖 不依赖
AgentScope ReMe 2025 年 6 月 用户画像 + 领域记忆 记忆管理 + 优化 支持 Chroma、Qdrant 等 未明确提及
相关推荐
byzh_rc6 小时前
[机器学习-从入门到入土] 现代机器学习
人工智能·机器学习
AI数据皮皮侠7 小时前
中国乡村旅游重点村镇数据
大数据·人工智能·python·深度学习·机器学习
小北方城市网7 小时前
第 11 课:Python 全栈项目进阶与职业发展指南|从项目到职场的无缝衔接(课程终章・进阶篇)
大数据·开发语言·人工智能·python·数据库架构·geo
栗少7 小时前
英语自学手册:系统化进阶指南基于《英语自学手册》的方法论与行动路径
人工智能·算法
danyang_Q7 小时前
d2l安装(miniforge+cuda+pytorch)
人工智能·pytorch·python
点云SLAM7 小时前
Exponential 英文单词学习
人工智能·exponential·英文单词学习·雅思备考·指数的 / 与指数相关的·急剧增长 / 迅速增加的
机器之心7 小时前
智元提出SOP,让VLA模型在真实世界实现可扩展的在线进化
人工智能·openai
Tencent_TCB7 小时前
AI Coding全流程教程——0基础搭建“MEMO”健康打卡全栈Web应用(附提示词)
前端·人工智能·ai·ai编程·codebuddy·claude code·cloudbase
新智元7 小时前
推理之父走了!OpenAI 七年元老离职:有些研究这里没法做
人工智能
躺柒7 小时前
读共生:4.0时代的人机关系06人机合作关系
大数据·人工智能·人机协作·人机对话·人机合作