:基于 HNSW 向量檢索與 MMR 多樣性的跨命名空間語義召回)
ruflorecall命令實戰(zhàn)基于 HNSW 向量檢索與 MMR 多樣性的跨命名空間語義召回【免費下載鏈接】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項目地址: https://gitcode.com/GitHub_Trending/cl/ruflorecall是ruflo-rag-memory插件對外暴露的快速語義召回命令它不依賴精確關(guān)鍵詞匹配而是以句子的語義相似度從 AgentDB 的全部記憶命名空間中找回最相關(guān)條目。本文以 recall 命令定義 為核心結(jié)合插件 README、memory-search / memory-bridge 技能、ADR-0001 契約以及claude-flow/cli的源碼實現(xiàn)完整講解recall的調(diào)用方式、排序原理、命名空間覆蓋范圍與底層檢索管線讀完即可在自己的 Agent 工作流中直接使用。recall是什么一條命令打通全部記憶命名空間在 ruflo 的記憶體系中AgentDB 將知識按語義劃分到多個命名空間namespace而recall的設(shè)計目標(biāo)很明確用戶不需要指定命名空間一條命令同時搜索patterns、tasks、solutions、feedback、security、claude-memories全部 6 個命名空間并按綜合相關(guān)度返回最相關(guān)的 top-k 結(jié)果。npx claude-flow/clilatest memory search --query $ARGUMENTS --limit 5命令定義位于 plugins/ruflo-rag-memory/commands/recall.md其 frontmatter 描述為Quick semantic recall — searches all memory namespaces with MMR diversity and recency weighting。也就是說這條命令的本質(zhì)是memory search的無命名空間快捷封裝省略--namespace時搜索范圍自動擴(kuò)大到全部命名空間。使用場景跨會話回憶幾天前、甚至其他項目里記過的解決方案用一句自然語言就能撈回來見 EXAMPLES.md 中的跨會話示例不確定關(guān)鍵詞時的語義查找記不清原文只記得大概意思與 Agent 協(xié)同在 Claude Code 的 agent prompt 中通過memory_search({ query: ..., limit: 3 })注入上下文。三種調(diào)用形態(tài)recall根據(jù)$ARGUMENTS的內(nèi)容選擇不同行為1. 攜帶查詢詞語義搜索# 默認(rèn)形態(tài)HNSW 向量檢索 MMR 多樣性重排返回 top 5 npx claude-flow/clilatest memory search --query oauth single page app --limit 5 # 指定命名空間recall 默認(rèn)不指定即全空間 npx claude-flow/clilatest memory search --query rate limiting --namespace patterns --limit 52. 已加載 ruvector 時混合檢索更豐富的結(jié)果npx ruvector search how did we handle rate limiting? --hybrid --limit 5當(dāng)ruflo-ruvector插件同時加載時recall可將檢索委托給 ruvector 后端獲得高級能力FlashAttention-3 注意力、Graph RAG 多跳檢索、稀疏稠密混合檢索RRF 融合、DiskANN 大規(guī)模持久化索引見 ruflo-rag-memory README 的 Integration with ruvector 一節(jié)。3. 無參數(shù)列出最近記憶npx claude-flow/clilatest memory list --limit 10未提供任何參數(shù)時recall退化為最近記憶列表便于快速瀏覽最近寫入的內(nèi)容。排序核心composite score 三因子分解原文檔明確指出召回結(jié)果按綜合得分排序Results are ranked by composite score:cosine similarity × MMR diversity × recency decay.即每個候選條目的最終得分是三個因子的乘積缺一不可因子作用實現(xiàn)依據(jù)cosine similarity查詢向量與條目 384 維 ONNX 嵌入all-MiniLM-L6-v2的余弦相似度衡量語義相關(guān)度參見 memory-bridge SKILL 中的嵌入維度說明MMR diversityMaximal Marginal Relevance 多樣性重排抑制近重復(fù)結(jié)果余弦 0.92 視為近重復(fù)參見 memory-search SKILL 步驟 3recency decay按元數(shù)據(jù)時間戳做指數(shù)衰減每日衰減因子 0.95越新越靠前參見 memory-search SKILL 步驟 4這三個因子在 CLI 源碼中也有直接印證v3/claude-flow/cli/src/mcp-tools/memory-tools.ts中memory_search工具描述明確寫出 Backed by HNSW index over ONNX embeddings; returns top-k with similarity scoressmart參數(shù)啟用后即運(yùn)行 SmartRetrievalRRF MMR Recency 管線見 memory-tools.ts 與 memory-tools.ts。為什么需要 MMR 和 recency純 cosine 相似度檢索的典型問題是扎堆同一主題的 5 條記憶可能內(nèi)容高度重復(fù)且舊記憶會永遠(yuǎn)壓住新記憶。MMR 在最大化相關(guān)度的同時懲罰與已選結(jié)果相似的候選保證結(jié)果集多樣性recency 衰減則讓上周的決定優(yōu)先于三個月前的決定對時序類查詢我們上周決定了什么尤其關(guān)鍵。底層管線SmartRetrieval 五階段ADR-090recall的排序能力建立在 SmartRetrieval 檢索管線之上見 ruflo-rag-memory README 的 SmartRetrieval (ADR-090) 一節(jié)。當(dāng)--smart開啟或查詢較復(fù)雜時完整管線為Query expansion查詢擴(kuò)展——基于模板生成查詢變體不依賴 LLMMulti-query fan-out RRF多查詢扇出 倒數(shù)排名融合——對多個變體分別檢索再按 Reciprocal Rank Fusion 融合排序Recency boost時效提升——按元數(shù)據(jù)時間戳做指數(shù)衰減加權(quán)MMR diversityMMR 多樣性重排——token-Jaccard Maximal Marginal Relevance 重排去除近重復(fù)Session round-robin會話輪詢——從不同會話交錯取結(jié)果避免單一會話壟斷。# CLI 開啟 SmartRetrieval npx claude-flow/clilatest memory search --query auth patterns --smart --limit 10 # MCP 形式ruflo-core 提供 MCP server mcp__plugin_ruflo-core_ruflo__memory_search({ query: auth patterns, smart: true, limit: 10 })該管線最適合多會話召回、時序查詢與高多樣性場景。全命名空間語義memory_search_unified與命名空間契約recall的全空間搜索能力在 MCP 層面對應(yīng)memory_search_unified工具。其命名空間解析有明確的優(yōu)先級鏈namespace單值→namespaces數(shù)組→ … → 傳統(tǒng)的 6 命名空間兜底這一邏輯由回歸測試 memory-search-unified-2246.test.ts 鎖定防止未來改動悄悄破壞無參全空間行為。命名空間一覽命名空間用途示例 Keypatterns成功的代碼/設(shè)計模式pattern-auth-jwttasks任務(wù)上下文與結(jié)果task-refactor-apisolutionsBug 修復(fù)與解決方案fix-race-conditionfeedback用戶反饋與糾正feedback-test-stylesecurity漏洞模式vuln-sql-injectionclaude-memories橋接導(dǎo)入的 Claude Code 記憶auto-imported特別注意claude-memories是一個保留命名空間它歸ruflo-agentdb所有ruflo-rag-memory只是其規(guī)范化消費方canonical consumer通過 SessionStart 鉤子經(jīng)memory_import_claude自動導(dǎo)入~/.claude/projects/*/memory/*.md到 AgentDB見 ADR-0001 與 ruflo-agentdb README 的命名空間約定。這意味著recall搜索到的結(jié)果既包含本插件寫入的條目也包含 Claude Code 原生自動記憶的跨項目內(nèi)容。記憶橋接memory-bridgeclaude-memories命名空間由 memory-bridge 技能 維護(hù)導(dǎo)入流程讀取 Claude Code 記憶文件當(dāng)前項目或全部項目生成 384 維 ONNX 嵌入all-MiniLM-L6-v2存入 AgentDB 的claude-memories命名空間并建 HNSW 索引與既有條目去重余弦相似度 0.95 視為重復(fù)提供跨源統(tǒng)一語義搜索結(jié)果帶來源標(biāo)注claude-code/auto-memory/agentdb。# 手動導(dǎo)入當(dāng)前項目記憶 /memory-bridge # 導(dǎo)入所有項目 /memory-bridge --all-projects # 檢查橋接健康狀態(tài)MCP memory_bridge_status({})CLI 參數(shù)與實測要點常用參數(shù)recall所調(diào)用的memory search命令支持的參數(shù)見 ruflo-memory 命令參數(shù)說明示例--query/-q查詢文本必填無查詢時recall退化為 list--query auth patterns--namespace限定命名空間省略則全空間--namespace patterns--limit返回條數(shù)上限r(nóng)ecall默認(rèn) 5--limit 10--hybrid稀疏稠密混合檢索需 ruvectornpx ruvector search ... --hybrid--graph-rag多跳知識檢索需 ruvectornpx ruvector search ... --graph-rag--smart啟用 SmartRetrieval 五階段管線--smart --limit 10CLI 層面對缺查詢、缺命名空間的容錯與提示在 commands/memory.ts 中實現(xiàn)查詢?nèi)笔r報 Query is required而混合命名空間結(jié)果被截斷時會建議--namespace收窄。端到端驗證倉庫對recall行為有專門的回歸測試 memory-search-recall-2558.test.ts對應(yīng) #2558v3.19.0/3.20.0 中已存條目無法被關(guān)鍵詞或語義檢索召回的問題。測試斷言兩點所有已存條目都能被共享關(guān)鍵詞召回核心回歸且唯一關(guān)鍵詞能精準(zhǔn)區(qū)分目標(biāo)條目召回是定向的而非全量傾倒。插件自身還有 10 項結(jié)構(gòu)契約檢查bash plugins/ruflo-rag-memory/scripts/smoke.sh # Expected: 10 passed, 0 failed該腳本smoke.sh校驗版本與關(guān)鍵詞、兩個技能與 agent 及命令的 frontmatter、v3.6 版本 pin、claude-memories消費關(guān)系文檔、memory_import_claude/memory_search_unified引用等。完整實戰(zhàn)工作流結(jié)合 EXAMPLES.md一個典型的存儲→跨會話召回閉環(huán)# 會話 1寫入一個模式 npx ruflo memory store \ --key pattern-concurrent-queue \ --value Use a bounded queue with semaphore for concurrent task processing; limits parallelism safely \ --namespace patterns # 會話 2第二天另一個項目語義召回 npx ruflo recall concurrent queue safe processing # → 返回 Use a bounded queue with semaphore... # 精確檢索/列表/刪除 npx ruflo memory retrieve --key pattern-concurrent-queue --namespace patterns npx ruflo memory list --namespace patterns --limit 10 npx ruflo memory delete --key old-pattern --namespace patterns在 Agent 代碼中直接調(diào)用// 在 Claude Code agent 中跨會話取上下文 const findings await memory_search_unified({ query: OAuth2 PKCE refresh token security, limit: 5 }); // findings[0] 可能來自 3 周前的會話小結(jié)recall是 ruflo 記憶體系中零配置召回的入口一條命令覆蓋全部 6 個命名空間按cosine similarity × MMR diversity × recency decay的綜合得分排序底層由 HNSW 向量索引與 SmartRetrieval 五階段管線支撐并可無縫升級到 ruvector 的混合檢索與 Graph RAG。它既適合交互式使用也適合作為 Agent 的上下文注入工具——這正是 ruflo 跨會話、跨項目語義記憶能力的用戶側(cè)體現(xiàn)。延伸閱讀插件架構(gòu)與安裝見 plugins/ruflo-rag-memory/README.md檢索策略選型與命名空間指南見 skills/memory-search/SKILL.md底層 HNSW 性能審計數(shù)據(jù)見 docs/reviews/intelligence-system-audit-2026-05-29.md 與基準(zhǔn)腳本 scripts/benchmark-intelligence.mjs?!久赓M下載鏈接】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項目地址: https://gitcode.com/GitHub_Trending/cl/ruflo創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考