Agent Zero 记忆检索未命中反馈:解析 fw.memories_not_found.md 标准消息模板

发布时间:2026/9/14 17:55:14

Agent Zero 记忆检索未命中反馈:解析 fw.memories_not_found.md 标准消息模板 Agent Zero 记忆检索未命中反馈解析 fw.memories_not_found.md 标准消息模板【免费下载链接】agent-zeroAgent Zero AI framework项目地址: https://gitcode.com/GitHub_Trending/ag/agent-zero导读本文聚焦 Agent Zero AI framework 中的fw.memories_not_found.md提示词模板深入剖析其在持久化记忆检索链路中的定位与作用。你将了解到该模板如何在memory_load工具执行向量相似度检索未命中时被触发{{query}}占位符如何被真实查询词替换以及底层 FAISS 检索的相似度阈值机制与相关配置项。读完本文你既能看懂这条消息从触发到渲染的完整调用链也能掌握调整记忆召回灵敏度如threshold与limit的实操方法。一、模板内容与定位prompts/fw.memories_not_found.md是 Agent Zero 框架消息framework message体系中的一员全文如下{ memory: No memories found for specified query: {{query}} }这是一个结构极其精简的 JSON 模板只包含一个memory字段值是一条英文提示语其中{{query}}是待渲染的占位符。它不属于普通对话提示而是供工具tool在执行结果中返回的结构化反馈消息——当 Agent 尝试从记忆库中检索与查询相关的记忆却一无所获时系统使用该模板告知上层调用方“本次检索未命中”。从仓库目录结构看这类fw.*.md文件统一存放在 prompts 目录下与fw.memories_deleted.md记忆删除成功反馈、fw.msg_truncated.md消息截断提示、fw.tool_result.md工具结果包装模板等同属一类均由代码通过read_prompt按文件名动态加载。二、触发场景memory_load 工具的执行路径该模板唯一的生产调用点位于记忆插件_memory的memory_load工具中源码见 plugins/_memory/tools/memory_load.py。MemoryLoad继承自helpers.tool.Tool核心执行逻辑如下DEFAULT_THRESHOLD 0.7 DEFAULT_LIMIT 10 async def execute(self, query, thresholdDEFAULT_THRESHOLD, limitDEFAULT_LIMIT, filter, **kwargs): if threshold is None or threshold : threshold DEFAULT_THRESHOLD if limit is None or limit : limit DEFAULT_LIMIT threshold float(threshold) limit int(limit) db await Memory.get(self.agent) docs await db.search_similarity_threshold(queryquery, limitlimit, thresholdthreshold, filterfilter) if len(docs) 0: result self.agent.read_prompt(fw.memories_not_found.md, queryquery) else: text \n\n.join(Memory.format_docs_plain(docs)) result str(text) return Response(messageresult, break_loopFalse)关键链路可概括为三步参数规整threshold与limit若为空则回退到默认值0.7与10并做类型转换float/int向量检索调用db.search_similarity_threshold(...)执行相似度检索结果分叉命中数len(docs) 0时渲染fw.memories_not_found.md模板命中时则拼接所有文档文本直接返回。值得注意的是read_prompt的调用方式——文件名fw.memories_not_found.md不带路径前缀说明 prompt 加载遵循项目统一的命名解析机制queryquery将用户查询词注入{{query}}占位符从而生成类似No memories found for specified query: how to deploy的最终消息。返回值语义return Response(messageresult, break_loopFalse)break_loopFalse表示检索未命中不会中断 Agent 的主循环——工具正常返回Agent 可以继续后续推理与行动。这保证了“没有记忆”本身也是一种合法、温和的状态反馈而非异常中断。三、底层原理相似度阈值检索如何判定“未命中”未命中判定的核心实现在Memory.search_similarity_threshold见 plugins/_memory/helpers/memory.pyasync def search_similarity_threshold( self, query: str, limit: int, threshold: float, filter: str ): comparator Memory._get_comparator(filter) if filter else None return await self.db.asearch( query, search_typesimilarity_score_threshold, klimit, score_thresholdthreshold, filtercomparator, )可以看到检索方式为similarity_score_threshold即相似度得分必须不低于threshold才返回低于阈值的文档一律被过滤klimit限制最多返回的文档数filter参数会通过Memory._get_comparator(filter)构建元数据比较器用于按子目录等条件收窄检索范围。由此可以推断“未命中”的两种典型成因记忆库为空尚未保存任何记忆或当前记忆子目录下没有内容相似度低于阈值库中虽有记忆但与查询语义距离过远score_threshold0.7将其全部过滤。此外仓库还提供了search_similarity_threshold_with_scoresmemory.py这一带得分返回的检索变体供需要展示相关度的场景使用其过滤逻辑与上述一致。命中时的文本格式化当检索命中时Memory.format_docs_plainmemory.py负责把Document列表转为纯文本staticmethod def format_docs_plain(docs: list[Document]) - list[str]: result [] for doc in docs: text for k, v in doc.metadata.items(): text f{k}: {v}\n text fContent: {doc.page_content} result.append(text) return result每条记忆按元数据键: 值逐行输出最后附上Content: 正文内容多条记忆以空行分隔。这种结构化纯文本正是“未命中”模板所要替代的内容形态——有结果时是若干条格式化记忆无结果时则是统一的未命中提示。四、阈值与限额影响“未命中”频率的配置项未命中是否频繁出现直接受相似度阈值和检索数量影响。相关默认配置集中在 plugins/_memory/default_config.yamlproject_memory_isolation: true memory_recall_enabled: true memory_recall_delayed: false memory_recall_interval: 3 memory_recall_history_len: 10000 memory_recall_memories_max_search: 12 memory_recall_solutions_max_search: 8 memory_recall_memories_max_result: 5 memory_recall_solutions_max_result: 3 memory_recall_similarity_threshold: 0.7 memory_recall_query_prep: false memory_recall_post_filter: false memory_memorize_enabled: true memory_memorize_consolidation: true memory_memorize_replace_threshold: 0.9 agent_memory_subdir: default与本文主题直接相关的调优建议配置项默认值对未命中的影响memory_recall_similarity_threshold0.7阈值越高检索越严格越容易触发未命中反馈memory_recall_memories_max_search12自动回忆时的最大候选搜索数memory_recall_memories_max_result5自动回忆时最终返回的记忆条数上限agent_memory_subdirdefault记忆存储的子目录决定检索范围子目录为空必然未命中其中memory_recall_similarity_threshold: 0.7与memory_load.py中DEFAULT_THRESHOLD 0.7完全一致二者共同构成了“默认 0.7 相似度门槛”的项目级约定。五、同类模板对照未命中、已删除与工具结果为了准确理解fw.memories_not_found.md的“反馈消息”属性可将其与同一体系下的两个兄弟模板对照记忆删除成功——prompts/fw.memories_deleted.md{ memories_deleted: {{memory_count}} }由memory_delete.py与memory_forget.py在批量删除后通过read_prompt(fw.memories_deleted.md, memory_countlen(dels))渲染返回被删除条数。工具结果通用包装——prompts/fw.tool_result.md{ tool_name: {{tool_name}}, tool_result: {{tool_result}} }用于将任意工具的名称与执行结果包装成统一 JSON 结构回传。三者对比可见fw.*模板承载的是框架级、跨工具的标准化反馈契约字段名memory/memories_deleted/tool_name即消息语义的机器可读标识值则为人类可读的文本或计数。fw.memories_not_found.md正是这一契约在“记忆检索空结果”场景下的实现。六、从消息到行为Agent 侧的使用建议在实际使用 Agent Zero 的记忆功能时理解这条未命中消息有助于正确解读 Agent 行为它不是错误break_loopFalse意味着未命中只是正常返回Agent 会继续执行无需将其视为故障排查点它是信号频繁出现该消息往往提示记忆库内容不足或查询与已存记忆语义偏差过大此时可考虑降低memory_recall_similarity_threshold、增加记忆写入频率或检查agent_memory_subdir是否指向了正确的子目录它是可追踪的由于消息中嵌入了原始{{query}}通过日志可以反查“哪些查询在何时未命中”为记忆质量优化提供数据线索。结语fw.memories_not_found.md虽仅有一行 JSON却是 Agent Zero 记忆子系统“空结果语义”的规范化表达它由memory_load工具在向量检索零命中时触发经read_prompt注入真实查询词后返回给 Agent与 FAISS 的similarity_score_threshold检索策略及0.7默认阈值共同构成了完整的未命中判定闭环。理解这条模板就等于理解了 Agent Zero 记忆召回机制中“查无此忆”这一关键分支的行为契约。【免费下载链接】agent-zeroAgent Zero AI framework项目地址: https://gitcode.com/GitHub_Trending/ag/agent-zero创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/14 17:50:14

