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

相关推荐
黑金IT5 小时前
AI Agent “小龙虾终极进化”——自主学习与持久化记忆的架构实现
人工智能·学习·架构
key_3_feng5 小时前
AI Agent的入门开发指南
ai agent
weixin_395772475 小时前
计算机网络学习笔记】初始网络之网络发展和OSI七层模型
笔记·学习·计算机网络
小夏子_riotous5 小时前
openstack的使用——7. 共享文件系统manila服务
linux·运维·服务器·系统架构·centos·openstack·运维开发
南境十里·墨染春水6 小时前
linux学习进展 进程的内存管理
linux·服务器·学习
小陈phd6 小时前
多模态大模型学习笔记(三十四)——ChatTTS:新一代中文语音合成工具原理与实战解析
笔记·学习·语音识别
zhangrelay6 小时前
面向机器人工程的 Linux 发行版:科学选型与深度评测-2026
笔记·学习
网络工程小王6 小时前
【Function Calling详解】(学习笔记)
笔记·学习
新手小新6 小时前
通信工程师学习笔记3-电信网间互联管理规定和网络安全法
网络·笔记·学习
都市凡尘@Paraverse6 小时前
Agent 心智架构:感知 - 推理 - 行动循环|学习笔记
ai agent·datawhale·agent设计模式