智能体记忆系统设计Skill memory-systems

本技能详细阐述了如何为AI智能体设计和实现分层记忆架构,涵盖从工作记忆到时序知识图谱的完整谱系。核心内容包括记忆层架构(工作、短期、长期、实体、时序知识图谱)、实现模式(文件系统、向量RAG、知识图谱)以及检索与整合策略。旨在解决智能体跨会话状态持久化、实体一致性维护和结构化知识推理等关键问题,适用于构建需要长期学习和复杂推理的AI应用系统。关键词:AI智能体,记忆系统,知识图谱,RAG,时序记忆,实体跟踪,跨会话持久化。

AI智能体 0 次安装 5 次浏览 更新于 3/2/2026

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})

指南

  1. 使记忆架构与查询需求相匹配
  2. 为记忆访问实现渐进式披露
  3. 使用时序有效性防止过时信息冲突
  4. 定期整合记忆以防止无限增长
  5. 优雅地设计记忆检索失败的处理
  6. 考虑持久化记忆的隐私影响
  7. 为关键记忆实现备份和恢复
  8. 随时间监控记忆增长和性能

集成

此技能建立在上下文基础之上。它连接到:

  • 多代理模式 - 跨代理的共享记忆
  • 上下文优化 - 基于记忆的上下文加载
  • 评估 - 评估记忆质量

参考文献

内部参考:

此集合中的相关技能:

  • 上下文基础 - 上下文基础知识
  • 多代理模式 - 跨代理记忆

外部资源:

  • 图数据库文档(Neo4j等)
  • 向量存储文档(Pinecone、Weaviate等)
  • 关于知识图谱和推理的研究

技能元数据

创建日期: 2025-12-20 最后更新: 2025-12-20 作者: Agent Skills for Context Engineering Contributors 版本: 1.0.0