用 OpenClaw 半年,最大的痛点是:每次对话都从零开始

直到我给它搭了四套记忆系统,才真正体会到什么叫“丝滑”。

半年前开始用 OpenClaw,说实话,体验是割裂的。

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

我写过一篇文章吐槽这个问题。当时觉得,AI Agent 的记忆可能就是个伪命题——毕竟每次会话都是独立的,它能记住什么?

直到最近,我花了两天时间,给 OpenClaw 搭了四套记忆系统。现在再用,完全是两个体验。

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


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

用 OpenClaw 的人都懂这个场景:

  • 周一:“我是雪诺科技的 CEO,做企业浏览器安全的,帮我写篇文章。”
  • 周三:“我是谁?”
  • 周五:“我是雪诺科技的 CEO……”

循环往复。

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             # 事实知识

效果

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

示例

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

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
  • “我是雪诺科技 CEO” → fact
  • “我决定每周二周五发文章” → 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 改造后

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

最直观的改变

以前写篇文章,我要说:

“我是雪诺科技 CEO,写零信任安全的,风格直接有棱角,不要 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(我叫它 KimiClaw),已经记住了:

  • 我是雪诺科技 CEO,做企业浏览器安全
  • 我每周二周五发文章,写零信任、浏览器安全、AI+安全
  • 我喜欢直接有棱角的表达,讨厌 AI 套话
  • 我习惯晚上工作,经常熬夜
  • 我的写作风格、个人 IP 定位、50 篇选题库……

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

这才是 AI Agent 该有的样子。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