返回顶部
r

rag-memoryRAG记忆搜索

Vector memory search and RAG skill for OpenClaw. Provides vector_search tool backed by Qdrant, auto-syncs memory .md files and Postgres records via nomic-embed-text embeddings. Triggers on "search memory", "vector search", "resync memory", "RAG", "qdrant".

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.1.1
安全检测
已通过
111
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

rag-memory

RAG 记忆技能

架构(截至2026-04-04)

所有文件位于 ~/.openclaw/skills/rag-memory/ 目录下——这是唯一数据源。

文件用途
config.env凭据和调优参数(已加入git忽略)
config.env.example
不含机密的模板(受git追踪) |
| synctoqdrant.py | 数据导入管道:Postgres + .md 文件 → Qdrant |
| requirements.txt | 同步脚本的Python依赖 |
| venv/ | Python虚拟环境(已加入git忽略) |
| plugin/index.js | OpenClaw插件——注册 vectorsearch 工具和 beforeprompt_build 钩子 |
| plugin/package.json | 插件清单 |
| plugin/openclaw.plugin.json | 插件配置模式 |
| systemd/ | systemd单元的真实副本(使用 sudo cp + daemon-reload 部署) |
| references/config-paths.example.md | 文件和凭据位置模板(复制为 config-paths.md 并填写) |
| references/operational.md | 何时以及如何使用 vector_search |

插件安装于 ~/.openclaw/extensions/rag-memory/,并在 ~/.openclaw/openclaw.json 的 plugins.entries.rag-memory 下进行配置。

Qdrant集合:{QDRANTCOLLECTIONPREFIX}memory(每日日志 + 事实)和 {QDRANTCOLLECTIONPREFIX}docs(工具 + 技能文档)。768维,通过兼容OpenAI的嵌入端点使用 nomic-embed-text。



何时使用 vector_search

始终优先使用 vector_search 而非直接读取完整记忆文件:

  • - 在读取任何每日日志或 MEMORY.md 之前 → scope: memory
  • 在读取 TOOLS.md 或任何 SKILL.md 之前 → scope: docs
  • 不确定时 → scope: all

仅当 vector_search 未返回结果时,才回退到直接读取文件。



同步管理


任务命令
增量同步(仅未同步的行)~/.openclaw/skills/rag-memory/venv/bin/python ~/.openclaw/skills/rag-memory/synctoqdrant.py
完全重新同步(重建所有向量)
... synctoqdrant.py --full |
| 单个文件 | ... synctoqdrant.py --file /path/to/file.md |

当 ~/.openclaw/workspace/memory/ 中的任何 .md 文件发生更改时,增量同步也会自动触发(通过 sysclaw-rag-watch.path)。每日凌晨3:00执行完全同步(sysclaw-rag-sync.timer)。



更新插件

如果 plugin/index.js 发生更改:

bash
SKILL=~/.openclaw/skills/rag-memory
openclaw plugins install $SKILL/plugin
openclaw gateway restart

如果 config.env 的调优值发生更改,还需更新 openclaw.json 中 plugins.entries.rag-memory.config 的对应值(特别是 scorethreshold 和 topk)。



部署 systemd 单元更改

编辑 systemd/ 中的文件(真实数据源),然后使用附带的脚本进行部署——该脚本会自动替换正确的用户名:

bash
sudo ~/.openclaw/skills/rag-memory/systemd/deploy.sh

或手动操作,将 youruser 替换为本地 OpenClaw 用户:

