DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

2132774831 /

2132774831/dsh-nodal-memory

Verified

DeepSeek Harness 纯本地长期记忆 v2:SQLite + 中文二元组检索 + 记忆关系图 + 可选语义检索。也能当独立软件双击运行。

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@e7fc1764

dsh-local-memory v2

DeepSeek Harness 的纯本地长期记忆 —— 跨对话、跨项目。数据只存你本机,不联网也能用。

v2 是彻底重写:存储换成 SQLite(JSON 兜底)、中文检索改用二元组、新增记忆关系图、 矛盾粗筛、可选的语义检索。v1 已停更,旧版见 dsh-memory-plugin。


它解决什么问题

AI 每开新对话都从零开始:不记得你的偏好,不记得上次定下的约定,也不记得踩过的坑。

这个插件让"值得长期保留的结论"落盘,下次自动带回来。

两种用法,任选

形态 怎么用 适合
DSH 插件 dsh plugin --profile desktop add <包名或路径> 装了 DeepSeek Harness 的人:对话时自动回忆/自动存
独立软件(压缩包) 解压后双击 start.cmd(或双击安装时创建的桌面快捷方式) 任何人:不需要 DSH,浏览器里管理记忆、看关系图

两者共用同一份数据格式,也可以同时用。


怎么打开界面

形态 打开方式
DSH 插件 DSH 网页端 → 设置 → 左侧分区 「本地记忆」(settings.section,order 28)。里面只有两件轻事:记忆列表 / 补标,外加一个 「打开完整记忆界面」 按钮
独立软件 双击仓库里的 启动记忆软件.cmd(压缩包版本里叫 start.cmd);或 node app/server.mjs --open。端口由系统分配,实际地址写在 ~/.dsh/local-memory/instance.json

一套界面,两个入口

关系图、卡片视图、右键看全文、联想、直觉页、设置页——只维护一份,都在独立软件里。 插件不再重复实现这些:点「打开完整记忆界面」时,宿主的 /dsh-local-memory/open 会

  1. 看独立软件是否在跑(读状态文件 + 探端口)
  2. 没在跑就用 DSH 自带的 Node(ELECTRON_RUN_AS_NODE=1,用户不需要装 Node)把它拉起来
  3. 再 302 跳过去

好处很直接:

以前 现在
界面实现 两套,插件那套永远落后 一套
双击快捷方式 / 插件拉起 可能起两个进程写同一个库 单实例锁,第二个自动复用
DSH 退出后 服务一直挂着 闲置 10 分钟自动关闭

数据只有一份:~/.dsh/dsh-local-memory.db,插件和独立软件共用。 上游进程(DSH)消失后,服务会在闲置 10 分钟后自己收掉;期间有请求(比如页面开着轮询)就不收。


核心机制

检索:中文也能搜得准

SQLite FTS5 默认分词器对中文几乎不可用(整句当一个词)。v2 在写入时额外生成二元组切分列 (我喜欢吃牛肉面 → 我喜 喜欢 欢吃 吃牛 牛肉 肉面),于是"北京""插件""记忆"这类两字词都能命中, 而"北京市"不会乱命中"北京"。

排序公式(每个因子都能单独调):

score = relevance × importanceFactor × decay × usageBoost
  • decay 按类别给不同半衰期:工作 365 天 / 偏好 730 天 / 情感 60 天
  • usageBoost 用对数压制,防止一条高频记忆永久霸榜
  • 陈旧记忆仍可搜到,只是往后排(精确命中时不会被丢弃,并标记时效警告)

类别自动推断

写入时按内容粗分 工作 / 偏好 / 情感(纯本地词表规则,证据不足就留"未分类")。 类别不是装饰——它决定上面那个半衰期。误判可以在补标页改。

记忆关系图(不需要任何 API key)

五种确定性关系自动连线:

关系 怎么来的 可信度
共现 两条记忆在同一次检索里同时命中 最强(使用痕迹)
共享标签 标签交集,按 idf 加权 强
语义相近 向量余弦 ≥ 阈值,每点最多留 3 条 中(需配 embedding)
同项目 同一个 project 字段 弱
时间相邻 创建时间接近(主要给布局用) 最弱

看得出来的东西:扎堆(力导向聚簇)、孤立(红圈:写了但没人用过)、 疑似冲突(黄圈:说同一件事但关键值不同)。

直觉页

  • 该想起的:重要、搁了很久、几乎没被用过的那几条
  • 疑似冲突:只给候选 + 说清理由,绝不自动改数据

安装

作为 DSH 插件

# 从本地目录
dsh plugin --profile desktop add <本仓库绝对路径>

# 或从 tarball
dsh plugin --profile desktop add ./dsh-local-memory-2.0.0.tgz

装完必须重启 DeepSeek Harness——插件是在宿主启动时装配的,运行中的实例不会热加载新装的包。重启后打开 设置 → 本地记忆。

作为独立软件

node app/server.mjs --open     # 或双击 启动记忆软件.cmd(压缩包里是 start.cmd)

首次启动会自动建库;如果你以前用 v1,可以用迁移脚本导入:

node scripts/migrate-v1.mjs --from ~/.dsh/dsh-local-memory.json

数据在哪、隐私如何

项 位置
插件记忆库 ~/.dsh/ 下的 sqlite 库
插件配置 ~/.dsh/ 下的 dsh-local-memory.v2-config.json
独立软件数据 ~/.dsh/dsh-local-memory.db —— 和插件共用同一个库(不是 app/data 了,那个是旧位置)

默认完全不联网:不调大模型、不需要 API key、不用起服务。

唯一的外网依赖是可选的语义检索(embedding):关掉时一切照常,只是没有"换个说法也能搜到"。 开启后发送的内容只有记忆正文和查询词,配的是你自己填的 OpenAI 兼容端点。


可选:语义检索

设置页填 OpenAI 兼容端点即可(硅基流动、智谱、Jina、OpenAI、千问百炼都兼容):

项 例
端点 https://api.siliconflow.cn/v1
模型 BAAI/bge-m3

⚠️ DeepSeek 官方没有 /embeddings 接口,它的 key 用在这里无效。

配好后点「给历史记忆补向量」。失败会自动降级回关键词检索,不影响使用。


与 v1 的差别

v1 v2
存储 单个 JSON 文件 SQLite(JSON 兜底)
中文检索 子串匹配 二元组 + FTS5
时间感知 一刀切 按类别差异化半衰期
关系图 无 五种关系 + 双视图 + 冲突标记
独立软件 无 有
语义检索 无 可选

v1 的导入导出(Markdown / Kun / Hermes)v2 暂时没有,需要的话先用 v1 导出,再用迁移脚本导入。


开发

node --test test/          # 全部测试(Windows 上请显式列文件,见 docs)
npm pack --dry-run         # 发布前必跑:确认不含数据/密钥

目录:

src/core/     零宿主依赖的内核(存储/检索/时间/关系图/分类)
src/host/     插件宿主层(工具、路由、系统提示词、配置)
src/client/   DSH 设置页前端
app/          独立软件(服务器 + 纯前端,无构建步骤)
docs/         设计文档、发布手册、独立软件说明

内核不许 import 宿主 API —— 有测试守着这条,将来独立软件化不用重写。

许可

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit e7fc176417da

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout