SuperAPI AI 工具集

memory-systems

智能体与模型

查看项目

更新于 10-15 18:09

技能介绍

用途

该技能用于设计短期记忆、长期记忆以及基于图的记忆架构。当任务明确匹配以下范围时启用:构建需要跨会话持久化的智能体;需要在多轮对话之间保持实体一致性;需要对积累的知识进行推理;设计能从过往交互中学习的系统;创建随时间增长的知识库;构建追踪状态变化的时间感知系统。

核心概念

记忆存在于从即时上下文到永久存储的谱系上。一端是上下文窗口中的工作记忆,提供零延迟访问,但会话结束即消失;另一端是永久存储,可无限期保留,但需要检索才能进入上下文。有效的架构在这一谱系上使用多个层级。

谱系包括:工作记忆(上下文窗口、零延迟、易失)、短期记忆(会话内持久、可搜索、易失)、长期记忆(跨会话持久、结构化、半永久)、永久记忆(归档、可查询、永久)。每一层的延迟、容量和持久性特征各不相同。

简单向量存储存在不足:向量 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。

限制

仅在任务明确匹配上述范围时使用该技能。不要将输出视为环境特定验证、测试或专家评审的替代品。如果缺少所需输入、权限、安全边界或成功标准,应停止并请求澄清。