用途
该技能用于设计短期记忆、长期记忆以及基于图的记忆架构。当任务明确匹配以下范围时启用:构建需要跨会话持久化的智能体;需要在多轮对话之间保持实体一致性;需要对积累的知识进行推理;设计能从过往交互中学习的系统;创建随时间增长的知识库;构建追踪状态变化的时间感知系统。
核心概念
记忆存在于从即时上下文到永久存储的谱系上。一端是上下文窗口中的工作记忆,提供零延迟访问,但会话结束即消失;另一端是永久存储,可无限期保留,但需要检索才能进入上下文。有效的架构在这一谱系上使用多个层级。
谱系包括:工作记忆(上下文窗口、零延迟、易失)、短期记忆(会话内持久、可搜索、易失)、长期记忆(跨会话持久、结构化、半永久)、永久记忆(归档、可查询、永久)。每一层的延迟、容量和持久性特征各不相同。
简单向量存储存在不足:向量 RAG 通过将查询与文档嵌入共享嵌入空间来提供语义检索,相似度搜索能取回语义最相似的文档,这在文档检索上表现良好,但缺少适用于智能体记忆的结构。向量存储会丢失关系信息:若智能体得知“客户 X 在日期 Z 购买了产品 Y”,向量存储在被直接询问时可取回该事实,但无法回答“购买产品 Y 的客户还买了哪些产品”,因为关系结构未被保留。向量存储也难以处理时间有效性:事实随时间变化,而向量存储没有机制区分“当前事实”与“过时事实”,除非借助显式元数据和过滤。
向基于图的记忆演进:知识图谱保留实体之间的关系,不再使用孤立的文本块,而是编码实体 A 与实体 B 之间存在关系 R,从而支持遍历关系而非仅靠相似度的查询。时间知识图谱为事实添加有效期,每个事实带有“生效起始”时间戳,并可选带“生效截止”时间戳,从而支持时间旅行查询,重建特定时间点的知识。
基准性能对比
深度记忆检索(DMR)基准提供了跨记忆架构的具体性能数据:
| 记忆系统 | DMR 准确率 | 检索延迟 | 说明 |
|---|---|---|---|
| Zep(时间知识图谱) | 94.8% | 2.58s | 准确率最佳,检索快 |
| MemGPT | 93.4% | 可变 | 整体表现良好 |
| GraphRAG | 约 75-85% | 可变 | 相较基线 RAG 提升 20-35% |
| 向量 RAG | 约 60-70% | 快 | 丢失关系结构 |
| 递归摘要 | 35.3% | 低 | 信息损失严重 |
Zep 相比全上下文基线,检索延迟降低 90%(2.58s 对 GPT-5.2 的 28.9s),这种效率来自只检索相关子图而非完整上下文历史。GraphRAG 在复杂推理任务上相较基线 RAG 准确率提升约 20-35%,并通过基于社区的摘要将幻觉降低最多 30%。
记忆分层架构
第 1 层:工作记忆
工作记忆就是上下文窗口本身,提供对当前处理信息的即时访问,但容量有限,会话结束即消失。使用模式包括:暂存计算,智能体在其中跟踪中间结果;对话历史,为当前任务保留对话;当前任务状态,跟踪进行中目标的进展;当前检索到的文档,保存正在使用的信息。优化方式:只保留活动信息;在已完成工作脱离注意力前先摘要;把关键信息放在受注意力偏好的位置。
第 2 层:短期记忆
短期记忆在当前会话内持久,但不跨会话。它提供搜索与检索能力,且没有永久存储的延迟。常见实现包括:会话作用域数据库(保留到会话结束)、指定会话目录中的文件系统存储、按会话 ID 键控的内存缓存。用例包括:跨轮次跟踪对话状态而无需塞满上下文;存储后续可能需要的工具调用中间结果;维护任务清单与进度跟踪;在会话内缓存已检索信息。
第 3 层:长期记忆
长期记忆跨会话无限期持久,使智能体能从过往交互中学习并随时间积累知识。实现范围从简单键值存储到复杂图数据库,选择取决于要建模的关系复杂度、所需查询模式以及可接受的基础设施复杂度。用例包括:跨会话学习用户偏好;构建随时间增长的领域知识库;维护带关系历史的实体注册表;存储可复用的成功模式。
第 4 层:实体记忆
实体记忆专门跟踪关于实体(人、地点、概念、对象)的信息以保持一致,形成初步知识图谱,使实体在多次交互中被识别。它通过跟踪一次对话中提到的“John Doe”与另一次是同一人来维护实体身份;通过存储随时间发现的实体事实来维护实体属性;通过跟踪实体的关系来维护实体关系。
第 5 层:时间知识图谱
时间知识图谱以显式有效期扩展实体记忆。事实不只是真或假,而是在特定时间范围内为真。这支持诸如“用户在日期 X 的地址是什么”的查询,通过取回该日期范围内有效的事实实现;当日久信息与新数据冲突时可防止上下文冲突;并支持对实体如何随时间变化的时序推理。
记忆实现模式
模式 1:文件系统即记忆。文件系统本身可作为记忆层。该模式简单,无需额外基础设施,并能实现使基于文件系统的上下文生效的按需加载。实现方式:使用文件系统层级进行组织;使用能表达含义的命名约定;以结构化格式(JSON、YAML)存储事实;在文件名或元数据中使用时间戳进行时间跟踪。优点:简单、透明、可移植;缺点:无语义搜索、无关系跟踪、需人工组织。
模式 2:带元数据的向量 RAG。用丰富元数据增强的向量存储,提供带过滤能力的语义搜索。实现方式:嵌入事实或文档,并与元数据一起存储,元数据包括实体标签、时间有效性、来源归属、置信度分数;查询时在语义搜索之外加入元数据过滤。
模式 3:知识图谱。知识图谱显式建模实体与关系。实现方式:定义实体类型与关系类型;使用图数据库或属性图存储;为常见查询模式维护索引。
模式 4:时间知识图谱。时间知识图谱为事实添加有效期,支持时间旅行查询,并防止过时信息引发的上下文冲突。
记忆检索模式
语义检索:使用嵌入相似度搜索,取回与当前查询语义相似的记忆。
基于实体的检索:通过遍历图关系,取回与特定实体相关的所有记忆。
时间检索:使用有效期过滤,取回在特定时间或时间范围内有效的记忆。
记忆整合
记忆会随时间积累,需要整合以防止无边界增长并移除过时信息。
整合触发条件:在记忆显著积累后触发;当检索返回过多过时结果时;按计划定期触发;或显式请求整合时。
整合流程:识别过时事实;合并相关事实;更新有效期;归档或删除废弃事实;重建索引。
实践指导
与上下文集成:记忆必须与上下文系统集成才有用。使用按需记忆加载,在需要时检索相关记忆;使用策略性注入,把记忆放在受注意力偏好的位置。
记忆系统选择:简单持久化需求选文件系统记忆;语义搜索需求选带元数据的向量 RAG;关系推理需求选知识图谱;时间有效性需求选时间知识图谱。
示例
示例 1:实体跟踪
# Track entity across conversations
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:时间查询
# What was the user's address on January 15, 2024?
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})
指南
让记忆架构匹配查询需求;对记忆访问实现渐进式披露;使用时间有效性防止过时信息冲突;定期整合记忆防止无边界增长;为记忆检索失败设计优雅降级;考虑持久记忆的隐私影响;为关键记忆实现备份与恢复;随时间监控记忆增长与性能。
集成
该技能基于 context-fundamentals。它连接到:multi-agent-patterns(跨智能体共享记忆)、context-optimization(基于记忆的上下文加载)、evaluation(评估记忆质量)。
参考资料
内部参考:Implementation Reference(详细实现模式)。本集合中的相关技能:context-fundamentals(上下文基础)、multi-agent-patterns(跨智能体记忆)。外部资源:图数据库文档(Neo4j 等)、向量存储文档(Pinecone、Weaviate 等)、知识图谱与推理研究。
技能元数据
创建时间:2025-12-20;最后更新:2025-12-20;作者:Agent Skills for Context Engineering Contributors;版本:1.0.0。
限制
仅在任务明确匹配上述范围时使用该技能。不要将输出视为环境特定验证、测试或专家评审的替代品。如果缺少所需输入、权限、安全边界或成功标准,应停止并请求澄清。