记忆类型概览
Agent 需要记忆来维持连贯性与个性化。按时间跨度和用途,可分为:
短期记忆(Working Memory)
- 范围:当前会话或最近若干轮对话
- 实现:通常保存在内存中的
messages列表,直接作为 LLM 的 context - 特点:容量有限(受上下文窗口限制),会话结束即丢失
- 优化:滑动窗口、摘要压缩,将早期对话压缩为摘要再拼接
长期记忆(Long-term Memory)
- 范围:跨会话、跨用户(若支持多租户)
- 实现:持久化到数据库、向量库、图数据库等
- 内容:用户偏好、重要事实、历史决策、关系网络
- 检索:按语义或元数据检索,在需要时注入当前上下文
情景记忆与语义记忆
- 情景记忆:具体事件(如「上周用户询问过 X」),带时间、主体等元数据
- 语义记忆:抽象知识(如「用户偏好简洁回复」),可泛化到新场景
Mem0 简介
Mem0 是一个开源的 Agent 记忆框架,提供:
- 自动提取:从对话中识别可存储的记忆(事实、偏好、承诺等)
- 存储与索引:支持向量存储、图存储等多种后端
- 检索:根据当前 query 检索相关记忆,注入 Prompt
- 更新与遗忘:支持记忆的修正、合并,以及基于时间或重要性的遗忘策略
向量存储在记忆中的应用
向量存储适合「语义检索」型记忆:
结合 Reranker 可进一步提升召回质量。
设计建议
- 短期记忆控制长度,避免超出上下文窗口
- 长期记忆要有明确的写入策略,避免噪声积累
- 为用户提供「查看/删除记忆」的能力,符合隐私与可控性要求
- 记忆更新与遗忘策略要可配置,适应不同业务场景
小结
从短期对话上下文到长期持久化记忆,Agent 记忆系统决定了其连贯性与个性化程度。Mem0 与向量存储为长期记忆提供了现成方案,合理设计写入、检索与遗忘策略,可构建可持续学习的 Agent 系统。