Agent 记忆系统¶
背景知识
Agent 的记忆系统决定了它能"记住什么、忘记什么、如何检索"——这直接影响执行循环的质量和持续性。
1. 记忆的分类¶
| 记忆类型 | 技术实现 | 生命周期 | 用途 |
|---|---|---|---|
| 工作记忆 | 上下文窗口中的 system prompt + 近期消息 | 单次循环 | 当前任务的即时上下文 |
| 短期记忆 | 对话历史、临时缓冲区 | 单次会话 | 维持多轮对话连贯性 |
| 长期记忆 | 向量数据库、KV 存储 | 跨会话持久化 | 用户偏好、历史经验、知识库 |
| 情景记忆 | 结构化存储(时间线索引) | 跨会话持久化 | 过往交互的具体经历(何时做了什么、结果如何) |
核心问题:上下文窗口有限(即使 200K token 也会被复杂任务耗尽),如何在有限窗口中放入最相关的信息1?
2. 趋同的技术栈¶
2025 年后,主流记忆系统在写入、检索、遗忘三个环节的架构已基本趋同:
| 环节 | 趋同方案 | 说明 |
|---|---|---|
| 写入 | LLM 抽取 → embedding → 向量库 | 由 LLM 从对话中筛选值得持久化的事实,生成 embedding 后写入;图系统额外抽取实体和关系 |
| 检索 | 向量 + BM25 + 图遍历 + 时间索引 | 四路召回,RRF 融合排序(与 RAG 技术高度重合)→ 混合检索详解 |
| 遗忘 | 时间衰减 + 边失效 / ADD-only | 近期记忆权重更高;矛盾信息标记旧记录失效而非删除,保留演化链 |
各系统的差异化不在基础管线,而在记忆的组织结构(第 3 节)和上层管理策略(第 4 节)。
3. 结构化记忆组织¶
传统记忆系统将记忆视为扁平的向量集合或简单图结构,缺乏层次化和语义抽象。2025 年起,结构化记忆组织成为研究热点。共性思想:高层记忆是低层记忆的语义抽象,检索时逐层路由,避免全量相似度计算。
Hindsight:三通道记忆¶
Hindsight(MIT,9.8k stars)将记忆分为三通道2:
| 通道 | 内容 | 作用 |
|---|---|---|
| World | 客观事实 | 事实性知识存储 |
| Experiences | Agent 自身经历 | 情景记忆回溯 |
| Mental Models | 反思生成的洞察 | 高层抽象推理 |
内置时序索引,支持时间范围检索。提供 MCP 协议接入。
Graphiti:时序知识图谱¶
Graphiti(Apache-2.0,28k+ stars)是开源时序图引擎7。
四组件架构:
| 组件 | 内容 | 作用 |
|---|---|---|
| Entities(实体节点) | 人物、产品、概念等,摘要随时间演化 | 语义检索 |
| Facts / Relationships(事实边) | 实体→关系→实体三元组,携带时间有效窗口 | 精确事实检索 |
| Episodes(原始事件) | 原始消息/文本/JSON(非损失性) | 溯源引用 |
| Custom Types(本体) | 开发者通过 Pydantic 定义的实体/边类型 | 领域建模 |
核心创新——双时间线模型:
- 事件时间线 \(T\):事实实际发生的时间(支持解析"下周四"等相对时间)
- 摄入时间线 \(T'\):数据写入系统的时间(审计用途)
- 每条边携带四个时间戳(\(t'_{created}\)、\(t'_{expired}\)、\(t_{valid}\)、\(t_{invalid}\)),新信息矛盾时标记旧边失效而非删除,实现事实的版本化管理
Mem0:从图数据库到内置实体链接¶
Mem0(Apache-2.0,59k+ stars)经历了显著的架构演进8。记忆按四层作用域组织:
| 层级 | 生命周期 | 用途 |
|---|---|---|
| Conversation(会话) | 单次轮次 | 工具调用、中间计算 |
| Session(会话组) | 分钟到小时 | 多步骤任务流 |
| User(用户) | 跨会话持久化 | 个人偏好、账户状态 |
| Org(组织) | 全局配置 | 共享知识、策略文档 |
通过 user_id / agent_id / run_id / app_id 组合过滤,支持多租户和多 Agent 溯源。
对比与权衡¶
| 维度 | Hindsight | Graphiti | Mem0 |
|---|---|---|---|
| 记忆结构 | 三通道(平行分类) | 四组件图谱 | 四层作用域 + 实体链接 |
| 图结构 | ❌ | ✅ 完整知识图谱(Neo4j) | ⚠️ 内置实体链接(向量库) |
| 时序支持 | ✅ 时序索引 | ✅ 双时间线 + 边失效 | ⚠️ ADD-only 保留历史 |
| 社区发现 | ❌ | ✅ 标签传播 | ❌ |
| 部署复杂度 | 低 | 高(需 Neo4j) | 低(仅向量库) |
4. 记忆管理策略¶
上下文工程¶
记忆系统的核心问题不只是"存什么"和"取什么",还有如何管理上下文窗口本身。
ACE (Agentic Context Engineering)3 将上下文视为可演化的策略集合(playbooks),通过生成→反思→策展循环持续优化,防止迭代重写导致的上下文坍塌。MemAct4 更进一步:把记忆管理建模为 Agent 的可学习动作(何时保留、压缩、丢弃历史片段),通过 RL 训练策略,在任务性能和 token 效率间自动平衡。
程序化记忆¶
除了 episodic(发生了什么)和 semantic(知道什么)记忆,产品界开始关注第三种类型:procedural memory(如何做)。Mem0 在代码中实现了 MemoryType.PROCEDURAL(枚举中唯一实际启用的类型),但整体工具支持仍处于早期。
| 系统 | 核心机制 | 特点 |
|---|---|---|
| Mem^p5 | 轨迹蒸馏为步骤指令 + 高层脚本 | ACL 2026;动态更新/修正/废弃;开源 |
| MACLA6 | 贝叶斯选择 + 对比精炼 | AAMAS 2026 Oral;2851 轨迹 → 187 可复用程序(15:1 压缩);开源 |
共性价值:程序化记忆可迁移——强模型构建的记忆用于弱模型仍有显著增益,支持终身学习。
参考资料¶
-
Wang et al. A Survey on Large Language Model based Autonomous Agents. 2023. https://arxiv.org/abs/2308.11432 ↩
-
Hindsight is 20/20: Building Agent Memory that Retains, Recalls, and Reflects. 2025. https://arxiv.org/pdf/2512.12818 ↩
-
Agentic Context Engineering: Evolving Contexts for Self-Improving Language Models. 2025. https://www.microsoft.com/en-us/research/publication/agentic-context-engineering-evolving-contexts-for-self-improving-language-models/ ↩
-
Memory as Action: Autonomous Context Curation for Long-Horizon Agentic Tasks. 2025. https://arxiv.org/html/2510.12635v2 ↩
-
Mem^p: Exploring Agent Procedural Memory. 2025. https://www.arxiv.org/pdf/2508.06433 ↩
-
Learning Hierarchical Procedural Memory for LLM Agents through Bayesian Selection and Contrastive Refinement. 2025. https://arxiv.org/abs/2512.18950 ↩
-
Zep: A Temporal Knowledge Graph Architecture for Agent Memory. 2025. https://arxiv.org/abs/2501.13956 ↩
-
Chhikara et al. Mem0: Building Production-Ready AI Agents with Scalable Long-Term Memory. 2025. https://arxiv.org/abs/2504.19413 ↩