Skip to content

如何为 LLM 构建持久化对话记忆系统

解决 AI 只有“瞬时记忆”的痛点:通过构建分层记忆架构(短时、长时、实体记忆),让 AI 能够跨会话记住用户偏好、关键事实和历史交互。

为什么需要这个技能

标准的 LLM 对话仅依赖于当前会话的上下文窗口。一旦对话过长导致 Token 溢出,或者用户开启新会话,之前的关键信息就会全部丢失。

为了让 AI 像真实的人类一样拥有“记忆”,需要一套持久化机制。这不仅是简单地存储聊天记录,还涉及如何从杂乱的对话中提取有效实体(如用户姓名、喜好)、如何筛选重要信息并将其从短时存储迁移到长时存储,以及如何在不撑爆上下文的情况下精准检索相关记忆。

适用场景

  • 个性化 AI 助手:需要记住用户的职业、习惯、项目背景。
  • 角色扮演/NPC 系统:需要维持角色在长期交互中的一致性。
  • 企业级客服机器人:在不同日期、不同会话中能够追踪用户的历史问题。

核心工作流

1. 设计分层记忆架构

构建一个由四层组成的记忆系统:

  • Buffer(缓冲区):当前会话的实时对话流。
  • Short-term(短时记忆):记录最近一段时间的交互,用于维持短期逻辑。
  • Long-term(长时记忆):存储经过筛选的高价值信息,跨会话持久化。
  • Entity(实体记忆):专门存储关于人、地、事、物的结构化事实(Fact)。

2. 实现记忆提取与固化

AI 不应存储所有内容,而应执行以下操作:

  • 实体提取:使用 LLM 将对话中的关键事实(如“我喜欢用 Python”)提取为 JSON 格式并更新到实体库。
  • 重要性评分:对短时记忆进行评分,仅将分数高于阈值(如 0.7)的信息迁移至长时记忆。
  • 定期固化:定时将过期但重要的短时记忆进行汇总,清理冗余数据。

3. 记忆增强提示词(Memory-Aware Prompting)

在调用 LLM 前,通过以下步骤动态构建 Context:

  • 语义检索:根据当前查询在长时记忆库中搜索最相关的片段。
  • 实体注入:检索与当前话题相关的已知实体事实。
  • 组合 Prompt:将 [系统提示词] + [相关长时记忆] + [相关实体] + [最近对话] 拼接,发送给 AI。
typescript
interface MemorySystem {
    buffer: ConversationBuffer;     // 当前会话
    shortTerm: ShortTermMemory;    //  session 级别
    longTerm: LongTermMemory;      // 跨 session 持久化
    entity: EntityMemory;          // 结构化事实
}

下载和安装

下载 conversation-memory 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