ruflo-rag-memory 插件深度解析:基于 HNSW 向量检索与 AgentDB 的跨会话语义记忆系统

ruflo-rag-memory 插件深度解析:基于 HNSW 向量检索与 AgentDB 的跨会话语义记忆系统

【免费下载链接】ruflo 🌊 The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated 【免费下载链接】ruflo 项目地址: https://gitcode.com/GitHub_Trending/cl/ruflo

ruflo-rag-memory 是 ruflo(原 Claude Flow)生态中负责"长期语义记忆"的核心插件:它以 AgentDB(SQLite + vector_indexes)为持久化底座,以 HNSW 近似最近邻索引提供高速向量检索,并把 Claude Code 原生自动记忆桥接进统一的语义检索空间。读完本文,你将掌握该插件的安装、CLI/MCP 双通道操作、六类命名空间的语义划分、五阶段 SmartRetrieval 检索流水线、静态加密开关以及"smoke-as-contract"的验证机制,并能在自己的 Agent 工作流中实现跨会话、跨项目的模式复用与知识召回。

插件定位与核心能力

ruflo-rag-memory 提供的是典型的 Retrieval-Augmented Generation(RAG)记忆能力:对 AgentDB 执行语义写入(store)、语义搜索(search)与语义召回(recall),底层依赖 HNSW 索引的向量搜索,并桥接 Claude Code 的原生自动记忆(auto-memory)进入 AgentDB,使用 384 维 ONNX 嵌入(all-MiniLM-L6-v2)实现统一的跨会话语义检索。插件本身是"消费方":它不拥有底层存储实现,而是站在 ruflo-agentdb 的 AgentDB 后端与 ruflo-ruvector 高级向量算子之上,面向用户暴露一套简洁的记忆操作面。

按照 ADR-0001 插件契约 的定义,该插件由 1 个 Agent(memory-specialist)、2 个技能(memory-bridgememory-search)和 2 个命令(/recall/ruflo-memory)构成,插件元数据版本为 0.2.1,关键字包含 mcpclaude-memoriesbridged-memory

快速上手:跨会话存储与召回

存储一条"想记住的模式",然后在任意会话(甚至跨项目)里用语义去搜它——这是该插件最核心的使用闭环:

# 存下一条要记住的模式
npx ruflo memory store --key "oauth-flow" --value "OAuth2 with pkce for SPAs, use refresh tokens" --namespace patterns

# 之后(甚至跨项目)用语义召回
npx ruflo recall "oauth single page app"

# 按 key 精确取回条目
npx ruflo memory retrieve --key "oauth-flow" --namespace patterns

在 Agent 提示词(Prompt)中使用 MCP 工具做上下文注入:

# In your Claude Code agent prompt:
const context = await memory_search({ query: "authentication patterns", limit: 3 });
# Returns top 3 semantic matches from all sessions

完整的多会话示例参见 EXAMPLES.md:例如第一天存入 pattern-concurrent-queue("使用带信号量的有界队列做并发任务处理"),第二天在另一个项目里执行 npx ruflo recall "concurrent queue safe processing",即可直接命中该模式;修复竞态条件后存入 solutions 命名空间并打上 --tags "async,cleanup,race",再次遇到相似问题时可立即召回修复方案。

安装与依赖

通过 Claude Code 插件目录安装:

claude --plugin-dir plugins/ruflo-rag-memory

依赖要求

  • ruflo-core 插件(提供 MCP 服务器,所有 memory_* / agentdb_* MCP 工具均由它对外暴露);
  • CLI 兼容性:固定钉在 @claude-flow/cli v3.6 的 major+minor 版本线上;
  • 验证契约bash plugins/ruflo-rag-memory/scripts/smoke.sh 是插件通过门槛(见下文"验证"一节)。

命令体系详解

插件的命令定义在 commands/ruflo-memory.mdcommands/recall.md 中,操作面覆盖 store / search / retrieve / list / delete / consolidate / bridge:

# 存储一条记忆条目
memory store --key "pattern-auth" --value "JWT with refresh tokens" --namespace patterns

# 语义搜索(HNSW 索引)
memory search --query "authentication patterns" --namespace patterns --limit 5

# 按 key 取回
memory retrieve --key "pattern-auth" --namespace patterns

# 列出条目
memory list --namespace patterns --limit 10

# 删除
memory delete --key "old-entry" --namespace patterns

# 跨所有命名空间快速语义召回
recall "how did we handle rate limiting?"

各子命令的参数形态与默认行为:

