[{"data":1,"prerenderedAt":610},["ShallowReactive",2],{"docs-page-cn-\u002Fcn\u002Fopenclaw\u002Fexamples\u002Frecall_filter":3,"surround-cn-\u002Fcn\u002Fopenclaw\u002Fexamples\u002Frecall_filter":595},{"id":4,"title":5,"avatar":6,"banner":6,"body":7,"category":6,"desc":6,"description":57,"extension":589,"links":6,"meta":590,"navigation":6,"path":591,"seo":592,"stem":593,"__hash__":594},"docs\u002Fcn\u002Fopenclaw\u002Fexamples\u002Frecall_filter.md","记忆召回的二次过滤",null,{"type":8,"value":9,"toc":577},"minimark",[10,14,18,21,25,28,30,35,43,51,253,256,315,317,321,324,384,386,389,419,421,424,447,450,452,455,461,463,466,469,509,512,541,544,546,549,557,559,562,573],[11,12,13],"h2",{"id":13},"云插件",[15,16,17],"p",{},"MemOS Openclaw 云插件支持使用指定的大语言模型对召回的记忆进行二次精准过滤。过滤后，只有与当前任务高度相关的记忆才会被注入到上下文中，有效避免无关记忆的干扰并节省 Token。",[19,20],"br",{},[22,23,24],"h3",{"id":24},"如何使用",[15,26,27],{},"只需配置兼容 OpenAI 格式的模型接口（如本地 Ollama 或第三方大模型 API）并开启过滤开关，即可启用记忆二次过滤功能。",[19,29],{},[31,32,34],"h4",{"id":33},"_1-开启记忆过滤功能","1. 开启记忆过滤功能",[15,36,37,38,42],{},"在配置大模型过滤记忆时，",[39,40,41],"strong",{},"必须","配置 API Key 和 Base URL。",[15,44,45,46,50],{},"在 ",[47,48,49],"code",{},"openclaw.json"," 配置中添加：",[52,53,58],"pre",{"className":54,"code":55,"language":56,"meta":57,"style":57},"language-json shiki shiki-themes material-theme-lighter github-light-high-contrast github-dark-default","{\n  \"plugins\": {\n    \"entries\": {\n      \"memos-cloud-openclaw-plugin\": {\n        \"config\": {\n          \"recallFilterEnabled\": true,\n          \"recallFilterBaseUrl\": \"http:\u002F\u002F127.0.0.1:11434\u002Fv1\",\n          \"recallFilterApiKey\": \"sk-...\",\n          \"recallFilterModel\": \"qwen2.5_7b\"\n        }\n      }\n    }\n  }\n}\n","json","",[47,59,60,69,89,105,121,137,158,182,203,223,229,235,241,247],{"__ignoreMap":57},[61,62,65],"span",{"class":63,"line":64},"line",1,[61,66,68],{"class":67},"suWxN","{\n",[61,70,72,76,80,83,86],{"class":63,"line":71},2,[61,73,75],{"class":74},"sfJrv","  \"",[61,77,79],{"class":78},"skH7o","plugins",[61,81,82],{"class":74},"\"",[61,84,85],{"class":67},":",[61,87,88],{"class":67}," {\n",[61,90,92,95,99,101,103],{"class":63,"line":91},3,[61,93,94],{"class":74},"    \"",[61,96,98],{"class":97},"smon8","entries",[61,100,82],{"class":74},[61,102,85],{"class":67},[61,104,88],{"class":67},[61,106,108,111,115,117,119],{"class":63,"line":107},4,[61,109,110],{"class":74},"      \"",[61,112,114],{"class":113},"s_fzf","memos-cloud-openclaw-plugin",[61,116,82],{"class":74},[61,118,85],{"class":67},[61,120,88],{"class":67},[61,122,124,127,131,133,135],{"class":63,"line":123},5,[61,125,126],{"class":74},"        \"",[61,128,130],{"class":129},"sw4Oa","config",[61,132,82],{"class":74},[61,134,85],{"class":67},[61,136,88],{"class":67},[61,138,140,143,147,149,151,155],{"class":63,"line":139},6,[61,141,142],{"class":74},"          \"",[61,144,146],{"class":145},"sleiK","recallFilterEnabled",[61,148,82],{"class":74},[61,150,85],{"class":67},[61,152,154],{"class":153},"smHB8"," true",[61,156,157],{"class":67},",\n",[61,159,161,163,166,168,170,174,178,180],{"class":63,"line":160},7,[61,162,142],{"class":74},[61,164,165],{"class":145},"recallFilterBaseUrl",[61,167,82],{"class":74},[61,169,85],{"class":67},[61,171,173],{"class":172},"sjUum"," \"",[61,175,177],{"class":176},"sp1uZ","http:\u002F\u002F127.0.0.1:11434\u002Fv1",[61,179,82],{"class":172},[61,181,157],{"class":67},[61,183,185,187,190,192,194,196,199,201],{"class":63,"line":184},8,[61,186,142],{"class":74},[61,188,189],{"class":145},"recallFilterApiKey",[61,191,82],{"class":74},[61,193,85],{"class":67},[61,195,173],{"class":172},[61,197,198],{"class":176},"sk-...",[61,200,82],{"class":172},[61,202,157],{"class":67},[61,204,206,208,211,213,215,217,220],{"class":63,"line":205},9,[61,207,142],{"class":74},[61,209,210],{"class":145},"recallFilterModel",[61,212,82],{"class":74},[61,214,85],{"class":67},[61,216,173],{"class":172},[61,218,219],{"class":176},"qwen2.5_7b",[61,221,222],{"class":172},"\"\n",[61,224,226],{"class":63,"line":225},10,[61,227,228],{"class":67},"        }\n",[61,230,232],{"class":63,"line":231},11,[61,233,234],{"class":67},"      }\n",[61,236,238],{"class":63,"line":237},12,[61,239,240],{"class":67},"    }\n",[61,242,244],{"class":63,"line":243},13,[61,245,246],{"class":67},"  }\n",[61,248,250],{"class":63,"line":249},14,[61,251,252],{"class":67},"}\n",[15,254,255],{},"或设置环境变量：",[52,257,261],{"className":258,"code":259,"language":260,"meta":57,"style":57},"language-bash shiki shiki-themes material-theme-lighter github-light-high-contrast github-dark-default","MEMOS_RECALL_FILTER_ENABLED=true\nMEMOS_RECALL_FILTER_BASE_URL=\"http:\u002F\u002F127.0.0.1:11434\u002Fv1\"\nMEMOS_RECALL_FILTER_API_KEY=\"sk-...\"\nMEMOS_RECALL_FILTER_MODEL=\"qwen2.5_7b\"\n","bash",[47,262,263,276,289,302],{"__ignoreMap":57},[61,264,265,269,273],{"class":63,"line":64},[61,266,268],{"class":267},"s5ojA","MEMOS_RECALL_FILTER_ENABLED",[61,270,272],{"class":271},"saN0X","=",[61,274,275],{"class":176},"true\n",[61,277,278,281,283,285,287],{"class":63,"line":71},[61,279,280],{"class":267},"MEMOS_RECALL_FILTER_BASE_URL",[61,282,272],{"class":271},[61,284,82],{"class":172},[61,286,177],{"class":176},[61,288,222],{"class":172},[61,290,291,294,296,298,300],{"class":63,"line":91},[61,292,293],{"class":267},"MEMOS_RECALL_FILTER_API_KEY",[61,295,272],{"class":271},[61,297,82],{"class":172},[61,299,198],{"class":176},[61,301,222],{"class":172},[61,303,304,307,309,311,313],{"class":63,"line":107},[61,305,306],{"class":267},"MEMOS_RECALL_FILTER_MODEL",[61,308,272],{"class":271},[61,310,82],{"class":172},[61,312,219],{"class":176},[61,314,222],{"class":172},[19,316],{},[31,318,320],{"id":319},"_2-配置鉴权与进阶参数可选","2. 配置鉴权与进阶参数（可选）",[15,322,323],{},"如果需要调整超时时间及失败策略，可以在配置中指定：",[52,325,327],{"className":54,"code":326,"language":56,"meta":57,"style":57},"{\n  \"config\": {\n    \"recallFilterTimeoutMs\": 6000,\n    \"recallFilterFailOpen\": true\n  }\n}\n",[47,328,329,333,345,362,376,380],{"__ignoreMap":57},[61,330,331],{"class":63,"line":64},[61,332,68],{"class":67},[61,334,335,337,339,341,343],{"class":63,"line":71},[61,336,75],{"class":74},[61,338,130],{"class":78},[61,340,82],{"class":74},[61,342,85],{"class":67},[61,344,88],{"class":67},[61,346,347,349,352,354,356,360],{"class":63,"line":91},[61,348,94],{"class":74},[61,350,351],{"class":97},"recallFilterTimeoutMs",[61,353,82],{"class":74},[61,355,85],{"class":67},[61,357,359],{"class":358},"sJNII"," 6000",[61,361,157],{"class":67},[61,363,364,366,369,371,373],{"class":63,"line":107},[61,365,94],{"class":74},[61,367,368],{"class":97},"recallFilterFailOpen",[61,370,82],{"class":74},[61,372,85],{"class":67},[61,374,375],{"class":153}," true\n",[61,377,378],{"class":63,"line":123},[61,379,246],{"class":67},[61,381,382],{"class":63,"line":139},[61,383,252],{"class":67},[19,385],{},[22,387,388],{"id":388},"原理介绍",[390,391,392,399,409],"ul",{},[393,394,395,398],"li",{},[39,396,397],{},"召回后拦截","：在每轮对话前从云端召回记忆后，插件会把候选的记忆条目发送给你配置的过滤模型做二次筛选。",[393,400,401,404,405,408],{},[39,402,403],{},"精准保留","：过滤模型判断后，只保留被标记为 ",[47,406,407],{},"keep"," 的相关条目，最终注入到 Agent 的上下文中。",[393,410,411,414,415,418],{},[39,412,413],{},"高可用回退","：默认开启了失败放行（",[47,416,417],{},"recallFilterFailOpen: true","）。当过滤模型请求超时或失败时，会自动回退为“不过滤”全量注入，保证当前对话不被中断。",[19,420],{},[22,422,423],{"id":423},"适用场景",[390,425,426,432,438],{},[393,427,428,431],{},[39,429,430],{},"超长记忆精简","：长期对话积累大量记忆时，剔除与当前 Prompt 无关的内容，大幅降低主模型上下文的 Token 消耗。",[393,433,434,437],{},[39,435,436],{},"提升推理精度","：为需要专注处理复杂任务的 Agent 过滤掉早期无关的记忆干扰，提高核心任务的推理准确度。",[393,439,440,443,444,446],{},[39,441,442],{},"本地模型协同","：搭配本地运行的小模型（如 Ollama 运行的 ",[47,445,219],{},"）作为低成本前置过滤器，在不增加主模型 API 费用的前提下提升记忆注入质量。",[448,449],"hr",{},[19,451],{},[11,453,454],{"id":454},"本地插件",[15,456,457,460],{},[47,458,459],{},"@memtensor\u002Fmemos-local-plugin"," 的本地检索内置多阶段过滤。它会先从 Skill、Trace\u002FEpisode、World Model 三层召回候选，再通过 RRF + MMR 做融合与去冗余；如果配置了可用 LLM，还可以在注入前做相关性复核，进一步筛掉表面关键词相似但对当前任务帮助不大的内容。",[19,462],{},[22,464,465],{"id":465},"如何配置",[15,467,468],{},"直接在对应 Agent 的 Memory Viewer 里配置：",[470,471,472,485],"table",{},[473,474,475],"thead",{},[476,477,478,482],"tr",{},[479,480,481],"th",{},"Agent",[479,483,484],{},"Memory Viewer",[486,487,488,499],"tbody",{},[476,489,490,494],{},[491,492,493],"td",{},"OpenClaw",[491,495,496],{},[47,497,498],{},"http:\u002F\u002F127.0.0.1:18799",[476,500,501,504],{},[491,502,503],{},"Hermes",[491,505,506],{},[47,507,508],{},"http:\u002F\u002F127.0.0.1:18800",[15,510,511],{},"配置步骤：",[513,514,515,518,525,531,538],"ol",{},[393,516,517],{},"打开 Memory Viewer。",[393,519,520,521,524],{},"进入 ",[39,522,523],{},"Settings → AI Models","。",[393,526,45,527,530],{},[39,528,529],{},"LLM"," 区域选择 provider，并填写 endpoint、API Key、model 等信息。",[393,532,533,534,537],{},"点击 ",[39,535,536],{},"Test"," 确认模型可用。",[393,539,540],{},"保存设置；Viewer 会自动重启插件并加载新配置。",[15,542,543],{},"保存后，本地检索会在召回、RRF\u002FMMR 排序之后使用该 LLM 做相关性复核。未配置 LLM 时，插件仍会使用内置的多通道召回和机械阈值过滤。",[19,545],{},[22,547,548],{"id":548},"本地召回流程",[52,550,555],{"className":551,"code":553,"language":554,"meta":57},[552],"language-text","用户问题\n→ 构建检索 query 与标签\n→ Tier 1: Skill 候选\n→ Tier 2: Trace \u002F Episode 候选\n→ Tier 3: World Model 候选\n→ 向量 \u002F FTS5 \u002F pattern \u002F 错误特征多通道召回\n→ RRF 融合 + MMR 多样性控制\n→ 可选 LLM 相关性复核\n→ 注入给 Agent\n","text",[47,556,553],{"__ignoreMap":57},[19,558],{},[22,560,561],{"id":561},"预期结果",[390,563,564,567,570],{},[393,565,566],{},"注入上下文的记忆更聚焦，噪音更少",[393,568,569],{},"Skill、Trace\u002FEpisode、World Model 不会只靠单一向量相似度命中",[393,571,572],{},"LLM 不可用时会使用更严格的机械阈值回退，不影响基础召回",[574,575,576],"style",{},"html pre.shiki code .suWxN, html code.shiki .suWxN{--shiki-light:#39ADB5;--shiki-default:#0E1116;--shiki-dark:#E6EDF3}html pre.shiki code .sfJrv, html code.shiki .sfJrv{--shiki-light:#39ADB5;--shiki-default:#024C1A;--shiki-dark:#7EE787}html pre.shiki code .skH7o, html code.shiki .skH7o{--shiki-light:#9C3EDA;--shiki-default:#024C1A;--shiki-dark:#7EE787}html pre.shiki code .smon8, html code.shiki .smon8{--shiki-light:#E2931D;--shiki-default:#024C1A;--shiki-dark:#7EE787}html pre.shiki code .s_fzf, html code.shiki .s_fzf{--shiki-light:#F76D47;--shiki-default:#024C1A;--shiki-dark:#7EE787}html pre.shiki code .sw4Oa, html code.shiki .sw4Oa{--shiki-light:#E53935;--shiki-default:#024C1A;--shiki-dark:#7EE787}html pre.shiki code .sleiK, html code.shiki .sleiK{--shiki-light:#916B53;--shiki-default:#024C1A;--shiki-dark:#7EE787}html pre.shiki code .smHB8, html code.shiki .smHB8{--shiki-light:#39ADB5;--shiki-default:#023B95;--shiki-dark:#79C0FF}html pre.shiki code .sjUum, html code.shiki .sjUum{--shiki-light:#39ADB5;--shiki-default:#032563;--shiki-dark:#A5D6FF}html pre.shiki code .sp1uZ, html code.shiki .sp1uZ{--shiki-light:#91B859;--shiki-default:#032563;--shiki-dark:#A5D6FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s5ojA, html code.shiki .s5ojA{--shiki-light:#90A4AE;--shiki-default:#0E1116;--shiki-dark:#E6EDF3}html pre.shiki code .saN0X, html code.shiki .saN0X{--shiki-light:#39ADB5;--shiki-default:#A0111F;--shiki-dark:#FF7B72}html pre.shiki code .sJNII, html code.shiki .sJNII{--shiki-light:#F76D47;--shiki-default:#023B95;--shiki-dark:#79C0FF}",{"title":57,"searchDepth":71,"depth":71,"links":578},[579,584],{"id":13,"depth":71,"text":13,"children":580},[581,582,583],{"id":24,"depth":91,"text":24},{"id":388,"depth":91,"text":388},{"id":423,"depth":91,"text":423},{"id":454,"depth":71,"text":454,"children":585},[586,587,588],{"id":465,"depth":91,"text":465},{"id":548,"depth":91,"text":548},{"id":561,"depth":91,"text":561},"md",{},"\u002Fcn\u002Fopenclaw\u002Fexamples\u002Frecall_filter",{"title":5,"description":57},"cn\u002Fopenclaw\u002Fexamples\u002Frecall_filter","413pnCsC3T5cK_lyhOc-AahST1a8isNEkdaDk_3GaQI",[596,603],{"title":597,"path":598,"stem":599,"icon":600,"framework":6,"module":6,"class":601,"target":-1,"active":602,"defaultOpen":602,"children":-1,"description":-1},"多智能体记忆隔离","\u002Fcn\u002Fopenclaw\u002Fexamples\u002Fmulti_agent","openclaw\u002Fexamples\u002Fmulti_agent","i-ri-team-line",[],false,{"title":604,"path":605,"stem":606,"icon":607,"framework":6,"module":6,"class":608,"target":-1,"active":602,"defaultOpen":602,"children":-1,"description":609},"本地插件使用","\u002Fcn\u002Fopenclaw\u002Fexamples\u002Fhermes_usage","openclaw\u002Fexamples\u002Fhermes_usage","i-ri-terminal-box-line",[],"MemOS 本地插件在 OpenClaw 与 Hermes 中的基础使用、工具调用、团队共享和多 Agent 场景示例。",1781767991040]