用途
openclaw-memory-enhancer 为 OpenClaw 提供长期记忆能力,使其能够跨会话记住重要信息,并在对话中自动召回相关上下文。适用于希望 OpenClaw 跨会话记忆、从聊天历史构建知识库、进行需要上下文的长期项目、从对话自动生成 FAQ,以及在内存受限的边缘设备上运行的场景。官方同时给出不适用的情况:简单笔记应用已足够、不需要跨会话记忆,或内存充裕并追求最高准确度(此时建议使用标准版)。
主要能力
- 🔍 语义搜索:向量相似度搜索,理解意图而非仅匹配关键词
- 📂 自动加载:自动读取 memory/ 目录下的所有文件
- 💡 智能召回:在对话过程中找到相关的历史记忆
- 🔗 记忆图谱:在相关记忆之间建立连接
- 💾 本地存储:100% 本地,无云端,完全隐私
- 🚀 边缘优化:内存小于 10MB,可在 Jetson/Raspberry Pi 上运行
使用方式
安装
通过 ClawHub(推荐):
clawhub install openclaw-memory-enhancer
通过 Git:
git clone https://github.com/henryfcb/openclaw-memory-enhancer.git \
~/.openclaw/skills/openclaw-memory-enhancer
常用命令
| 任务 | 边缘版命令 | 标准版命令 |
|---|---|---|
| 加载记忆 | python3 memory_enhancer_edge.py --load | python3 memory_enhancer.py --load |
| 搜索 | --search "query" | --search "query" |
| 添加记忆 | --add "content" | --add "content" |
| 导出 | --export | --export |
| 统计 | --stats | --stats |
命令行示例
# Load existing OpenClaw memories
cd ~/.openclaw/skills/openclaw-memory-enhancer
python3 memory_enhancer_edge.py --load
# Search for memories
python3 memory_enhancer_edge.py --search "voice-call plugin setup"
# Add a new memory
python3 memory_enhancer_edge.py --add "User prefers dark mode"
# Show statistics
python3 memory_enhancer_edge.py --stats
# Export to Markdown
python3 memory_enhancer_edge.py --export
Python API
from memory_enhancer_edge import MemoryEnhancerEdge
# Initialize
memory = MemoryEnhancerEdge()
# Load existing memories
memory.load_openclaw_memory()
# Search for relevant memories
results = memory.search_memory("AI trends report", top_k=3)
for r in results:
print(f"[{r['similarity']:.2f}] {r['content'][:100]}...")
# Recall context for a conversation
context = memory.recall_for_prompt("Help me check billing")
# Returns formatted memory context
# Add new memory
memory.add_memory(
content="User prefers direct results",
source="chat",
memory_type="preference"
)
集成进 OpenClaw Agent
# In your OpenClaw agent
from skills.openclaw_memory_enhancer.memory_enhancer_edge import MemoryEnhancerEdge
class EnhancedAgent:
def __init__(self):
self.memory = MemoryEnhancerEdge()
self.memory.load_openclaw_memory()
def process(self, user_input: str) -> str:
# 1. Recall relevant memories
memory_context = self.memory.recall_for_prompt(user_input)
# 2. Enhance prompt with context
enhanced_prompt = f"""
{memory_context}
User: {user_input}
"""
# 3. Call LLM with enhanced context
response = call_llm(enhanced_prompt)
return response
版本说明
边缘版(推荐):适合 Jetson、Raspberry Pi、嵌入式设备。零依赖(仅 Python 标准库),内存占用 < 10MB,采用轻量级关键词 + 向量匹配,适合资源受限设备。
标准版:适合桌面/服务器、追求最高准确度。需执行 pip install sentence-transformers numpy,使用 sentence-transformers 生成高质量嵌入,语义理解更好,内存占用 50-100MB,需下载约 50MB 模型。
记忆类型
| 类型 | 说明 | 示例 |
|---|---|---|
| daily_log | 每日记忆文件 | memory/2026-02-22.md |
| capability | 能力记录 | 技能、工具 |
| core_memory | 核心约定 | 重要规则 |
| qa | 问答 | Q: How to... A: You should... |
| instruction | 直接指令 | "Remember: always do X" |
| solution | 技术解决方案 | 分步指南 |
| preference | 用户偏好 | "User likes dark mode" |
工作原理
记忆编码(边缘版):1) 从文本提取关键词;2) 将关键词映射到向量位置(哈希向量);3) 对向量做 L2 归一化;4) 保存到本地 JSON 文件。
记忆检索:1) 将查询转换为相同向量格式;2) 通过常见关键词进行快速预过滤;3) 计算向量间的余弦相似度;4) 返回 top-k 最相似的记忆。
隐私保护
- 所有数据本地存储在 ~/.openclaw/workspace/knowledge-base/
- 无网络请求
- 无外部 API 调用
- 数据不会离开设备
技术规格
边缘版:向量维度 128;内存占用 < 10MB;依赖:无(Python 标准库);存储格式 JSON;最大记忆数 1000(可配置);查询延迟 < 100ms。
标准版:向量维度 384;内存占用 50-100MB;依赖:sentence-transformers、numpy;存储格式 NumPy + JSON;模型大小约 50MB 下载;查询延迟 < 50ms。
配置
在代码中编辑以下参数:
self.config = {
"vector_dim": 128, # Vector dimensions
"max_memory_size": 1000, # Max number of memories
"chunk_size": 500, # Content chunk size
"min_keyword_len": 2, # Minimum keyword length
}
故障排查
未找到结果:可降低阈值,例如 results = memory.search_memory(query, threshold=0.2)(默认 0.3);或增大 top_k,例如 results = memory.search_memory(query, top_k=10)(默认 5)。
达到记忆上限:系统达到上限时会自动移除最旧的记忆。可提高上限,例如 self.config["max_memory_size"] = 5000(从 1000 提高)。
性能缓慢:改用边缘版而非标准版;减小 max_memory_size;使用关键词预过滤(自动进行)。
贡献与许可
贡献流程:Fork 仓库、创建功能分支、进行修改、提交 Pull Request。
许可证:MIT License,详见 LICENSE 文件。
说明
该项目为 OpenClaw 生态构建,针对边缘计算设备优化,灵感来自 AI 长期记忆系统。它并非 OpenClaw 或 Moonshot AI 的官方产品。用户需自行提供 OpenClaw 工作区和 API 密钥。