操作参数说明
store--key KEY --value VALUE [--namespace NS]写入记忆条目,默认命名空间 default
search--query QUERY [--namespace NS] [--limit N] [--hybrid] [--graph-rag]默认走稠密向量检索;--hybrid 走 ruvector 稀疏+稠密融合;--graph-rag 走多跳检索
retrieve--key KEY [--namespace NS]按 key 精确取回
list[--namespace NS] [--limit N]列出条目,默认 limit 10
delete--key KEY [--namespace NS]删除条目
consolidate[--namespace NS]去重(余弦相似度 > 0.92 合并)、剪枝(>30 天未触碰且零检索命中)、重建 HNSW 索引;经 hooks worker dispatch --trigger consolidate 触发
bridge[--all-projects]导入 Claude Code 自动记忆到 AgentDB,细节见 memory-bridge 技能

无参数时默认执行 memory list。常用命名空间为 patternstaskssolutionsfeedbacksecurityclaude-memories。其中 consolidate 与 Agent 侧的"记忆整合工作流"(审计 → 去重 → 剪枝 → 压缩 → 重建索引)一一对应,见 memory-specialist.md

架构与数据流

插件在 README.md 中给出了完整的端到端数据流:

Claude Code Auto-Memory (~/.claude/projects/*/memory/*.md)
        │
        ▼ (ONNX all-MiniLM-L6-v2, 384-dim)
    Memory Bridge
        │
        ▼
    AgentDB (SQLite + vector_indexes)
        │
        ├── patterns namespace
        ├── tasks namespace
        ├── solutions namespace
        ├── feedback namespace
        ├── security namespace
        └── claude-memories namespace
        │
        ▼ (HNSW ANN index)
    Semantic Search (HNSW ANN — measured ~1.9x at N=20k vs brute force)

从源码结构看,整条链路的关键节点是:Claude Code 的 SessionStart 钩子在会话启动时把本地 markdown 记忆文件读入 → memory_import_claude(MCP)将文件内容用 ONNX 384 维嵌入向量化 → 写入 AgentDB 的 claude-memories 保留命名空间 → 查询时经 HNSW ANN 索引做语义搜索。Agent 侧 memory-specialist 的检索流水线(见 agents/memory-specialist.md)可概括为:

Query → [Embedding (ONNX 384d)] → [HNSW ANN search]
                                       ↓
                                 [Optional: BM25 sparse search]
                                       ↓
                                 [RRF Fusion (k=60)]
                                       ↓
                                 [MMR Reranking (λ=0.7)]
                                       ↓
                                 [Recency Boost (decay=0.95/day)]
                                       ↓
                                 Top-K Results

其中 RRF 融合常数 k=60、MMR 的 λ=0.7、recency 衰减 0.95/天,均为实现中采用的默认参数。

命名空间体系:语义分桶

不同意图的内容写入不同命名空间,是保证召回精度的第一道关卡:

命名空间用途示例 Key
patterns成功过的代码/设计模式pattern-auth-jwt
tasks任务上下文与结果task-refactor-api
solutionsBug 修复与解决方案fix-race-condition
feedback用户反馈与纠正feedback-test-style
security漏洞模式vuln-sql-injection
claude-memories桥接进来的 Claude Code 记忆auto-imported

memory-search 技能给出了命名空间选型建议(见 skills/memory-search/SKILL.md):patterns 回答"How did we handle X?",tasks 回答"What was the context for Y?",solutions 回答"How did we fix Z?",feedback 回答"What did the user prefer?",security 面向"Known vulnerabilities in...",省略命名空间参数则搜索全部命名空间。Agent 侧还定义了各命名空间的保留策略:patterns/solutions/feedback/security 永久保留,tasks 保留 90 天,claude-memories 随会话启动同步。

Claude Memory Bridge:把 Claude Code 自动记忆搬进 AgentDB

Claude Code 会把会话记忆以 markdown 文件形式保存在 ~/.claude/projects/*/memory/*.mdmemory-bridge 技能(见 skills/memory-bridge/SKILL.md)负责把它们自动导入 AgentDB:

  1. 读取全部记忆文件(当前项目或全部项目);
  2. 用 ONNX all-MiniLM-L6-v2 生成 384 维嵌入;
  3. 存入 AgentDB 的 claude-memories 命名空间并建立 HNSW 索引;
  4. 与已有条目去重(余弦相似度 > 0.95);
  5. 使统一语义搜索覆盖全部记忆来源。
# 手动导入(当前项目)
/memory-bridge

# 导入所有项目
/memory-bridge --all-projects

# 检查桥接健康状态
# Via MCP: memory_bridge_status({})

完整操作流程分为五步:先调 memory_bridge_status({}) 检查 Claude 文件数、AgentDB 条目数、SONA 状态与连接状态;再执行 memory_import_claude({})memory_import_claude({ allProjects: true })(CLI 备选为 node .claude/helpers/auto-memory-hook.mjs import-all);导入后再次用 memory_bridge_status 核对条目数与文件数一致;需要时执行 --dedupe 合并近重复项;最后用 memory_search_unified 验证跨源检索。检索结果带来源归属:claude-codeauto-memoryagentdb

自动导入通过 SessionStart 钩子触发,手动调用仅用于三种场景:首次全量导入所有项目、正常会话之外的批量记忆变更、模型更新后强制重新向量化。

SmartRetrieval:五阶段检索流水线(ADR-090)

--smart 模式启用一套五阶段检索流水线,目标是提升跨会话召回的"回忆质量":

  1. Query expansion(查询扩展)——基于模板生成查询变体,不依赖 LLM;
  2. Multi-query fan-out + RRF(多查询扇出 + 倒数秩融合)——对各变体的检索结果做 Reciprocal Rank Fusion;
  3. Recency boost(时新性加权)——从元数据时间戳做指数衰减;
  4. MMR diversity(最大边界相关去重)——基于 token-Jaccard 的 MMR 重排;
  5. Session round-robin(会话轮询交错)——把来自不同会话的结果交错排列。
# CLI
npx @claude-flow/cli@latest memory search --query "auth patterns" --smart --limit 10

# MCP
mcp__plugin_ruflo-core_ruflo__memory_search({ query: "auth patterns", smart: true, limit: 10 })

最适合多会话召回、时间类查询("上周我们是怎么决策的?")以及需要多样化结果集的场景。按 commands/recall.md 的说明,/recall 命令本质上是跨全部命名空间(patterns/tasks/solutions/feedback/security/claude-memories)的语义召回,结果按复合分排序:余弦相似度 × MMR 多样性 × 时新性衰减;无参数时退化为 memory list --limit 10 显示最近条目。

统一检索与检索策略选型

memory_search_unified 同时查询所有命名空间并做 MMR 多样性重排:

# Via MCP: memory_search_unified({ query: "auth security", limit: 5 })
# Via CLI:
npx @claude-flow/cli@latest memory search --query "auth security" --limit 5

memory-search 技能按查询类型给出了策略选型表:

查询类型策略理由
事实型查找稠密检索(HNSW)快、单跳、精确语义匹配
多跳推理Graph RAG沿文档间实体关系追踪
关键词 + 语义混合(稀疏 + 稠密 + RRF)融合 BM25 精确性与嵌入召回率
需要多样化结果稠密 + MMR 重排去除近重复,最大化覆盖面
近期上下文稠密 + 时新性加权优先时间上相关的条目
探索性查询Graph RAG + 社区发现发现聚类与潜在关联

技能内对策略收益给出量化说明:混合检索对"关键词+语义"型查询提升 20–49%,Graph RAG 对推理型查询提升 30–60%(这些为该插件技能文档中声明的经验数据,来自其 ruvector 集成路径)。复杂查询还可通过 agentdb_context-synthesize 把多个命名空间的结果合成上下文。

HNSW 性能数据:与暴力检索的对比

插件 README 引用 docs/reviews/intelligence-system-audit-2026-05-29.mdscripts/benchmark-intelligence.mjs 中的实测结果:

操作相对暴力检索说明
向量检索(N=5k)快约 3.2x–4.7xruvector NAPI,recall@10 约 0.99
向量检索(N=20k)快约 1.9xANN 在超过交叉点后胜出
向量检索(交叉点以下)打平或更慢小数据量下暴力检索更优

文档特别澄清:此前流传的"150x–12,500x"数据是暴力检索回退路径的伪影(artifact),在审计测试台(audit harness)下无法复现——这提醒使用者:ANN 的收益存在"索引规模交叉点",HNSW 在 N 较大时才有显著优势,小规模数据集不必强上 ANN。该性能测量方法可复现,对应基准脚本位于 scripts/benchmark-intelligence.mjs

与 ruvector 的高级算子集成

当同时加载 ruflo-ruvector 插件时,rag-memory 把高级检索委托给 ruvector 后端:

  • FlashAttention-3——O(N) 内存复杂度的注意力实现;
  • Graph RAG——多跳知识检索;
  • 混合检索(稀疏 + 稠密)——RRF 融合;
  • DiskANN——大规模持久化索引。

对应的 CLI 形态(来自 commands/ruflo-memory.mdmemory-search 技能):

# 混合检索(稀疏 + 稠密)
npx ruvector search "QUERY" --hybrid --limit 5

# Graph RAG(多跳)
npx ruvector search "QUERY" --graph-rag --limit 5

# 大脑知识检索
npx ruvector brain search "query"

桥接进 AgentDB 的记忆在 ruvector 加载后也会被其索引,从而支持跨会话的混合检索与多跳查询。

静态加密:opt-in 的 AES-256-GCM 落盘加密(ruflo 3.6.25+)

插件写入的 .swarm/memory.db(SQLite blob)支持按 ADR-096-encryption-at-rest 实现的 opt-in 静态加密。启用条件为同时设置 CLAUDE_FLOW_ENCRYPT_AT_REST=1CLAUDE_FLOW_ENCRYPTION_KEY

  • 每次写入 .swarm/memory.db 时以新的 12 字节 IV 加密(writeFileRestricted({encrypt:true}));
  • 读取走 readFileMaybeEncrypted(path, null)——通过魔数 RFE1 嗅探,使迁移窗口期内遗留的明文 memory.db 文件保持可用;
  • 嵌入向量随 SQLite blob 一并加密,Phase 1 无需单独的列级加密;
  • 任何一比特翻转都会导致 GCM 认证失败并产生解密错误,而非静默损坏。

ruflo doctor -c encryption 可验证门控状态。默认关闭;开启不需要迁移步骤(读取时嗅探明文字节,开启后的首次写入会把 DB 重写为加密格式)。密钥来源按优先级为:CLAUDE_FLOW_ENCRYPTION_KEY(base64 编码的 32 字节)→ OS 钥匙串(keytar:macOS Keychain / Windows DPAPI / Linux libsecret)→ 交互式口令 + scrypt KDF(派生密钥仅驻留进程内存,salt 存于 ~/.claude-flow/.kdf-salt,0600 权限);若开启开关但无任何密钥来源可用,CLI 会立即报错而非静默写明文(fail-closed 姿态)。加密格式为 magic(4B "RFE1") + iv(12B) + ciphertext + tag(16B)

命名空间协调:claude-memories 保留命名空间消费者契约

该插件是 claude-memories 保留命名空间的权威用户侧消费者(canonical consumer)。保留命名空间契约由 ruflo-agentdb ADR-0001 的 "Namespace convention" 一节定义:AgentDB 插件自己拥有三个**不可被遮蔽(MUST NOT be shadowed)**的保留命名空间——pattern(ReasoningBank 回退写入处)、claude-memories(Claude Code 自动记忆桥接目标)、defaultmemory_store 默认值);其余下游插件按 <plugin-stem>-<intent> 的 kebab-case 规则命名自己的命名空间。

本插件的自动导入流程严格遵循该契约:

Claude Code SessionStart hook
  → memory_import_claude (MCP)
  → claude-memories namespace (reserved, ruflo-agentdb owned)
  → exposed by this plugin's memory-bridge skill + memory_search_unified

要点是:本插件消费 claude-memories,但不拥有它;patterns/tasks/solutions/feedback/security 等非保留命名空间全部经由 memory_*(namespace-routed)工具访问,全程不做错误的命名空间路由(无 agentdb_hierarchical-* 或带命名空间参数的 agentdb_pattern-store 调用)。这一契约关系在 ADR-0001-rag-memory-contract 中被正式文档化。

验证:smoke-as-contract

插件的"通过即契约"验证脚本是 scripts/smoke.sh,执行方式:

bash plugins/ruflo-rag-memory/scripts/smoke.sh
# Expected: "10 passed, 0 failed"

脚本内含 10 项结构化检查,覆盖:① plugin.json 声明 0.2.1 且含 mcp/claude-memories/bridged-memory 关键字;② 两个技能 + 1 个 Agent + 2 个命令存在且 frontmatter 合法;③ README 钉死 @claude-flow/cli v3.6;④ README 引用 ruflo-agentdb 命名空间约定;⑤ claude-memories 消费者契约(命名空间名、memory_import_claudeSessionStart 均被文档化);⑥ 引用 memory_search_unified;⑦ 静态加密块完整(ADR-096、AES-256-GCM、RFE1 魔数);⑧ ADR-0001 存在且状态为 Accepted;⑨ 无"19 AgentDB controllers"过期表述回归;⑩ 技能中无通配符 allowed-tools 授权。

相关插件与生态定位

  • ruflo-agentdb——完整的 AgentDB 控制器桥(15 个 agentdb_* MCP 工具),命名空间约定的所有者,持有 claude-memories 保留命名空间;
  • ruflo-ruvector——高级向量运算(FlashAttention-3、Graph RAG、混合检索),本插件的高级检索后端;
  • ruflo-rvf——便携 RVF 记忆格式,支持跨机器导出/导入;
  • ruflo-knowledge-graph——对记忆做实体抽取与图遍历;
  • ruflo-intelligence——从检索模式中学习轨迹(SONA)。

License

MIT。

【免费下载链接】ruflo 🌊 The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated 【免费下载链接】ruflo 项目地址: https://gitcode.com/GitHub_Trending/cl/ruflo

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值