大模型智能体的记忆模块设计

大模型智能体(LLM Agent)的核心能力之一是“记忆”。没有记忆,模型只能进行短期上下文补全;有结构化记忆后,智能体才能具备持续理解、跨会话推理与个性化能力。

当前主流记忆框架包括:


一、基础概念澄清

1. QA Turn

一次“问答对”(User → Assistant)构成一个 QA Turn。

Turni=(Useri,Assistanti)

其为最小对话单元。

2. Session

一次完整的交互会话。
从用户进入系统开始,到用户主动结束或超时终止为止。

Session 表示一次连续交互过程:

Session=Turn1,Turn2,...,Turnn

Session 是逻辑边界单位,而非推理输入单位。

3. Context

当前推理所需的全部上下文信息,包括:

Context=SystemPrompt+WorkingMemory+RetrievedMemory+ToolResults

Context 是模型输入的一部分,而不是存储单位。


二、记忆分层设计

在工程实践中,记忆系统通常采用三层结构:

窗口记忆(Working Memory)→ 当前推理输入
短期记忆(Session Memory)→ 会话级结构化摘要
长期记忆(Persistent Memory)→ 跨会话长期存储

三、窗口级记忆(Working Memory)

定义

当前推理时输入给 LLM 的消息列表(messages)。

包含:

不包含:

特点

问题

常见优化策略

  1. 滑动窗口(仅保留最近 N 轮)
  2. 中间截断(保留开头指令 + 最新对话)
  3. 动态压缩摘要
  4. 分层上下文注入(指令与对话分离)

四、短期记忆(Session Memory)

定义

对一个 Session 进行结构化总结后的记忆表达。

目标:


典型流程

flowchart TD
    A[对话进行中] --> B[检测是否需要总结]
    B --> C[调用LLM生成Session Summary]
    C --> D[结构化信息抽取]
    D --> E[更新当前Session Context]
    E --> F[作为后续Prompt输入]

短期记忆内容结构示例

{
  "user_goal": "...",
  "constraints": "...",
  "important_facts": ["..."],
  "decisions_made": ["..."],
  "open_questions": ["..."]
}

优点

缺点


五、长期记忆(Persistent Memory)

长期记忆用于跨 Session 维持用户画像、历史行为与知识沉淀。


长期记忆实现方式对比

1. 原始对话存储(全文存储)

存储方式:

优点:

缺点:


2. QA Turn 向量化

对单条对话做 embedding。

优点:

缺点:


3. Session 整体向量化

对整个 session 做 embedding。

优点:

缺点:


4. 实体抽取 + 向量化

步骤:

优点:

缺点:


5. 知识图谱记忆(Graph Memory)

结构:

graph TD
    User -->|喜欢| Python
    User -->|常用框架| LangChain
    User -->|工作领域| NLP
    NLP -->|相关技术| Transformer

优点:

缺点:

适用于高价值 Agent 系统。


六、完整记忆架构设计示意

flowchart LR
    A[User Input] --> B[窗口记忆]
    B --> C[短期记忆]
    C --> D[长期记忆检索]
    D --> E[构建完整Context]
    E --> F[LLM推理]
    F --> G[生成回复]
    G --> H[更新短期记忆]
    H --> I[异步更新长期记忆]

关键点:


七、Embedding 模型选择建议

不同文本长度适配不同模型:

类型 推荐策略
短文本(实体、单轮对话) BM25 + 轻量 embedding
中等文本(QA Turn) BGE-M3、多语言 embedding
长文本(Session) 长文本专用 embedding
高精度场景 ColBERT 类 late-interaction 模型

八、三类记忆对比总结

类型 实时性 预处理 是否跨 Session 成本 典型问题
窗口记忆 实时 高 token 消耗 上下文爆炸
短期记忆 准实时 轻量 部分 总结失真
长期记忆 异步 检索噪声

九、工程实践关键点

  1. 记忆不是越多越好,关键在“可检索性”
  2. 必须区分“存储”与“召回”
  3. 长期记忆必须带时间戳
  4. 需要记忆衰减机制
  5. 支持用户可控删除
  6. 检索结果必须再次重排序
  7. 防止记忆污染(错误写入)

十、常见设计误区


十一、进阶方向

  1. Episodic Memory(事件记忆)
  2. Semantic Memory(语义知识)
  3. Procedural Memory(技能记忆)
  4. 记忆强化学习(Memory-aware RL)
  5. 自我反思机制(Self-Reflection Loop)

结论

一个成熟的大模型智能体记忆系统应具备:

窗口解决“当前对话”,
短期解决“当前目标”,
长期解决“用户历史”。

三者缺一不可。