OpenClaw一个很重要的应用场景就是可以通过IM工具(例如企业微信)来进行交流,但一次交流的输入不会太复杂, 否则输入成本太高,有没有办法可以和OpenClaw达成一个默契,让它能够仅仅通过几个关键词就知道用户在说什么事,就像用户在和一个老熟人聊共同的往事一样? 这种方法在OpenClaw中被称为memory(记忆),下面我就以一个 RSA 密钥生成器项目为例, 介绍如何使用 Memory 系统记录和查询工作进展
📖 什么是 Memory
OpenClaw Memory 是智能体工作空间中的纯 Markdown 文件。这些文件是唯一的事实来源------模型只"记住"写入磁盘的内容。
Memory 系统让 AI 助手能够:
-
📝 记录工作进展和决策
-
🔍 通过语义搜索快速查找信息
-
💬 在跨会话中保持上下文连续性
-
📊 向用户汇报项目状态
🗂️ Memory 文件结构
默认工作空间布局使用两个记忆层:
~/.openclaw/workspace/├── MEMORY.md 长期记忆└── memory/ ├── 2026-03-10.md 每日日志 ├── 2026-03-11.md └── 2026-03-12.md 今天的工作记录
文件用途
-
长期记忆、重要决策、偏好设置
-
仅私人会话加载
memory/YYYY-MM-DD.md:
-
每日工作日志、项目进展
-
所有会话加载(今天 + 昨天)
📝 实战示例:RSA 密钥生成器项目
场景回顾
今天(2026-03-12)上午,用户要求创建一个 RSA 公私钥生成工具。工作流程如下:
08:55 → 创建项目结构和代码08:56 → 配置虚拟环境并安装依赖08:56 → 测试密钥生成和验证功能09:13 → 将项目记录写入 Memory
写入 Memory 的内容
在memory/2026-03-12.md中记录了:
2026-03-12 - Daily Log## RSA 密钥生成器项目### 任务概述创建基于命令行的 RSA 公私钥创建和检验工具。
### 项目信息- 项目位置: ~/Downloads/rsa-keygen- 完成时间: 2026-03-12 08:56- 技术栈: Python 3.7+, cryptography 库
### 项目结构rsa-keygen/ ├── rsa_keygen.py # 主程序(6.7KB) ├── requirements.txt # 依赖:cryptography>=41.0.0 ├── README.md # 使用文档 ├── venv/ # Python 虚拟环境 ├── private_key.pem # 测试生成的私钥 └── public_key.pem # 测试生成的公钥 ### 功能特性1. 密钥生成:支持 1024/2048/4096 位 RSA 密钥对2. 密码保护:可选密码加密私钥(AES 加密)3. 密钥验证:通过 OAEP 加密/解密测试验证密钥对有效性4. PEM 格式:兼容 OpenSSL、OpenSSH 等工具
### 测试结果- ✓ 虚拟环境创建成功- ✓ 依赖安装成功(cryptography-46.0.5)- ✓ 密钥生成测试通过- ✓ 密钥验证测试通过
💬 在企业微信中查询项目进展
方式一:自然语言提问
在企业微信中直接向助手提问:
用户:今天上午做的 RSA 项目放在哪里了?
助手:RSA 密钥生成器项目位于 ~/Downloads/rsa-keygen完成时间是 08:56,包含密钥生成和验证功能。
工作原理:助手通过memory_search工具语义搜索 Memory 文件,找到相关片段后回复。
方式二:查询特定关键词
用户:查询 rsa-keygen 项目
助手:找到相关记录:📁 项目位置:~/Downloads/rsa-keygen📅 完成时间:2026-03-12 08:56✅ 状态:测试通过📄 文件:rsa_keygen.py, README.md, requirements.txt
方式三:查询今日工作
用户:今天都完成了什么工作?
助手:今天(2026-03-12)完成的工作:1. RSA 密钥生成器项目 - 已完成 ✓ - 位置:~/Downloads/rsa-keygen - 功能:命令行 RSA 密钥生成和验证
方式四:查询项目状态
用户:RSA 项目的测试通过了吗?
助手:是的,测试全部通过:✓ 虚拟环境创建成功✓ 依赖安装成功(cryptography-46.0.5)✓ 密钥生成测试通过✓ 密钥验证测试通过
🔧 Memory 工具使用
命令行工具
OpenClaw 提供 CLI 工具管理 Memory:
# 查看 Memory 状态openclaw memory status
# 深度检查(包含向量存储和嵌入模型)openclaw memory status --deep
# 手动索引 Memory 文件openclaw memory index
# 语义搜索openclaw memory search "RSA 项目"openclaw memory search "今天的工作"
📋 最佳实践
何时写入 Memory
✅应该记录:
-
项目完成状态和位置
-
重要决策和原因
-
测试结果和验证情况
-
用户偏好和特殊要求
-
遇到的问题和解决方案
❌不需要记录:
-
临时性、一次性的对话
-
可以通过文件内容推断的信息
-
敏感信息(密码、密钥等)
写入格式建议
项目名称
### 任务概述简要描述任务目标
### 项目信息- 位置: 文件路径- 时间: YYYY-MM-DD HH:MM- 状态: 进行中/已完成/已暂停
### 关键内容- 功能点 1- 功能点 2
### 测试结果- ✓ 测试项 1- ✓ 测试项 2
### 备注其他需要记录的信息
查询技巧
用户提问建议:
-
使用具体关键词(项目名、文件名、功能名)
-
包含时间范围("今天"、"上周"、"3 月 12 日")
-
明确查询目标(位置、状态、测试结果)
示例:
✅ "RSA 项目放在哪里了?"✅ "今天上午完成的工作"✅ "rsa-keygen 的测试通过了吗?"
🚀 高级功能
语义搜索
Memory 系统使用向量嵌入进行语义搜索,即使措辞不同也能找到相关内容:
搜索:"密钥生成工具"匹配:"RSA 公私钥创建和检验工具" ✓
混合搜索(BM25 + 向量)
结合两种搜索方式:
向量相似度:语义匹配("Mac Studio" ↔ "运行 gateway 的机器")
BM25 关键词:精确匹配(ID、错误代码、文件名)
会话记忆(实验性)
可选择索引会话记录,让助手记住对话历史:
agents: { defaults: { memorySearch: { experimental: { sessionMemory: true }, sources: ["memory", "sessions"] } }}
🔐 安全说明
Memory 加载策略
私人会话:加载MEMORY.md+memory/*.md
群组会话:仅加载memory/*.md(不加载MEMORY.md)
这是为了防止私人信息泄露到群组中。
写入权限
Memory 文件需要工作空间可写
沙箱模式(workspaceAccess: "ro")下无法写入
建议定期备份 Memory 文件
💡 小结
Memory 系统是 OpenClaw 的"长期记忆",让 AI 助手能够:
📝记录工作进展和重要信息
🔍搜索历史内容(语义 + 关键词)
💬回复用户查询(跨会话连续性)
📊汇报项目状态(如企业微信通知)
关键要点:
-
写入 Memory = 让助手真正"记住"
-
结构化记录 = 更容易查询和汇报
-
语义搜索 = 即使用词不同也能找到