把群聊消息存进本地库,按语义检索后供机器人调用
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Yslehui/dsh-rag-memory该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · platform
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 2 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 3 处,展示前 3 条)
- 写入本地文件lib/store.js:68
mkdirSync(dirname(dbPath), { recursive: true }) - 发起网络请求lib/embedding.js:30
const res = await fetch(`${base}/embeddings`, { - 发起网络请求lib/rerank.js:28
const res = await fetch(`${base}/rerank`, {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DSH QQ 机器人用的本地 RAG 长期记忆:SQLite 存储,中文友好的 BM25 + 向量检索,可选重排,通过本地 HTTP 提供服务。
README
由 DeepSeek 最新模型翻译生成dsh-rag-memory
给 QQ 机器人用的本地 RAG 长期记忆插件:把群聊/私聊消息、事实、摘要存进 SQLite,检索时用「中文分词 BM25 + Embedding 向量召回」混合排序,再可选 Rerank 精排,最后通过 HTTP 提供给机器人调用。
English: Local RAG long-term memory for DeepSeek Harness (DSH) QQ bots. Stores chat messages, facts and notes in SQLite, retrieves with Chinese-friendly BM25 plus optional embedding vectors and rerank, and serves everything over a local HTTP API. No native build step; works on desktop and Android.
- 数据全在本地,不上传聊天内容
- 电脑 / 手机(Android + Node)通用:只用 Node 内置 node:sqlite,无原生编译依赖
- 没配 Embedding / Rerank 时自动降级为纯 BM25,插件仍然可用
安装
从 npm(发布后):
展开完整文档(README 剩余 1 节)
dsh-rag-memory
给 QQ 机器人用的本地 RAG 长期记忆插件:把群聊/私聊消息、事实、摘要存进 SQLite,检索时用「中文分词 BM25 + Embedding 向量召回」混合排序,再可选 Rerank 精排,最后通过 HTTP 提供给机器人调用。
English: Local RAG long-term memory for DeepSeek Harness (DSH) QQ bots. Stores chat messages, facts and notes in SQLite, retrieves with Chinese-friendly BM25 plus optional embedding vectors and rerank, and serves everything over a local HTTP API. No native build step; works on desktop and Android.
- 数据全在本地,不上传聊天内容
- 电脑 / 手机(Android + Node)通用:只用 Node 内置 node:sqlite,无原生编译依赖
- 没配 Embedding / Rerank 时自动降级为纯 BM25,插件仍然可用
安装
从 npm(发布后):
dsh plugin --profile web add dsh-rag-memory
本地目录:
dsh plugin --profile web add ./dsh-rag-memory
装完接口在 http://127.0.0.1:39001/rag-memory(独立端口,不经过 DSH Web 的登录认证)。装上即生效,不用重启引擎。
配置
在 cordis.patch.yml 的 config 里写:
config:
dbPath: '' # 空 = $DSH_HOME/dsh-rag-memory/memory.db token: '' # 非空时,请求需带 x-memory-token 头 defaultK: 8 embedding: enabled: true baseURL: 'https://api.siliconflow.cn/v1' apiKey: 'sk-...' model: 'BAAI/bge-m3' rerank: enabled: true baseURL: 'https://api.siliconflow.cn/v1' apiKey: 'sk-...' model: 'BAAI/bge-reranker-v2-m3'
embedding / rerank 都兼容 OpenAI 风格的 /v1/embeddings 与 /v1/rerank(硅基流动、Jina、Cohere 等)。
API Key 会明文存在配置文件里,请勿把配置提交到公开仓库。
HTTP 接口
前缀:/rag-memory,插件自起独立 HTTP 服务(默认 http://127.0.0.1:39001,端口被占会自动 +1 到 39020)。
| 方法 | 路径 | 作用 |
| GET | /health | 健康检查与能力状态 |
| GET | /stats | 各 scope 条数、向量条数 |
| POST | /ingest | 批量写入消息 |
| POST | /search | 混合检索 |
| POST | /context | 检索并拼好可注入的文本块 |
| POST | /save | 直接存一条事实/画像/笔记 |
| GET | /profile?scope= | 列出事实类记忆 |
| POST | /delete | 按 id 删除 |
| POST | /clear | 按 scope 清空(需 confirm: true) |
写入
POST /ingest
{
"scope": "group:123456",
"items": [
{ "text": "小明说他下周三去杭州出差", "speaker": "小明", "ts": 1700000000000 }, { "text": "群里在讨论周末去爬山", "kind": "message" } ] }
scope 必填,建议用 group:<群号> / private:<QQ号>;kind 可为 message(默认)、fact、profile、note、event。
检索
POST /search
{ "scope": "group:123456", "query": "小明什么时候去杭州", "k": 8 }
返回按相关度排序的条目,sources 标明命中的通道(bm25 / vector / rerank),degraded 列出降级原因。
直接拿注入文本
POST /context
{ "scope": "group:123456", "query": "小明出差", "k": 6, "maxChars": 2000 }
返回的 context 形如:
【相关记忆 · 共 3 条】
1. 2024-01-02 10:30 小明:下周三去杭州出差
2. ...
直接拼进机器人这轮的 system prompt 即可。
机器人接入示例(Node)
const MEMORY = 'http://127.0.0.1:39001/rag-memory'
const scope = group:${groupId}
// 收到消息:先入库(不阻塞回复)
fetch(${MEMORY}/ingest, {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({ scope, items: [{ text, speaker: nickname, ts: Date.now() }] }),
}).catch(() => {})
// 调模型前:取相关记忆 const res = await fetch(${MEMORY}/context, { method: 'POST',
headers: { 'content-type': 'application/json' },js
body: JSON.stringify({ scope, query: userText, k: 8 }),
})
const { context } = await res.json()
const system = context ? ${basePrompt}\n\n${context} : basePrompt
不配 token 时直接调用即可;配了就在请求头加 x-memory-token。
发布到插件市场
DSH 的「插件 → 发现」是索引源机制,上架实质是「发布 npm 包 + 提交到市场索引」。
1. 发布 npm(先确认 package.json 的 author / repository 换成你的):
sh
npm pack --dry-run # 检查包内容
npm publish
2. 建 GitHub 仓库,推源码(README、LICENSE 已就绪)
3. 到 dsh.so 提交插件 填 npm 包名或仓库地址,自动校验 + 安全扫描后生成市场条目
4. 用户侧:DSH →「插件」→「发现」→「添加索引源」→ 填对应市场地址(如 https://cdn.dsh.so/market/index.json)
其他可选市场:AAAMECHANIC/dsh-plugin-market、DeepSeekBox。
数据与备份
- 默认数据库:$DSH_HOME/dsh-rag-memory/memory.db(WAL 模式)
- 备份:直接复制整个目录,或 sqlite3 memory.db "VACUUM INTO 'backup.db'"
- 删除 scope 前建议先 GET /stats 确认条数预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Yslehui/dsh-rag-memory
把群聊消息存进本地库,按语义检索后供机器人调用
相关插件 · 平台集成
智能体工程课walkinglabs/learn-harness-engineering
一门项目制课程,教你搭建环境、管理状态、做验证、加控制机制,让 AI 编程智能体稳定干活。
★ 21,155已汉化DSH
71.7
视频翻译配音liuzhao1225/YouDub-webui
开源视频本地化工作台:导入视频,识别、翻译并逐句克隆原声,生成字幕和配音成片。
★ 5,792已汉化Cordis
71.4
失败经验库Ikalus1988/MisakaNet
📚 零依赖、由 git 支撑的微课程库,让 AI 智能体异步分享并检索经过验证的调试经验。| https://misakanet.org
★ 550已汉化DSH
71.2
IM 机器人接入xmanrui/dsh-im
让 DeepSeek Harness 触手可及 Connecting DeepSeek Harness
★ 3,170已汉化DeepSeek 客户端
71
桌面智能体工作区freestylefly/wesight
WeSight 是开源桌面控制台,面向本地 AI 智能体。它帮你安装或复用 Claude…
★ 933已汉化MCP
71
中国平台研究引擎Jesseovo/last30days-skill-cn
给 AI Agent 的中文互联网研究 Skill:检索 8 大平台最近 30…
★ 2,041已汉化DSH
70.7
这是你的仓库?认领条目