AI PRO·Context Day 4 记忆管理:让AI拥有长期记忆

作者:

![配图待生成]

一句话总结

记忆 = AI的”大脑”,让它能记住你的偏好、学习历史经验、避免重复犯错。

没有记忆的AI,每次对话都像第一次见面。有了记忆,AI才能成为真正的”助手”。


为什么需要记忆?

想象一下,你的助理每天早上都问你:

  • “你是谁?”
  • “你喜欢什么风格?”
  • “上次我们聊了什么?”

你会疯掉。

但大多数AI就是这样——每次对话都是全新的开始

记忆解决的问题

问题 没有记忆 有记忆

|——|———-|——–|

用户偏好 每次都要重新说明 自动应用已知偏好
历史上下文 不记得上次聊了什么 能延续之前的对话
经验教训 同样的错误反复犯 从错误中学习
个性化 对所有人都一样 根据用户调整

记忆的四层架构

人类记忆有不同类型,AI的记忆也应该分层:

`

┌─────────────────────────────────────┐

│ 第4层:Procedural Memory(程序记忆) │ ← 模式、工作流、教训

├─────────────────────────────────────┤

│ 第3层:Semantic Memory(语义记忆) │ ← 抽象知识、概念

├─────────────────────────────────────┤

│ 第2层:Episodic Memory(情景记忆) │ ← 具体事件、操作记录

├─────────────────────────────────────┤

│ 第1层:Working Memory(工作记忆) │ ← 当前对话上下文

└─────────────────────────────────────┘

`

各层详解

第1层:Working Memory(工作记忆)

  • 是什么:当前对话的上下文
  • 生命周期:会话结束就消失
  • 例子:刚才用户说了什么,AI回了什么
  • 技术实现:对话历史、滑动窗口

第2层:Episodic Memory(情景记忆)

  • 是什么:具体的事件和操作记录
  • 生命周期:持久化,长期保存
  • 例子:上次帮用户写了Day40的文章,主题是AI搜索
  • 技术实现:事件日志、操作记录

第3层:Semantic Memory(语义记忆)

  • 是什么:抽象的知识和概念
  • 生命周期:持久化,可更新
  • 例子:用户喜欢亲切专业的风格,不要emoji
  • 技术实现:知识图谱、概念聚类

第4层:Procedural Memory(程序记忆)

  • 是什么:模式、工作流、教训
  • 生命周期:持久化,可强化/衰减
  • 例子:用户对排版要求很高,要用standard模板
  • 技术实现:教训库、置信度评分

记忆的生命周期

记忆不是永久不变的,它有自己的生命周期:

`

创建 → 存储 → 检索 → 使用 → 更新/衰减

`

衰减机制

不常用的记忆会逐渐”遗忘”:

`

记忆强度 = 初始强度 × e^(-λ × 时间)

λ = 衰减系数(越大衰减越快)

时间 = 距离上次访问的时间

`

实际效果:

  • 每天都用的记忆:强度保持100%
  • 一周没用的记忆:强度降到50%
  • 一个月没用的记忆:强度降到10%

强化机制

当记忆被成功使用时,强度会增强:

`

新强度 = 旧强度 + (1 – 旧强度) × 强化系数

`

实际效果:

  • 用得越多的记忆,越不容易被遗忘
  • 像肌肉一样,越用越强

记忆的存储和检索

存储策略

类型 存储位置 格式

|——|———-|——|

Working Memory 内存 对话历史数组
Episodic Memory 数据库 事件记录(时间、内容、类型)
Semantic Memory 知识图谱 实体-关系-实体
Procedural Memory 教训库 教训 + 置信度 + 标签

检索策略

1. 时间检索

`sql

SELECT * FROM memories

WHERE user_id = ‘climbing’

ORDER BY created_at DESC

LIMIT 10

`

2. 语义检索

`python

# 计算查询与记忆的相似度

query_embedding = embed(“用户的写作风格”)

memory_embeddings = [embed(m.content) for m in memories]

similarities = cosine_similarity(query_embedding, memory_embeddings)

top_memories = get_top_k(memories, similarities, k=5)

`

