增强型记忆搜索,采用混合向量+关键词评分、时序路由、文件路径评分、自适应加权、伪相关反馈、显著性评分及知识图谱交叉引用。以四信号融合检索系统取代默认记忆搜索。适用于记忆搜索、索引记忆文件、构建交叉引用或评估记忆显著性。需 Ollama 及 nomic-embed-text 模型。
增强内存 : Drop- in增强 OpenClaw 的内存系统. : 换上平面矢量搜索, 并使用4个信号混合检索管道, 实现了 0. 782 MRR( vs~是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
OpenClaw 记忆系统的即插即用式增强模块。以四信号混合检索流水线替代原有的扁平向量搜索,MRR 达到 0.782(基线纯向量检索约为 0.45)。
# 安装 Ollama 并拉取嵌入模型 ollama pull nomic-embed-text # 索引你的记忆文件(请在 workspace 根目录下执行) python3 skills/enhanced-memory/scripts/embed_memories.py # 可选:构建跨引用图谱 python3 skills/enhanced-memory/scripts/crossref_memories.py build
当 memory 文件发生显著变更时,请重新运行 embed_memories.py。
scripts/search_memory.py — 主检索脚本具备自动适配能力的四信号混合检索:
python3 skills/enhanced-memory/scripts/search_memory.py "query" [top_n]
融合的四大信号:
自动行为特性:
scripts/enhanced_memory_search.py — JSON 兼容检索采用相同检索流程,输出格式为 JSON,与 OpenClaw 的 memory_search 工具兼容:
python3 skills/enhanced-memory/scripts/enhanced_memory_search.py --json "query"
返回结构:{results: [{path, startLine, endLine, score, snippet, header}], ...}。
scripts/embed_memories.py — 索引构建对 memory/ 目录下所有 .md 文件,以及核心 workspace 文件(如 MEMORY.md、AGENTS.md 等),按 Markdown 标题切分文本块并完成嵌入:
python3 skills/enhanced-memory/scripts/embed_memories.py
输出文件为 memory/vectors.json。嵌入过程按每批 20 条进行批量处理,单个文本块截断长度为 2000 字符。
scripts/memory_salience.py — 显著性评分识别陈旧/重要记忆条目,用于心跳机制下的自提示(self-prompting):
python3 skills/enhanced-memory/scripts/memory_salience.py # 生成人类可读提示 python3 skills/enhanced-memory/scripts/memory_salience.py --json # 输出结构化 JSON python3 skills/enhanced-memory/scripts/memory_salience.py --top 5 # 返回更多条目
评分公式为 importance × staleness,综合考量:文件类型(主题类 > 核心类 > 日常类)、文件大小、访问频率及与历史查询间隔的相关性。
scripts/crossref_memories.py — 知识图谱构建基于嵌入相似度,在记忆文本块之间建立跨引用链接:
python3 skills/enhanced-memory/scripts/crossref_memories.py build # 构建索引 python3 skills/enhanced-memory/scripts/crossref_memories.py show# 查看某文件的引用关系 python3 skills/enhanced-memory/scripts/crossref_memories.py graph # 输出图谱统计信息
采用“文件代表性”策略(每文件选取 top 5 文本块为代表),将原始 O(n²) 复杂度降至可管理规模。相似度阈值设定为 0.75(余弦相似度)。
所有可调常量均位于各脚本顶部。关键参数如下:
| 参数 | 默认值 | 所属脚本 | 用途 |
|---|---|---|---|
VECTOR_WEIGHT |
0.4 | search_memory.py | 向量相似度权重 |
KEYWORD_WEIGHT |
0.25 | search_memory.py | 关键词重叠权重 |
FILEPATH_WEIGHT |
0.25 | search_memory.py | 路径匹配权重 |
TEMPORAL_BOOST |
3.0 | search_memory.py | 时间匹配文件的得分倍增系数 |
PRF_THRESHOLD |
0.45 | search_memory.py | 触发 PRF 的最低得分阈值 |
SIMILARITY_THRESHOLD |
0.75 | crossref_memories.py | 跨引用链接所需的最小相似度 |
MODEL |
nomic-embed-text | 所有脚本 | Ollama 使用的嵌入模型 |
若需更换嵌入模型(例如使用 mxbai-embed-large),请修改各脚本中的 MODEL 常量,并重新运行 embed_memories.py。
如需替换默认记忆检索功能,请将 agent 的搜索工具指向上述脚本。这些脚本依赖以下前提条件:
memory/ 目录,其中包含若干 .md 文件embed_memories.py 生成 memory/vectors.json所有脚本仅依赖 Python 标准库及 Ollama HTTP API,无需额外 pip 安装依赖。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章