一文读懂 Context / Memory 设计:AI Agent 的核心能力

一文读懂 Context / Memory 设计:AI Agent 的核心能力

在传统软件系统中,程序的状态通常由数据库或缓存管理。但在 LLM 和 AI Agent 系统中,情况稍有不同:大语言模型本身是**无状态(Stateless)**的,每一次调用模型都是一次全新的推理过程。

这就意味着,如果系统不做额外设计,模型不会记住任何历史信息。

例如:

1
2
3
User:我叫小明
Assistant:你好小明
User:我叫什么?

如果系统没有提供历史上下文,模型实际上只看到:

1
User:我叫什么?

显然它无法回答。

因此在 AI Agent 系统中,需要设计一套 Memory 与 Context 管理机制,用于存储历史信息并在适当的时候提供给模型。这也是现代 Agent 架构中非常重要的一部分。

本文将系统介绍:

  • Agent Memory 的类型
  • Context 管理方式
  • Memory 与 RAG 的关系
  • 工程实现思路

一、Agent Memory 的四种类型

在 AI Agent 系统中,Memory 通常可以分为四种类型。

1. 短期记忆(Short-term Memory)

短期记忆主要用于存储当前会话中的上下文信息。例如:

  • 用户输入
  • 模型回复
  • 当前任务状态
  • Agent 在推理过程中生成的中间问题

一般来说,短期记忆就是 Conversation History

例如:

1
2
3
User:我叫小明
Assistant:你好小明
User:今天北京天气怎么样?

工程实现中通常使用一个 messages 列表来管理:

1
2
3
4
5
messages = [
{"role": "user", "content": "我叫小明"},
{"role": "assistant", "content": "你好小明"},
{"role": "user", "content": "今天北京天气怎么样"}
]

短期记忆通常存储在:

  • 内存
  • Redis
  • Session Store

主要用于管理当前会话上下文。


2. 长期记忆(Long-term Memory)

长期记忆用于存储用户的长期信息和历史数据

例如:

  • 用户名字
  • 用户偏好
  • 历史任务
  • 个性化信息

长期记忆的实现方式通常是:

  • 向量数据库
  • 关系数据库

在 AI Agent 系统中,很多长期记忆会被转换为向量,然后存储在向量数据库中,例如:

  • FAISS
  • Milvus
  • Pinecone
  • Weaviate

当用户发起请求时,系统会通过 Embedding + Vector Search 检索相关信息。

流程一般是:

1
2
3
4
5
6
7
8
9
User Query

Embedding

Vector Search

Top-K Memory

加入 Context

3. 事件记忆(Episodic Memory)

事件记忆用于记录 Agent 在过去执行过的任务和交互事件。

它记录的是 “发生过什么事情”,而不是简单的知识。

通常包含以下信息:

  • 事件 ID
  • 时间戳
  • 用户查询
  • Agent 计划
  • 执行动作
  • 工具调用
  • 任务结果
  • 执行状态

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"event_id": "task_001",
"timestamp": "2025-03-11T10:00:00",
"user_query": "查询订单123物流",
"plan": [
"query_order",
"query_logistics"
],
"actions": [
{
"tool": "order_api",
"input": "123",
"output": "order shipped"
},
{
"tool": "logistics_api",
"output": "delivering"
}
],
"result": "订单已发货,物流配送中",
"status": "success"
}

事件记忆的作用包括:

  • 任务回溯
  • Agent 调试
  • 系统监控
  • 多步骤任务恢复

常见存储方式包括:

  • 关系数据库(PostgreSQL / MySQL)
  • 文档数据库(MongoDB)
  • 向量数据库(用于相似任务检索)

4. 知识记忆(Semantic Memory)

知识记忆用于存储系统的知识和事实。

例如:

  • 产品文档
  • 公司政策
  • 技术资料
  • FAQ
  • 知识库

这种类型的 Memory 通常通过 RAG(Retrieval Augmented Generation) 实现。

流程如下:

1
2
3
4
5
6
7
8
9
10
11
User Query

Embedding

Vector Search

Top-K Documents