3. 混合检索

`

结果 = 语义检索结果 ∪ 时间检索结果

按相关度 + 时间排序

`


记忆的写入时机

什么时候应该写入记忆?

  1. 用户明确表达偏好
  • “我不喜欢emoji”
  • “我喜欢亲切专业的风格”

→ 写入Semantic Memory

  1. 完成重要任务
  • “Day40早课已发布”
  • “用户的问题已解决”

→ 写入Episodic Memory

  1. 发现重要模式
  • “用户总是要求高质量排版”
  • “用户对响应速度敏感”

→ 写入Semantic Memory

  1. 学到经验教训
  • “标题不能用emoji,否则发布失败”
  • “用户不喜欢被问太多问题”

→ 写入Procedural Memory

什么时候不应该写入记忆?

  1. 临时信息
  • “帮我算一下1+1”

→ 不需要记忆

  1. 一次性任务
  • “帮我查一下天气”

→ 不需要记忆

  1. 敏感信息
  • 密码、token、私钥

→ 绝对不能写入记忆


记忆的反思机制

什么是反思?

定期回顾记忆,提炼更高层次的知识:

`

Episodic Memory: “Day40写了AI搜索,Day41写了AI笔记…”

↓ 反思

Semantic Memory: “用户正在进行AI教程系列,当前进度Day41”

↓ 反思

Procedural Memory: “每篇文章需要包含天气banner、配图、地铁深读板块”

`

反思的触发条件

  1. 定时触发:每天/每周自动反思
  2. 事件触发:完成重要任务后反思
  3. 阈值触发:记忆数量超过阈值时反思

反思的输出

  • 合并重复记忆:相同内容的记忆合并
  • 提炼模式:从多个事件中提取规律
  • 更新置信度:根据使用情况调整教训的置信度
  • 清理过期记忆:删除不再相关的记忆

实际案例:Hermes的记忆系统

Hermes Agent使用的是4级记忆系统

1. Working Memory

  • 当前对话历史
  • 每次新对话重新开始

2. Episodic Memory

  • 通过memory_recall存储
  • 记录具体事件和操作
  • 支持语义搜索

3. Semantic Memory

  • 通过memory_save存储
  • 保存重要洞察和决策
  • 支持概念聚类

4. Procedural Memory

  • 通过memory_lesson_save存储
  • 保存经验教训
  • 带置信度评分
  • 使用时自动强化

记忆固化流程

`python

# 4级记忆固化

working → episodic → semantic → procedural

# 定期执行

memory_consolidate(tier=”episodic”)

memory_consolidate(tier=”semantic”)

memory_consolidate(tier=”procedural”)

`


🚇 地铁深读:记忆与幻觉的关系

记忆如何减少幻觉?

  1. 提供事实依据
  • 没有记忆:AI凭空编造
  • 有记忆:AI基于历史事实回答
  1. 保持一致性
  • 没有记忆:每次回答可能矛盾
  • 有记忆:回答与历史一致
  1. 标注来源
  • 没有记忆:无法追溯
  • 有记忆:可以说明”根据上次的记录…”

记忆也可能导致问题

  1. 过时信息
  • 记忆中的信息可能已经过时
  • 需要定期更新和清理
  1. 错误记忆
  • 如果存储了错误信息,会影响后续回答
  • 需要验证机制
  1. 隐私风险
  • 记忆可能包含敏感信息
  • 需要访问控制和加密

今日小结

记忆层级 内容 生命周期

|———-|——|———-|

Working Memory 当前对话 会话级
Episodic Memory 具体事件 持久化
Semantic Memory 抽象知识 持久化
Procedural Memory 模式和教训 持久化+强化

一句话记住: 记忆让AI从”每次都是陌生人”变成”老朋友”。


下期预告

AI PRO·Context Day 5 工具描述与动态组装:让AI正确使用工具

我们将深入解析如何为AI设计工具描述,以及如何根据任务动态组装上下文。


*攀岩者 | 技术总监 | 19年IT全栈实战*

*每天分享AI学习笔记,陪你从零基础到AI达人*

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注