Spirtxiaoqi7/mindspace-dsh-local-rag ↗★ 1
mindspace-dsh-local-rag
Local, model-invoked hybrid RAG for DeepSeek Harness
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Spirtxiaoqi7/mindspace-dsh-local-rag说明文档
阅读完整 README ↗Mindspace DeepSeek Harness 本地 RAG
这是一个面向 DeepSeek Harness 的独立、本地 RAG 插件。它不会在每一轮对话里强塞召回内容,而是给所有支持工具调用的聊天模型提供一个明确的 search_local_memory 入口,由当前模型判断什么时候需要查资料。
项目定位:ARPM 衍生的独立 RAG 分支
这是 Mindspace/DSH 插件体系中的 RAG 分支,检索设计以 ARPM 的实践为基础,但不是对 ARPM 聊天主链的原样移植:
- 保留 ARPM 的向量召回 + BM25+、RRF 融合、子块命中与父块返回;
- 改为 DSH 标准
defineTool工具,由当前聊天模型自主决定何时检索; - 增加 DSH 原生
compaction/end摘要摄取、单会话隔离、源文件追溯、文档版本治理和本地模型生命周期; - 不修改 DSH 聊天供应商,不把召回结果强制注入每一轮 Prompt。
与结构化记忆插件的边界
本仓库和 mindspace-dsh-session-memory 没有绑定,也不是放在一起开发的单体插件。
| 能力 | 本仓库:Local RAG | 结构化记忆插件 |
|---|---|---|
| 主要职责 | 大规模资料与历史摘要的按需检索 | 用户画像、偏好、AI 要求、关系使命与扮演预设 |
| 模型使用方式 | 标准工具调用,按需检索 | 将受治理的个性化记忆提供给当前会话 |
| 包与仓库 | mindspace-dsh-local-rag | mindspace-dsh-session-memory |
| 数据目录 | /mindspace-local-rag/ | 结构化记忆插件自己的存储目录 |
| 依赖关系 | 不依赖结构化记忆插件 | 不依赖本 RAG 插件 |
两者可以独立安装和卸载。当前本机只是通过 DSH profile 把两个 bundle 并列挂载;任意一个被移除,另一个仍能单独启动和运行。RAG 中的会话摘要来自 DSH 原生压缩事件,不读取结构化记忆插件的数据。
本次贡献
- 模型自主检索:当下对话足以回答时不检索,不足时才调用工具。
- 本地双路召回:向量相似度与 BM25+ 并行,使用 RRF 做确定性融合。
- 固定安全边界:默认向量 5 条、词法 5 条,最终最多返回 5 条;模型不能控制 Top-K 和排序参数。
- 父子分块:子块目标约 200 个 Unicode 字符,延伸到下一个句末,最迟 300 字强制截断;每个父块最多聚合 3 个子块。短 PDF 页、DOCX 段落和表格行会先合并,再保留页/段/行范围,避免 600 字产生二十多个碎块。
- 双资料库:用户上传的知识库,以及按会话隔离的 DSH 原生压缩摘要库。
- 摘要式长期记忆:不再把每轮原始对话写进 RAG。只在 DSH 完成
compaction/end事务后读取原始压缩摘要,结合既有摘要与近期未压缩 surface 去重,再异步入库。 - 可追溯来源:PDF 保留文件名、文档标题、作者、URL、标题页与页码;DOCX 保留标题层级和段落号;TSV/CSV 保留表头和原始行号;摘要保留时间、轮次与事件 seq 范围。
- 可治理双库:知识正文和当前会话压缩摘要都能查看、编辑、逻辑删除和按版本回滚;每次修改都生成不可变修订号,并只重建对应文档的派生索引。
- 源文件二次取证:检索结果同时给 AI 和用户稳定的
local-rag://source/...地址。AI 可按sourceId/documentId二次检索,或分页读取受限的提取正文;插件不暴露真实磁盘路径。 - 文件摄取:设置页可分块上传 PDF、DOCX、TSV、CSV、TXT、Markdown、JSON 和 HTML;无需额外安装解析器。