加入 Prompt

LLM 生成回答

因此可以理解为:

1
Semantic Memory ≈ Knowledge Base

二、上下文管理(Context Management)

Memory 并不能直接全部提供给模型,因为 LLM 的 Context Window 是有限的

例如:

  • GPT-4:128k tokens
  • Claude:200k tokens

但在真实系统中:

1
Memory 远远大于 Context Window

因此系统必须进行 Context Selection(上下文选择)


1. Sliding Window(滑动窗口)

滑动窗口是最简单的方式。

只保留最近的 N 轮对话,例如:

1
Last 10 messages

优点:

  • 实现简单
  • 性能好

缺点:

  • 可能丢失重要历史信息

2. Summary Memory(摘要记忆)

系统会对旧对话进行总结,例如:

1
2
3
用户名字:小明
用户所在地:北京
用户关注天气信息

然后将摘要加入新的上下文。

优点:

  • 减少 token 使用
  • 保留关键事实

缺点:

  • 需要额外 LLM 调用

3. Retrieval Memory(检索式记忆)

通过向量检索找到与当前问题相关的历史信息。

流程:

1
2
3
4
5
6
7
8
9
User Query

Embedding

Vector Search

Retrieve relevant memory

加入 Context

这种方式可以保证:

  • 只选择相关信息
  • 提高上下文质量

三、Memory 与 RAG 的区别

很多人会混淆 Memory 和 RAG。

实际上它们的用途不同。

技术 主要用途
Memory 存储状态
RAG 检索知识

例如:

1
2
用户名字
用户历史任务

属于:

1
Memory

而:

1
2
产品文档
公司知识库

属于:

1
RAG

简单来说:

1
2
Memory = 状态
RAG = 知识

四、AI Agent 中的 Memory 架构

在典型的 Agent 系统中,Memory 模块通常如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
User Query


Memory Retrieval


Context Builder


LLM


Tool Execution


Memory Update

整个系统中会有两个关键操作:

1
2
Retrieve(检索记忆)
Update(更新记忆)

五、总结

在 AI Agent 系统中,Memory 和 Context Management 是保证多轮推理和任务连续性的核心模块。

Memory 主要包括四类:

1
2
3
4
Short-term Memory
Long-term Memory
Episodic Memory
Semantic Memory

而 Context Management 的核心问题是:

1
Memory >> Context Window

因此系统需要通过:

  • Sliding Window
  • Summary Memory
  • Retrieval Memory

等方式进行上下文管理。


六、面试常见问题与答案

1 为什么 LLM 需要 Memory?

LLM 本身是无状态模型,每次调用都无法记住历史信息,因此需要 Memory 模块存储用户历史、任务状态以及系统信息,以支持多轮对话和复杂任务执行。


2 Context 和 Memory 的区别

Memory 是系统长期存储的信息,而 Context 是当前输入给 LLM 的 Prompt 内容。
通常流程是:

1
Memory → 检索 → Context → LLM

3 Agent Memory 有哪些类型?

常见类型包括:

  • Short-term Memory(会话记忆)
  • Long-term Memory(长期用户信息)
  • Episodic Memory(事件记忆)
  • Semantic Memory(知识记忆)

4 如何解决 Context Window 限制?

常见方法包括:

  • Sliding Window
  • Conversation Summary
  • Retrieval-based Memory

这些方法可以在有限的上下文窗口中保留最重要的信息。


5 Memory 如何实现?

常见实现方式包括:

  • Conversation History(短期记忆)
  • Vector Database(长期记忆)
  • SQL / Document Store(事件记忆)
  • Knowledge Base + RAG(知识记忆)

6 Memory 和 RAG 的区别

Memory 用于存储系统状态,例如用户信息或历史任务;
RAG 用于检索知识,例如文档或知识库。

因此可以理解为:

1
2
Memory → 状态管理
RAG → 知识检索

一文读懂 Context / Memory 设计:AI Agent 的核心能力
https://norushcoder.com/2026/03/11/Memory-And-Context-20260311/
作者
RichyLiu
发布于
2026年3月11日
许可协议