name: memory-systems description: 为智能体系统设计和实现记忆架构。在构建需要跨会话保持状态、维护实体一致性或对结构化知识进行推理的智能体时使用。
记忆系统设计
记忆提供了持久化层,使智能体能够跨会话保持连续性,并对积累的知识进行推理。简单的智能体完全依赖上下文作为记忆,当会话结束时所有状态都会丢失。复杂的智能体实现了分层的记忆架构,以平衡即时上下文需求与长期知识保留。从向量存储到知识图谱,再到时序知识图谱的演变,代表了为改进检索和推理而对结构化记忆的日益重视。
何时激活
在以下情况激活此技能:
- 构建必须跨会话持久化的智能体
- 需要在对话中跨会话维护实体一致性
- 实现对积累知识的推理
- 设计能从过去交互中学习的系统
- 创建随时间增长的知识库
- 构建跟踪状态变化的时序感知系统
核心概念
记忆存在于从即时上下文到永久存储的连续谱系中。在一个极端,上下文窗口中的工作记忆提供零延迟访问,但在会话结束时消失。在另一个极端,永久存储无限期地持久化,但需要检索才能进入上下文。
简单的向量存储缺乏关系和时序结构。知识图谱保留关系以进行推理。时序知识图谱为时序感知查询添加了有效期。实现选择取决于查询复杂性、基础设施约束和准确性要求。
详细主题
记忆架构基础
上下文-记忆谱系 记忆存在于从即时上下文到永久存储的连续谱系中。在一个极端,上下文窗口中的工作记忆提供零延迟访问,但在会话结束时消失。在另一个极端,永久存储无限期地持久化,但需要检索才能进入上下文。有效的架构使用此谱系中的多个层次。
该谱系包括工作记忆(上下文窗口,零延迟,易失性)、短期记忆(会话持久,可搜索,易失性)、长期记忆(跨会话持久,结构化,半永久性)和永久记忆(归档,可查询,永久性)。每一层都有不同的延迟、容量和持久性特征。
为什么简单的向量存储不足 向量RAG通过在共享嵌入空间中嵌入查询和文档来提供语义检索。相似性搜索检索语义最相似的文档。这对于文档检索效果很好,但缺乏智能体记忆所需的结构。
向量存储丢失关系信息。如果智能体了解到“客户X在日期Z购买了产品Y”,向量存储可以在被直接询问时检索到这个事实。但它无法回答“购买了产品Y的客户还购买了哪些产品?”,因为没有保留关系结构。
向量存储也难以处理时序有效性。事实会随时间变化,但向量存储除了通过显式元数据和过滤外,没有机制来区分“当前事实”和“过时事实”。
向基于图的记忆演进 知识图谱保留实体之间的关系。与孤立的文档块不同,图谱编码了实体A与实体B具有关系R。这使得能够遍历关系而不仅仅是相似性的查询。
时序知识图谱为事实添加了有效期。每个事实都有一个“有效起始”时间戳和可选的“有效截止”时间戳。这使得能够进行时间旅行查询,重建特定时间点的知识。
基准性能比较 深度记忆检索(DMR)基准提供了跨记忆架构的具体性能数据:
| 记忆系统 | DMR准确率 | 检索延迟 | 备注 |
|---|---|---|---|
| Zep (时序KG) | 94.8% | 2.58s | 最佳准确率,快速检索 |
| MemGPT | 93.4% | 可变 | 良好的通用性能 |
| GraphRAG | ~75-85% | 可变 | 比基线RAG提升20-35% |
| Vector RAG | ~60-70% | 快速 | 丢失关系结构 |
| 递归总结 | 35.3% | 低 | 严重信息丢失 |
与完整上下文基线相比,Zep的检索延迟降低了90%(2.58秒 vs GPT-5.2的28.9秒)。这种效率来自于仅检索相关子图,而不是整个上下文历史。
在复杂推理任务中,GraphRAG比基线RAG实现了大约20-35%的准确率提升,并通过基于社区的总结将幻觉减少高达30%。
记忆层架构
第1层:工作记忆 工作记忆就是上下文窗口本身。它提供对当前正在处理的信息的即时访问,但容量有限,并且在会话结束时消失。
工作记忆使用模式包括:跟踪中间结果的草稿计算、为当前任务保存对话的对话历史、跟踪活动目标进度的当前任务状态,以及保存当前正在使用的信息的活动检索文档。
通过仅保留活动信息、在信息脱离注意力之前总结已完成的工作,以及对关键信息使用注意力有利位置来优化工作记忆。
第2层:短期记忆 短期记忆在当前会话中持久化,但不会跨会话。它提供搜索和检索功能,而无需永久存储的延迟。
常见的实现包括:持续到会话结束的会话范围数据库、指定会话目录中的文件系统存储,以及按会话ID键控的内存缓存。
短期记忆的用例包括:在不塞满上下文的情况下跨轮次跟踪对话状态、存储工具调用的中间结果以备后用、维护任务清单和进度跟踪,以及在会话内缓存检索到的信息。
第3层:长期记忆 长期记忆无限期地跨会话持久化。它使智能体能够从过去的交互中学习,并随时间积累知识。
长期记忆的实现范围从简单的键值存储到复杂的图数据库。选择取决于要建模的关系复杂性、所需的查询模式以及可接受的基础设施复杂性。
长期记忆的用例包括:跨会话学习用户偏好、构建随时间增长的领域知识库、维护具有关系历史的实体注册表,以及存储可以重用的成功模式。
第4层:实体记忆 实体记忆专门跟踪关于实体(人、地点、概念、对象)的信息以保持一致性。这创建了一个初步的知识图谱,其中实体在多次交互中被识别。
实体记忆通过跟踪在一次对话中提到的“John Doe”与另一次对话中是同一个人来维护实体身份。它通过存储随时间发现的关于实体的事实来维护实体属性。它通过跟踪随着发现而建立的实体之间的关系来维护实体关系。
第5层:时序知识图谱 时序知识图谱通过显式有效期扩展了实体记忆。事实不仅仅是真或假,而是在特定时间范围内为真。
这使得能够进行诸如“用户在日期X的地址是什么?”之类的查询,通过检索在该日期范围内有效的事实。它防止了过时信息与新数据冲突时的上下文冲突。它使得能够对实体随时间的变化进行时序推理。
记忆实现模式
模式1:文件系统即记忆 文件系统本身可以作为一个记忆层。这种模式简单,不需要额外的基础设施,并且支持使基于文件系统的上下文有效的即时加载。
实现使用文件系统层次结构进行组织。使用传达含义的命名约定。以结构化格式(JSON、YAML)存储事实。在文件名或元数据中使用时间戳进行时序跟踪。
优点:简单性、透明性、可移植性。 缺点:无语义搜索、无关系跟踪、需要手动组织。
模式2:带元数据的向量RAG 增强丰富元数据的向量存储提供具有过滤功能的语义搜索。
实现嵌入事实或文档,并存储带有元数据的信息,包括实体标签、时序有效性、来源归属和置信度分数。查询包括元数据过滤器以及语义搜索。
模式3:知识图谱 知识图谱显式地建模实体和关系。实现定义实体类型和关系类型,使用图数据库或属性图存储,并为常见查询模式维护索引。
模式4:时序知识图谱 时序知识图谱为事实添加有效期,使得能够进行时间旅行查询,并防止过时信息导致的上下文冲突。
记忆检索模式
语义检索 使用嵌入相似性搜索检索与当前查询语义相似的记忆。
基于实体的检索 通过遍历图关系检索与特定实体相关的所有记忆。
时序检索 使用有效期过滤器检索在特定时间或时间范围内有效的记忆。
记忆整合
记忆随时间积累,需要整合以防止无限增长并移除过时信息。
整合触发器 在大量记忆积累后、当检索返回过多过时结果时、定期按计划或在请求显式整合时触发整合。
整合过程 识别过时事实、合并相关事实、更新有效期、归档或删除废弃事实,以及重建索引。
实践指导
与上下文的集成
记忆必须与上下文系统集成才能有用。使用即时记忆加载在需要时检索相关记忆。使用策略性注入将记忆放置在注意力有利位置。
记忆系统选择
根据需求选择记忆架构:
- 简单的持久化需求:文件系统记忆
- 语义搜索需求:带元数据的向量RAG
- 关系推理需求:知识图谱
- 时序有效性需求:时序知识图谱
示例
示例1:实体跟踪
# 跨对话跟踪实体
def remember_entity(entity_id, properties):
memory.store({
"type": "entity",
"id": entity_id,
"properties": properties,
"last_updated": now()
})
def get_entity(entity_id):
return memory.retrieve_entity(entity_id)
示例2:时序查询
# 用户在2024年1月15日的地址是什么?
def query_address_at_time(user_id, query_time):
return temporal_graph.query("""
MATCH (user)-[r:LIVES_AT]->(address)
WHERE user.id = $user_id
AND r.valid_from <= $query_time
AND (r.valid_until IS NULL OR r.valid_until > $query_time)
RETURN address
""", {"user_id": user_id, "query_time": query_time})
指南
- 使记忆架构与查询需求相匹配
- 为记忆访问实现渐进式披露
- 使用时序有效性防止过时信息冲突
- 定期整合记忆以防止无限增长
- 优雅地设计记忆检索失败的处理
- 考虑持久化记忆的隐私影响
- 为关键记忆实现备份和恢复
- 随时间监控记忆增长和性能
集成
此技能建立在上下文基础之上。它连接到:
- 多代理模式 - 跨代理的共享记忆
- 上下文优化 - 基于记忆的上下文加载
- 评估 - 评估记忆质量
参考文献
内部参考:
- 实现参考 - 详细的实现模式
此集合中的相关技能:
- 上下文基础 - 上下文基础知识
- 多代理模式 - 跨代理记忆
外部资源:
- 图数据库文档(Neo4j等)
- 向量存储文档(Pinecone、Weaviate等)
- 关于知识图谱和推理的研究
技能元数据
创建日期: 2025-12-20 最后更新: 2025-12-20 作者: Agent Skills for Context Engineering Contributors 版本: 1.0.0