OpenClaw学习总结_I_核心架构_5:Memory系统详解

I. 核心架构 - 5. Memory 系统

📍 课程位置

阶段 :I. 核心架构
课序 :第 5 课
前置知识 :I-4. Session 管理
后续课程:I-6. Compaction


🎯 本课核心问题

如果你问我:"Agent 怎么知道'上次用户说很喜欢蓝色的衣服'?Session 之外还有记忆吗?"

我会这样回答 :这就是 Memory(记忆)系统 ------它给 Agent 提供了跨会话的长期记忆能力。


📚 Memory vs Session

Session 的记忆(短期)

  • 存在 Session 文件中
  • 随着 Session 结束或重置而消失
  • 通常只保留本次对话的内容

Memory 的记忆(长期)

  • 独立于 Session
  • 永久保存(除非删除)
  • 可以跨多个会话访问

类比

  • Session = 短期记忆(今天开会讨论了什么)
  • Memory = 长期记忆(用户的基本信息、偏好)

🔍 Memory 的核心机制

1. 向量搜索(Vector Search)

是什么:用数学方法找"相关内容"

类比

  • 你记得"用户说喜欢蓝色"
  • 但不记得具体哪句话
  • 向量搜索能帮你找到"相关的"内容

工作原理

复制代码
1. 把文字转换成"向量"(一串数字)
2. 相似的内容 → 相似的向量
3. 搜索时,找"最接近"的向量

2. 混合搜索(Hybrid Search)

是什么:结合两种搜索方式

两种搜索

  • 向量搜索:语义相似("狗"能找到"宠物")
  • 关键词搜索:精确匹配("蓝色"只找到"蓝色")

为什么需要混合

  • 向量搜索可能"太模糊"
  • 关键词搜索可能"太死板"
  • 混合起来最准确

3. MMR(Maximal Marginal Relevance)

是什么:保证结果"多样性"的算法

问题

  • 如果搜"苹果",可能全是"水果苹果"
  • 但用户可能想问"苹果手机"

MMR 的作用

  • 在相关的结果中,选择多样化的
  • 避免重复,选择有代表性的

4. 时间衰减(Temporal Decay)

是什么:越新的记忆越"重要"

类比

  • 你记得上周的会议
  • 但不记得上个月的会议
  • 越近的记忆越清晰

作用

  • 搜索时,优先返回新内容
  • 旧内容不会完全消失,但权重降低

🔧 实战:配置 Memory

查看当前 Memory 配置

bash 复制代码
# 查看配置
openclaw config get agents.defaults.memory

# 查看 Memory 文件
ls -la ~/.openclaw/memory/

配置示例

json5 复制代码
{
  "agents": {
    "defaults": {
      "memory": {
        // 启用 Memory
        "enabled": true,
        
        // 向量搜索
        "vector": {
          "enabled": true,
          "provider": "openai",  // openai | anthropic
          "model": "text-embedding-3-small"
        },
        
        // 关键词搜索
        "bm25": {
          "enabled": true
        },
        
        // 搜索策略
        "search": {
          "mode": "hybrid",  // hybrid | vector | bm25
          "limit": 5,        // 返回多少条
          "mmr": true        // 是否启用多样性
        },
        
        // 时间衰减
        "temporal": {
          "enabled": true,
          "decayRate": 0.99  // 衰减率
        }
      }
    }
  }
}

手动添加记忆

bash 复制代码
# 添加一条记忆
openclaw memory add "用户喜欢蓝色,最尺寸 M"

# 搜索记忆
openclaw memory search "用户偏好"

📁 Memory 文件结构

文件位置

复制代码
~/.openclaw/memory/
├── index.json          # 向量索引
├── memory.jsonl        # 记忆内容
└── metadata.json       # 元信息

记忆格式

json 复制代码
{
  "id": "mem_xxx",
  "content": "用户喜欢蓝色",
  "createdAt": "2024-01-01T00:00:00Z",
  "updatedAt": "2024-01-01T00:00:00Z",
  "tags": ["preference", "color"],
  "source": "session_xxx"
}

⚠️ 常见陷阱

陷阱 表现 原因 解决
搜索不到 "找不到之前说的" 记忆没被正确索引 检查 Memory 是否启用
结果太杂 返回不相关内容 MMR 没启用 启用 MMR
太旧 总是返回旧信息 时间衰减配置不当 调整衰减率
隐私泄露 用户的隐私被其他用户搜到 Memory 没隔离 配置 Memory 隔离

📝 学习心得

我学这一课时的体会

我以前以为"记忆"很简单,就是"保存内容"。

学完后才知道:

  • 向量搜索是"语义理解"的基础
  • 混合搜索比单一搜索更准确
  • 时间衰减让记忆更"智能"

最大的收获是:Memory 和 Session 是互补的

  • Session = 本次对话
  • Memory = 跨会话的长期记忆

与其他课程的关联

  • 前置课程:Session 管理 - Session 是短期记忆
  • 后续课程:Compaction - 压缩技术
  • 配合课程:Multi-Agent - 多 Agent 的记忆隔离

✅ 你现在应该理解的

  • 解释 Memory 和 Session 的区别
  • 说出向量搜索的原理
  • 解释混合搜索和 MMR
  • 知道时间衰减的作用
  • 能配置基本的 Memory 参数

📚 快速参考表

概念 简单说
Memory 跨会话的长期记忆
向量搜索 用语义相似度找内容
混合搜索 向量+关键词组合搜索
MMR 保证结果多样性
时间衰减 越新的记忆权重越高

🔗 相关资源

官方文档

相关课程

  • 上一课:I-4. Session 管理
  • 下一课:I-6. Compaction

📊 本课总结

最关键的 3 点

  1. Memory = 长期记忆

    • 跨会话保存
    • 独立于 Session
  2. 搜索技术

    • 向量搜索(语义)
    • 混合搜索(更准)
    • MMR(多样化)
  3. 时间衰减

    • 新内容权重高
    • 旧内容不会被删除

现在你应该理解了 Agent 的"长期记忆"机制。下一课会讲如何"压缩"这些记忆来节省空间(Compaction)。

相关推荐
却道天凉_好个秋2 小时前
音视频学习(九十八):Profile
学习·音视频·profile
feasibility.2 小时前
Agent-Reach赋能OpenClaw成为信息管家:实现GitHub/X/b站/小红书等十大平台信息获取(含手动安装)
人工智能·github·微信公众平台·新浪微博·小红书·openclaw·agent-reach
shangjian0072 小时前
OpenClaw学习笔记-01-架构篇
笔记·学习·架构
少许极端2 小时前
算法奇妙屋(三十四)-贪心算法学习之路 1
学习·算法·贪心算法
lucky_syq2 小时前
Windows电脑部署OpenClaw保姆级教程(2026最新版)
人工智能·windows·开源·电脑·openclaw
碳基硅坊2 小时前
OpenClaw接入企业微信
人工智能·企业微信·openclaw
551只玄猫2 小时前
【基于python的金融分析和风险管理 学习笔记】中阶篇 第6章 分析利率和汇率
笔记·python·学习·金融·学习笔记·汇率·利率
孤独的小丑2 小时前
OpenClaw学习资源汇编
汇编·学习
悠哉悠哉愿意2 小时前
【单片机学习笔记】第十二届国赛经验复盘
笔记·单片机·嵌入式硬件·学习