Enhanced Memory

🧠 4 信号混合检索,记忆搜索 MRR 提升 73%

将 OpenClaw 记忆搜索升级为 4 信号混合检索系统,MRR 从 0.45 提升至 0.782,支持向量+关键词+时间路由+自适应权重,需本地 Ollama 部署。

收藏
5.2k
安装
1.5k
版本
1.0.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

Enhanced Memory 是 OpenClaw 记忆系统的 drop-in 增强组件,用 4 信号融合检索管道替代原有的扁平向量搜索。核心工作流分为三步:

1. 索引构建:运行 embed_memories.pymemory/ 目录下所有 .md 文件按 markdown 标题分块,调用 Ollama 的 nomic-embed-text 生成向量,输出 memory/vectors.json
2. 混合检索search_memory.py 执行向量相似度(0.4)、关键词匹配(0.25)、标题匹配(0.1)、文件路径匹配(0.25)的加权融合;

3. 辅助功能memory_salience.py 按重要性×陈旧度评分提示需回顾的记忆,crossref_memories.py 构建文件级知识图谱。

显著优点

  • 检索质量飞跃:MRR 从基线 0.45 提升至 0.782,接近翻倍;
  • 零 pip 依赖:纯 Python 标准库 + Ollama HTTP API,部署极简;
  • 自适应智能:低关键词重叠时自动切换至 85% 向量权重,高分不足时触发伪相关反馈(PRF)扩展查询;
  • 时间感知:识别 "yesterday"、"Feb 8" 等日期引用,对匹配文件给予 3 倍 boost;
  • 可插拔替换:JSON 输出版本 enhanced_memory_search.py 直接兼容 OpenClaw 原工具接口。

潜在局限

  • 硬依赖 Ollama:必须本地运行 embedding 服务,无法云端部署或离线运行(除非预置模型);
  • 英文模型主导nomic-embed-text 对中文语义捕捉弱于英文,虽可换 mxbai-embed-large 等,但需全量重建索引;
  • 无实时增量:文件变更需手动重跑 embed_memories.py,缺乏监听守护进程;
  • PRF 黑盒风险:自动扩展查询词可能引入漂移,高敏感场景建议关闭;
  • 路径泄露隐患:文件路径作为 0.25 权重信号,若路径含敏感命名(如 password-vault.md)可能被检索排序放大。

适合人群

  • 使用 OpenClaw/Claude Code 等 agent 框架、记忆库超千条 markdown 文件的开发者;
  • 对检索召回率敏感、愿牺牲部分实时性换取精度的研究型/工程型用户;
  • 具备本地 GPU/CPU 资源运行 Ollama,且接受命令行维护工作流的技术用户。

常规风险

| 风险类别 | 具体表现 | 缓解建议 |
|---------|---------|---------|
| 供应链 | Ollama 服务被投毒或模型文件篡改 | 校验模型 SHA256,限制 Ollama 监听 127.0.0.1 |
| 信息泄露 | 向量索引文件 `vectors.json` 含全文片段 | 加入 `.gitignore`,避免提交至仓库 |
| 权限提升 | 脚本以工作区根目录执行,可能误操作 | 在容器或受限用户下运行,限制 `memory/` 外写权限 |
| 可用性 | Ollama 未启动或端口冲突导致检索失败 | 启动前健康检查 `curl localhost:11434`,配置超时重试 |

Enhanced Memory 内容

scripts文件夹
手动下载zip · 13.2 kB
crossref_memories.pytext/plain
请选择文件