正文D3 把 xlsx 检查项、PDF 发票和见证表 docx 都进了 memoryCLI 一搜能命中facts_only字段也在 md 里。我本以为问答这一步会很顺结果在浏览器里连续翻车工具 snippet 里seller_name是坷垃农家菜馆最终气泡变成别的店名金额2550.00被写成255问发票回答尾巴冒出叶片、开关柜见证表问「叶片见证表」Top1 却落到检查项目(1).md的试板检验、出厂检查问检查项目又贴出开关柜见证表模版正文后来我才搞明白不是索引坏了是 Agent 有两层输出——memory_search的 snippet 往往是对的Qwen 7B 在写「最终回答」时二次发挥改专名、改金额、甚至自己改写搜索词。D4 干的就是这件事回答必须带来源文件名字段尽量逐字引用验收先看工具层再看气泡。两层输出别验错层OpenClaw 对话里通常有工具层展开memory_search看 JSON / snippet →以它为准模型层Assistant 气泡里的总结 →可能不可信我遇到过「先闪一下正确文字流式结束又变错」——那是 UI 先展示了 tool再展示了 model。验收时一定要展开工具调用对照。配置先压住随机性openclaw-data\openclaw.json里我做了两处改动改完要 restart Gateway且New Chat才吃新 promptollama/qwen2.5:7b:{params:{temperature:0}},memorySearch:{query:{maxResults:1}}temperature: 0减少乱改字maxResults: 1单文件精确问时别让模型合并开关柜、逆变器等多条 snippet见证表对比、头脑风暴式泛问可以把maxResults改回 3发票 / 单文件字段提取建议保持 1。规则写进 SOUL.md / AGENTS.md路径openclaw-data\workspace\SOUL.md、AGENTS.md要点就几条memory_search只调用一次禁止模型改写 query发票copy-pastefacts_only四行末尾来源文件名.md检查项目搜索词必须是doc_type:checklist 检查项目叶片搜索词必须是source_file:叶片设备见证情况表禁止改成「叶片见证表」这种模糊词改完 workspace 规则后旧会话不会自动加载必须New Chat。固定提问模板浏览器三条验收模板在study\prompts\D4-浏览器提问模板.md核心是键值检索别泛问发票恰好 5 行只调用一次 memory_search搜索invoice_no:26152000000166099696 你的回答只能有下面 5 行禁止写解释、禁止引用其他文件 buyer_name: 从 snippet facts_only 原样复制 seller_name: 从 snippet facts_only 原样复制 invoice_date: 从 snippet facts_only 原样复制 total_amount: 从 snippet facts_only 原样复制 来源dzfp_....md叶片禁止模糊搜只调用一次 memory_search搜索source_file:叶片设备见证情况表 必须包含 device: 叶片、见证表编号如 YCL-01-R01。 禁止引用钢塔、检查项目、发票。 最后一行来源叶片设备见证情况表19个.md检查项目必须带 doc_type只调用一次 memory_search搜索doc_type:checklist 检查项目 只列出 Top1 里 ## 开头的 sheet 名称。 最后一行来源检查项目(1).mdCLI 真值对照不经过 LLM浏览器说不准时我先跑 CLI判断是「库问题」还是「模型问题」cd study\scripts.\d4-answer-from-search.ps1invoice_no:26152000000166099696.\d4-answer-from-search.ps1source_file:叶片设备见证情况表.\d4-answer-from-search.ps1doc_type:checklist 检查项目CLI 对 / 浏览器错结论是D4 问题约束输出不是重建索引否回到 D3查 md、重跑 ingest我这边 CLI 金标准大致是发票seller 含坷垃金额2550.00叶片device: 叶片witness_table_no: YCL-01-R01检查项目17 个 sheet来源检查项目(1).md踩坑与解决坑 1工具对、气泡错先对后错现象snippet 里坷垃回答变康卉 / 物资批发。原因7B 润色中文专名UI 两层展示顺序误导。解决temperature: 0 prompt 禁止改写验收以 tool 为准。坑 2模型改写 memory_search 关键词现象你写「叶片见证表」工具里搜成别的Top1 变成检查项目。原因7B 调用工具前改了 query。解决prompt 写死搜索词用source_file:、invoice_no:、doc_type:等带 key 的检索。坑 3一条问题混进多个文件现象问发票尾巴出现开关柜、叶片见证表。原因maxResults过大 模型合并多条结果。解决精确问设maxResults: 1prompt 写「只根据 Top1」。坑 4模糊搜「叶片见证表」命中检查项目现象回答全是试板检验、出厂检查没有叶片。原因向量泛搜叶片见证表时Top1 可能是检查项目(1).md我 CLI 测过 score 约 0.47。解决必须用source_file:叶片设备见证情况表Top1 score 约 0.79。坑 5检查项目没加 doc_type命中开关柜现象来源变成开关柜见证表模版2120V1.md。原因泛搜「检查项目」会撞到结构相近的见证表模板。解决doc_type:checklist 检查项目。坑 6SOUL.md 改了不生效现象规则加了模型仍旧乱写。原因旧会话没加载新 SOUL或 7B 能力不够仍违规。解决New Chat仍不行就认小模型局限商用换更大模型或绕过 LLM。坑 7金额 2550 变 255现象库内2550.00回答写255。原因模型「心算」或截断。解决prompt 禁止改写金额商用不让 LLM 报金额程序拼字段。小结D4 对我来说结论很清晰本地 RAG 的瓶颈 often 不在向量库而在检索之后的生成环节。工程、造价、监理类资料问答客户要的是「这句话出自哪份文件、数字没被改」小模型不适合当最后一道关。Demo 阶段可以用「snippet 即答案」 CLI 真值对照真要交付检索后模板填字段LLM 只写解释句或者不用。后续计划D5raw 目录监控新文件自动 ingest扫描 PDF OCR 管道还没开始商用专名和金额不让 7B 重述