让OpenClaw真正拥有记忆:我的四步实战改造

7 阅读5分钟

前两天刚发了文章关于openclaw使用过程中的坑,说实话体验是割裂的,但是结尾也说了虽然目前坑不好,但是进化的速度未来可期我部署了 OpenClaw,然后它崩溃了:一个真实用户的踩坑记录

当时觉得,AI Agent 的记忆可能就是个伪命题——毕竟每次会话都是独立的,它能记住什么?

每次打开对话,我都要重新介绍自己:我是谁、做什么的、之前聊过什么。OpenClaw 就像一个记性不好的助手,每次见面都问“您哪位”。

我花了两天时间通过配置优化,给 OpenClaw 搭了四套记忆系统。现在再用,完全是两个体验,解决了openclaw使用中最大的痛点:每次对话都从零开始,真正体会到什么叫“丝滑”。

这篇文章,聊聊我怎么做的,以及改造前后的对比。


一、问题:OpenClaw 的“失忆症”

用 OpenClaw 的人都懂这个场景:

  • 周一:“我是雪诺科技的xxx,具体昨天的任务,帮我跟进下反馈下项目的进度。”
  • 周三:“我是谁?”
  • 周五:“我是雪诺科技的xxx……”

循环往复。

OpenClaw 本身有 MEMORY.md 机制,但问题是:

  • 需要手动维护
  • 没有自动提取
  • 搜索靠关键词匹配,不够智能

说白了,它给了你一个笔记本,但没给你笔,也没教你记什么、怎么记。


二、解法:四套记忆系统

我参考了 OpenClaw 官方文档和社区方案,搭了四套记忆系统,覆盖不同场景:

方法用途技术方案
Method 1长期记忆、用户画像结构化文本文件
Method 2语义搜索、智能匹配向量嵌入(待Kimi开放)
Method 3自动提取对话记忆Mem0 自动化
Method 4结构化查询、精确检索SQLite 数据库
下面逐个讲。

Method 1:结构化记忆文件夹

原理

用文本文件存储核心记忆,透明可控

实现目录结构


memory-system/method1-structured/
├── core/
│   ├── identity.md          # KimiClaw 身份设定
│   ├── user-profile.md      # 用户画像
│   ├── preferences.md       # 偏好设置
│   ├── writing-style.md     # 沟通风格
│   └── personal-brand.md    # 个人 IP 定位
├── projects/
│   └── active/              # 当前项目
└── knowledge/
    └── facts.md             # 事实知识

效果

  • 每次对话前,自动读取核心文件
  • 我的身份、偏好、沟通风格,一目了然
  • 随时可编辑,完全透明

示例


# 用户画像
- 姓名:高雪峰
- 身份:雪诺科技 创始人
- 工作习惯:晚上工作,经常熬夜
- 沟通风格:直接、有棱角、不说废话

Method 2:向量记忆搜索

原理

用 embedding 把文本转成向量,实现语义搜索

技术

  • 本来想直接用 Kimi 的 embedding API
  • 结果发现 Kimi embedding 还没开放
  • 备用方案:Google Gemini embedding(每天 1500 次免费)

实现


# 存储记忆
store_memory("我喜欢用 TypeScript", category="preference")

# 语义搜索
search_memory("编程语言偏好")
# 返回:我喜欢用 TypeScript(即使关键词不完全匹配)

效果

  • 自然语言查询,不用记关键词
  • “我之前说过喜欢什么?”→ 自动找到相关记忆

现状:等 Kimi 开放 embedding,目前先用其他方案。


Method 3:Mem0 自动化记忆

原理

自动从对话中提取关键信息(偏好、事实、决策)。

实现


# 自动提取
extract_memories("我喜欢用深色主题,习惯晚上工作")
# 自动识别为:preference + fact

# 搜索记忆
search_memories("工作习惯")
# 返回:我习惯晚上工作

效果

  • 不用手动记,对话中自然提取
  • 自动分类:preference / fact / decision / project
  • 支持关键词搜索

示例提取

  • “我喜欢用 TypeScript” → preference
  • “我是雪诺科技 创始人” → fact
  • “我决定每周二周五check项目进度” → decision

Method 4:SQLite 结构化存储

原理

用数据库存储结构化数据,支持精确查询

实现


-- 偏好表
preferences(key, value, category)

-- 事实表
facts(subject, predicate, object)

-- 项目表
projects(name, status, description)

使用


# 设置偏好
set_preference("editor""VS Code""coding")

# 查询
get_preference("editor"# 返回:VS Code

# 自然语言查询
natural_language_query("显示所有活跃项目")

效果

  • 精确查询,比文本搜索更准
  • 支持复杂条件:按分类、按时间、按状态
  • 零依赖,本地运行

四步组合的效果

改造前 vs 改造后

场景改造前改造后
自我介绍每次都要说“我是雪诺科技 xxx”自动读取 user-profile.md
写作风格每次都要提醒“不要说废话”自动读取 writing-style.md
记住偏好说过就忘Method 3 自动提取,Method 4 持久化
查找历史翻聊天记录Method 2 语义搜索,Method 4 精确查询
项目进度口头同步Method 1 项目文件 + Method 4 数据库

最直观的改变

以前写篇文章,我要说:

“我是雪诺科技 创始人,写关于某事件的看法,风格直接有棱角,不要 AI 套话……”

现在直接说:

“写本周二的计划好的方案”

OpenClaw 自动知道:我是谁、写什么主题、什么风格、什么时候完成。


给 OpenClaw 用户的建议

如果你也在用 OpenClaw,建议按这个顺序搭建:

第一步:Method 1(必做)

  • 创建 core/user-profile.md,记录你的基本信息
  • 创建 core/preferences.md,记录你的偏好
  • 成本:零,效果:立竿见影

第二步:Method 4(推荐)

  • 初始化 SQLite 数据库
  • 存储关键偏好和事实
  • 成本:零,效果:精确查询

第三步:Method 3(进阶)

  • 开启自动记忆提取
  • 让 OpenClaw 从对话中学习
  • 成本:零,效果:越来越懂你

第四步:Method 2(可选)

  • 等 Kimi 开放 embedding,或配 Google / SiliconFlow
  • 实现语义搜索
  • 成本:低,效果:自然语言查询

写在最后

OpenClaw 是个好东西,但默认配置只是起点。

AI Agent 的真正价值,不在于单次对话多聪明,而在于长期陪伴中积累的“默契”。

四套记忆系统,就是让这种默契成为可能的基础设施。

现在我的 OpenClaw(我叫它BotFather),已经记住了:

  • 我是雪诺科技 创始人,做企业浏览器安全
  • 我每周二周五check项目进度,编写客户方案
  • 我喜欢直接有棱角的表达,讨厌 AI 套话
  • 我习惯晚上工作,经常熬夜
  • 我的沟通风格、个人 IP 定位、过往的场景案例选题库……

下次对话,它不需要问“您哪位”,直接就能干活。

这才是 AI Agent 该有的样子。