2026年实验室防潮升级:红外防潮箱如何实现温湿度双控与自动再生

前段时间帮一个做材料研发的朋友调试新实验室,聊到防潮设备时他抱怨说,传统防潮箱里的变色硅胶一到梅雨季就“撑不住”,三天两头要取出来烘烤,仪器间的湿度还总是忽高忽低。后来我们换了一台红外防潮箱,几个月用下来&a…

2026/9/14 18:25:18

Flutter+OpenHarmony视力保护App开发实践

1. 项目概述这个基于Flutter和OpenHarmony的视力保护提醒App,核心功能是通过四种专业检测方法(色盲、对比度、清晰度、疲劳度)评估用户眼睛健康状况。作为移动端健康管理工具,它解决了现代人长时间使用电子设备导致的视力问题缺乏…

2026/9/14 18:20:17

发票表格检测实战:基于YOLOv8与真实数据集的训练调优

简介:发票表格检测数据集是一份面向YOLO系列目标检测框架的行业数据集,专注于发票文档中表格区域的自动定位与边界框回归,可应用于文档结构识别、财务票据自动化处理、办公文档智能审核以及计算机视觉算法研究等场景。压缩包共1820个文件&…

2026/9/14 2:17:50

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/14 0:03:22

KCF目标跟踪算法与OTB工程实现:毕业设计实战解析

简介:这是一份基于KCF核相关滤波算法、融合尺度池与抗遮挡处理的目标检测跟踪MATLAB完整源码,主要面向计算机相关专业准备毕业设计、课程设计或期末大作业的学生,也适合需要项目实战练习的初学者。源码在OTB数据集上完成验证,能够…

2026/9/14 0:03:22

语音情感识别实战:Keras实现LSTM、CNN、SVM与MLP多模型对比

简介:面向语音情感识别入门与进阶开发者,这份基于Keras的项目源码完整实现了LSTM、CNN、SVM、MLP四种模型,兼容Python3.8与Keras/TensorFlow2环境。压缩包内含49个文件,大小约70.31MB,主体包括Python脚本、yaml/json配…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码