Agent 的记忆机制
理解 Agent 的记忆机制:存储、检索与分层
在现代 AI 系统中,Agent 本身并不知道什么是“短期记忆”或“长期记忆”,它依赖记忆系统的规则来决定哪些信息需要保存、检索或遗忘。我们可以类比人类,但要注意,Agent 的记忆存在于外部存储,而非模型内部权重。
1. Agent 记忆的核心分类
现代 Agent 的记忆通常分为四种类型:
| 类型 | 内容 | 生命周期 |
|---|---|---|
| 工作记忆 (Working Memory) | 当前思考链、即时计算 | 秒级 |
| 会话记忆 (Session Memory) | 当前会话、临时任务 | 小时级 |
| 长期记忆 (Long-term Memory) | 用户偏好、历史决策 | 月/年级 |
| 知识记忆 (Knowledge Memory) | 项目知识库、文档、Wiki | 永久 |
注意:所有类型的记忆都需要存储 + 检索 + 更新 + 遗忘机制,而不仅仅是简单的数据库保存。
2. Agent 记忆存储的主流方案
方案 1:基于规则
最常见的方式,预先定义短期和长期信息规则。
-
短期记忆:
-
当前任务
-
当前会话
-
当前文件内容
-
最近执行的命令和错误
-
特点:任务结束后立即删除
-
-
长期记忆:
-
用户偏好
-
项目架构
-
编码规范
-
常用工具
-
历史决策
-
特点:写入数据库或向量库
-
示例:
用户输入:
“以后 Go 项目统一使用 GORM 事务封装”
Agent 判断:
“这是长期偏好,存入长期记忆。”
方案 2:LLM 自行判断
现代 Agent 更常用这种方式,让 LLM 根据上下文判断哪些信息值得长期保存。
示例 Prompt:
请判断以下信息是否值得长期保存:
1. 当前修复订单模块 Bug
2. 用户偏好使用 GORM
3. 本次测试失败
4. 用户公司统一使用 DDD 架构
模型返回:
[
{"memory": "用户偏好使用 GORM", "type": "long_term"},
{"memory": "用户公司统一使用 DDD 架构", "type": "long_term"}
]
方案 3:重要度评分
高级 Agent 会给信息打分,超过阈值的进入长期记忆。
| 信息 | 分数 |
|---|---|
| 当前报错 | 20 |
| 当前任务 | 40 |
| 用户喜欢 Go | 80 |
| 项目使用 DDD | 95 |
规则:
如果 score > 70 → 存入长期记忆
-
类似人脑,重复出现的信息更容易被记住。
方案 4:Memory Agent(专门管理记忆)
复杂系统会独立一个“记忆 Agent”,负责短期和长期记忆管理。
用户
│
▼
主 Agent
│
┌────────┴─────────┐
▼ ▼
Tool Agent Memory Agent
│
┌──────────┴─────────┐
▼ ▼
短期记忆 长期记忆
功能:
-
对话结束后自动整理
-
更新或删除过期偏好
-
与主 Agent 协作完成检索和注入上下文
3. 技术要点:检索与遗忘比存储更重要
3.1 记忆生命周期
-
产生 → 2. 筛选 → 3. 存储 → 4. 检索 → 5. 更新 → 6. 遗忘
示例:
-
三个月前用户喜欢 GORM
-
三个月后用户改用 SQLC
-
Agent 需要更新旧记忆,否则会出现冲突信息
3.2 检索比存储更重要
-
不能把全部记忆塞入 Prompt
-
必须先搜索相关记忆,再注入上下文
-
这一步通常称为 Memory Retrieval
示例:
用户问:
“帮我生成 Go 项目的事务封装代码”
Agent 检索:
-
喜欢 Go
-
使用 DDD
-
喜欢 GORM
注入 Prompt → 生成个性化回答
3.3 RAG vs Memory
| 类别 | 功能 | 示例 |
|---|---|---|
| RAG (Retrieval-Augmented Generation) | 检索外部知识 | MySQL 文档、公司 Wiki、PDF |
| Memory | 检索用户相关信息 | 用户偏好、项目使用框架 |
简单记忆口诀:
RAG 解决“我知道什么”
Memory 解决“我记得你什么”
3.4 Context Window 限制
-
LLM 本身只能看到有限的上下文(Context Window)
-
超出窗口的信息无法直接使用
-
Agent 利用长期记忆 + 检索 → 动态注入 Prompt
-
流程:
Memory → Retrieval → Prompt → LLM → Output
4. 现代 Agent 记忆分层示意
用户输入
│
▼
主 Agent
│
┌──────────┼──────────┐
▼ ▼ ▼
工作记忆 RAG 检索 长期记忆
│ │ │
└───────┬──┴─────────┘
▼
Prompt 构建
▼
LLM
▼
输出
▼
Memory Agent
│
┌───────────┴───────────┐
▼ ▼
更新长期记忆 删除过期记忆
-
工作记忆处理即时思考链
-
RAG 检索外部知识
-
Memory Agent 管理长期记忆、更新和遗忘
5. 类比人脑的局限性
-
人脑记忆:存储在神经网络权重中
-
Agent 记忆:存储在外部数据库/向量库
-
模型本身并不真正记住,只是“会查笔记的 LLM”
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)