bash
sudo sed s/User=openclaw/User=youruser/g ~/.openclaw/skills/rag-memory/systemd/*.service \
| sudo tee /etc/systemd/system/sysclaw-rag-{sync,watch}.service > /dev/null
sudo cp ~/.openclaw/skills/rag-memory/systemd/sysclaw-rag-sync.timer /etc/systemd/system/
sudo cp ~/.openclaw/skills/rag-memory/systemd/sysclaw-rag-watch.path /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl restart sysclaw-rag-sync.timer sysclaw-rag-watch.path



关键配置值


示例/默认值
QDRANTHOSThttps://qdrant.example.com
EMBEDBASE_URL
https://litellm.example.com |
| EMBED_MODEL | nomic-embed-text |
| QDRANTCOLLECTIONPREFIX | 任意UUID或唯一前缀字符串 |
| MEMORY_DIR | ~/.openclaw/workspace/memory |
| score_threshold | 0.70(同时存在于 config.env 和 openclaw.json 插件配置中) |
| top_k | 5 |


如果 Qdrant 不可达

  1. 1. 尝试一次——不要循环重试
  2. 回退到直接读取相关文件
  3. 在回复中注明向量搜索不可用
  4. 检查:curl $QDRANT_HOST/readyz
  5. 不要自动重启 Qdrant——通知用户

不适用场景

请勿为以下情况激活此技能:

  • - 与记忆/RAG无关的通用文件搜索或代码搜索
  • 编辑文件(直接使用读写工具)
  • 不涉及查找过往上下文、事实或工具文档的任务
  • 用户未要求更新记忆时的同步或重新同步
  • 用户明确表示不要搜索记忆的任何请求

外部端点

此技能通过 config.env 配置向三个外部服务发送数据:

服务变量发送内容
嵌入端点(兼容OpenAI)EMBEDBASEURL来自记忆文件和Postgres记录的文本块,用于向量嵌入
Qdrant
QDRANT_HOST | 嵌入向量 + 元数据,用于存储和搜索查询 |
| Postgres | POSTGRESDSN | 对 memoryentries、daily_logs、tools 表的只读查询 |

此技能不会向任何Anthropic或第三方端点发送数据。



隐私声明

记忆内容(每日日志、事实、工具描述)通过两种方式离开本地机器:

  1. 1. 文本被发送到您配置的嵌入端点(EMBEDBASEURL)以生成向量
  2. 向量 + 元数据被存储到您的Qdrant实例(QDRANT_HOST)并从中查询

这两个服务均为自托管并由用户配置。此技能不会向任何外部方发送数据。



安全清单

访问的环境变量:

  • - QDRANTHOST、QDRANTAPIKEY、QDRANTCOLLECTIONPREFIX
  • EMBEDBASEURL、EMBEDAPIKEY、EMBEDMODEL
  • POSTGRESDSN
  • MEMORYDIR、CHUNKSIZE、CHUNKOVERLAP、TOPKDEFAULT、SYNCBATCHSIZE、EMBEDBATCHDELAY_MS

读取的文件:

  • - MEMORY_DIR 下的所有 .md 文件
  • config.env(在同步脚本启动时加载)

写入的文件:

  • - 无(不进行本地文件写入)

数据库写入(Postgres):

  • - memoryentries.qdrantsyncedat —— 成功向量上传后更新
  • dailylogs.qdrantsyncedat —— 同上
  • tools.qdrantsyncedat —— 同上
  • qdrantsynclog —— 每次同步运行插入一行(recordssynced、durationms)

网络:

  • - 出站HTTPS到 EMBEDBASEURL(嵌入)
  • 出站HTTPS到 QDRANTHOST(向量存储/搜索)
  • 出站TCP到 POSTGRESDSN 中的Postgres主机



信任声明

安装此技能后,来自您记忆文件和数据库的文本将被发送到 EMBEDBASEURL 中配置的嵌入端点。向量存储在 QDRANT_HOST 的Qdrant实例中。两者均为您配置的自托管服务。仅当您信任这些服务处理您的记忆内容时才安装。

当启用 auto_inject(默认:true)时,Qdrant搜索结果会被前置到每个提示上下文中。这些数据来自您自己的自托管Qdrant实例——没有外部方提供。内容在存储前会去除会话模板,但其他方面按原样注入;仅当您信任您的Qd

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 rag-memory-1775882230 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 rag-memory-1775882230 技能

通过命令行安装

skillhub install rag-memory-1775882230

下载

⬇ 下载 rag-memory v1.1.1(免费)

文件大小: 78.19 KB | 发布时间: 2026-4-12 11:10

v1.1.1 最新 2026-4-12 11:10
Fix tool.execute handler, skip auto-inject for short messages, cap injected result size to 500 chars, remove personal URLs from docs

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部