跨对话记住偏好与约定,随时翻看编辑
30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add 2132774831/dsh-memory-plugin该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 16 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 6 处,展示前 6 条)
- 发起网络请求lib/client.js:255
return fetch(url, { headers: { Accept: 'application/json' } }) - 发起网络请求lib/client.js:267
return fetch(url, { - 发起网络请求lib/client.js:330
fetch(EXPORT_API + query, { headers: { Accept: 'text/markdown' } }) - 发起网络请求lib/client.js:357
fetch(IMPORT_API, { - 发起网络请求lib/client.js:748
return fetch(STATE_API + '?limit=1', { headers: { Accept: 'application/json' } }) - 发起网络请求lib/client.js:820
fetch(MEMORY_API, {
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
这是我为 DSH (DeepSeek Harness) 制作的一款插件,可以进行跨对话记忆支持手动导入
README
由 DeepSeek 最新模型翻译生成dsh-local-memory
DSH 的纯本地长期记忆 —— 跨对话、跨项目,数据只存在你本机的一个 JSON 文件里。
不联网、不调用任何大模型、不需要 API key、不用 Docker、不用起服务。装完就能用。
它解决什么问题
AI 每次开新对话都从零开始:不记得你的偏好,不记得上个会话定下的约定,也不记得上次踩过的坑。
这个插件给 DSH 配一个记忆本:
- 对话里确认了值得长期保留的结论 → 写进记忆本;
- 下次新对话,相关记忆会自动出现在上下文里(或模型主动检索);
- 你可以在设置页里直接翻看、新增、编辑、删除这些记忆。
为什么是「纯本地」
市面上更"聪明"的记忆方案(比如 Hindsight)通常是一个独立服务 + 一个大模型:它用大模型"理解"你的话、抽取要点,再把记忆存进数据库。
代价是:你得跑一个服务、配一把 API key,而且"理解"这一步要把内容发到大模型厂商的云上。
这个插件走了另一条路:不做语义理解,只做关键词匹配。
展开完整文档(README 剩余 1 节)
dsh-local-memory
DSH 的纯本地长期记忆 —— 跨对话、跨项目,数据只存在你本机的一个 JSON 文件里。
不联网、不调用任何大模型、不需要 API key、不用 Docker、不用起服务。装完就能用。
它解决什么问题
AI 每次开新对话都从零开始:不记得你的偏好,不记得上个会话定下的约定,也不记得上次踩过的坑。
这个插件给 DSH 配一个记忆本:
- 对话里确认了值得长期保留的结论 → 写进记忆本;
- 下次新对话,相关记忆会自动出现在上下文里(或模型主动检索);
- 你可以在设置页里直接翻看、新增、编辑、删除这些记忆。
为什么是「纯本地」
市面上更"聪明"的记忆方案(比如 Hindsight)通常是一个独立服务 + 一个大模型:它用大模型"理解"你的话、抽取要点,再把记忆存进数据库。
代价是:你得跑一个服务、配一把 API key,而且"理解"这一步要把内容发到大模型厂商的云上。
这个插件走了另一条路:不做语义理解,只做关键词匹配。
| | 纯本地(本插件) | 服务型方案(如 Hindsight) |
| 单独跑服务 | 不用 | 要 |
| 大模型 key | 不用 | 要 |
| 联网 | 不用 | 要(抽取那一步) |
| 数据在哪 | 你本机一个 JSON 文件 | 服务端数据库 |
| 检索方式 | 关键词匹配(中文按二字组合) | 语义检索、图谱推理 |
| 装完即用 | 是 | 否 |
够用吗? 对"记住偏好 / 约定 / 决策 / 坑"这类需求,够用。中文按二字组合切词(「鉴权设计」→ 鉴权 / 权设 / 设计),比单字精确得多,又不需要分词器。
记忆存在哪
~/.dsh/dsh-local-memory.json
一个纯文本 JSON,可以直接用编辑器打开、改、备份、同步:
{
"version": 1,
"memories": [
{
"id": "m-abc123-xy",
"text": "鉴权用的是轮询而不是 webhook,因为要避免公网回调",
"tags": ["topic:auth"],
"project": "acme-payments-api",
"createdAt": 1767225600000,
"updatedAt": 1767225600000,
"hits": 3
}
]
}
插件配置在 ~/.dsh/dsh-local-memory-config.json。
四个工具
| 工具 | 干什么 |
| memory_save | 记住一条结论(文本重复时不新增,只合并标签并刷新时间) |
| memory_search | 按关键词检索(默认搜全部记忆,不论哪个对话、哪个项目写的) |
| memory_list | 列出最近的记忆 |
| memory_forget | 删除一条记忆(按 id) |
自动回忆
每次模型回答前,插件拿你这一轮的输入去记忆本里做一次关键词检索,命中的条目会作为 一条附加上下文注入。纯本地、微秒级,没有超时问题。
它不会硬塞无关记忆:查询为空、太短(默认 < 8 字)、或完全没命中时,就什么都不注入。
设置页
设置 → 本地记忆,分三块:
记忆(查看 / 新增 / 编辑 / 删除)
- 关键词筛选框
- 「+ 新增记忆」表单
- 每条记忆显示正文、标签、项目、时间、被用过几次、id
- 每条都能编辑、删除(删除有二次确认)
存储
- 记忆文件路径、配置文件路径
- 条数 / 标签数 / 项目数 / 文件大小
- 已用过的标签与项目一览
设置
- 启用本地记忆(总开关)
- 每轮自动回忆 + 最多注入几条 + 输入短于此不触发
- 写入时自动打项目标签
- 删除对话前提醒整理记忆(控制会话菜单里是否出现「整理记忆…」)
- 把记忆库说明写进系统提示词
- 记忆条数上限
- 存储文件路径
检索权重
- 五项权重滑杆,改了立刻生效;「权重恢复默认」一键还原(见下面的配置项)
设置保存即时生效,不用重启。
记忆导入 / 导出(Markdown)
设置页的「记忆」区有两个按钮:
- 导出 Markdown —— 把记忆导成 dsh-local-memory-<日期>.md 下载下来;
- 导入 Markdown —— 选一个 .md 文件导进来。
格式是「人也能读、机器也能解析」的,本插件导出的长这样:
本地记忆库导出
- 导出时间:2026-10-06T12:00:00.000Z
- 条数:1
- 来源:dsh-local-memory@1.1.1
- 标签:topic:auth, pref
- 项目:acme-payments-api
- 创建:2026-10-05T20:12:33.368Z
- 更新:2026-10-05T20:12:33.368Z
鉴权用的是轮询而不是 webhook,因为要避免公网回调
导入是宽容的,所以能接住别的来源:
| 来源 | 能否导入 |
| 本插件在另一台电脑上的导出 | ✅ 原样往返 |
| 别的 Agent / 笔记工具导出的 Markdown(## 分节) | ✅ 每节当一条记忆 |
| 一堆 --- 分隔的纯文本 | ✅ |
| 没有任何结构的一整篇 | ✅ 整篇当一条 |
导入是幂等的:正文归一化后相同的视为同一条 —— 已存在就合并标签、补项目、刷新时间,不会产生重复。所以同一个文件导两次不会翻倍。
删除对话前整理记忆
设置里打开「删除对话前提醒整理记忆」后,会话(对话)的「...」菜单里会多出一行「整理记忆…」,点开是一个弹窗:把这段对话里值得长期保留的结论写下来、存进记忆库,然后再去归档/删除这个对话,就不会把有价值的东西一起丢掉了。
一个诚实的限制:插件槽位是「追加」语义,拦不住系统原生的删除动作,也没法自动读整段对话去总结(那需要调用大模型,而这个插件的卖点恰恰是不调模型)。
所以这里做成「会话菜单里的顺手入口 + 弹窗快记」,而不是自动拦截删除。
想让它更自动,只能引入大模型,那就不是纯本地插件了。
项目标签是怎么来的
写入记忆时,插件按会话工作目录认一下项目名,作为标签存下来(方便按项目筛选, 不影响默认检索范围——默认始终搜全部记忆):
- 逐级向上找有可读 config 的 .git(worktree 的 .git 文件指针也认;空 .git 目录不算);
- 家目录是硬边界,绝不越过;
- 有 remote 就用 owner/repo(跨 clone 稳定),否则用目录名。
配置项
~/.dsh/dsh-local-memory-config.json
| 字段 | 默认 | 说明 |
| enabled | true | 总开关 |
| storeFile | ~/.dsh/dsh-local-memory.json | 记忆文件路径 |
| maxMemories | 5000 | 条数上限,超出丢最旧的(10–100000) |
| autoRecall | true | 每轮自动回忆 |
| autoRecallMaxItems | 5 | 最多注入几条(1–20) |
| autoRecallMinChars | 8 | 输入短于此不触发(0–500) |
| autoTagProject | true | 写入时自动打项目标签 |
| organizeBeforeDelete | false | 会话菜单里是否出现「整理记忆…」入口 |
| weights | 见下 | 检索评分权重 |
| injectBrief | true | 是否把记忆库说明写进系统提示词 |
weights(检索权重) —— 关键词打分的各项分值,设置页有滑杆,也能直接改文件:
| 字段 | 默认 | 含义 |
| textMatch | 2 | 正文命中一个查询词项的基准分 |
| tagMatch | 1 | 只在标签里命中的基准分 |
| wholeQuery | 5 | 整条查询原样出现在正文里的额外分 |
| exactTag | 3 | 标签与整条查询完全相同时的额外分 |
| longTermBonus | 1.5 | 长度 ≥3 的词项的权重倍率 |
调大某一项 = 这类命中更有分量。改完点「保存设置」立即生效。
安装
从 GitHub 直接装(推荐,不用手动下载):
dsh plugin --profile desktop add github:2132774831/dsh-memory-plugin
把 desktop 换成你自己的 profile 名(用 dsh plugin list 看)。
或者用本地路径装(已经克隆/解压到本地时):
dsh plugin --profile desktop add /绝对路径/dsh-local-memory
⚠️ 路径必须用绝对路径。用相对路径(如 ./dsh-local-memory)会被解析成相对 profile 目录,装出来是个指不到东西的死链接。
装完 重启 dsh web,设置页会出现「本地记忆」。更多细节见 INSTALL.md(含验证与排错)。
开发与测试
node test/smoke-store.mjs # 存储与检索:切词、判重、CRUD、容错
node test/smoke-store.mjs # 存储与检索:切词、判重、CRUD、权重、导入导出
node test/smoke-projects.mjs # 项目识别:.git 查找、remote 归一化、边界
node test/smoke-host.mjs # Host 半侧:工具、自动回忆、路由(含 /export /import)
node test/smoke-client.mjs # 设置页 bundle 契约(三个槽位)
npm test # 全部(77 项断言)
测试全部离线:临时目录 + 假 ctx + 假 DOM,不碰真实记忆文件。
环境要求
| 项 | 要求 |
| Node | >= 20 |
| 平台 | DSH web profile |
| 运行时依赖 | 零 |
| 外部服务 | 无 |
卸载
dsh plugin --profile desktop remove dsh-local-memory
记忆文件不会被删 —— 想清掉就自己删 ~/.dsh/dsh-local-memory.json。
许可
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
2132774831/dsh-memory-plugin
跨对话记住偏好与约定,随时翻看编辑
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,487已汉化DSH
73
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,894已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,379已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
DS Bot 是一个基于 DeepSeek Harness简称 dsh的 bot 插件,插件将 dsh 改造为 bot…
★ 5,084已汉化DSH
71.1
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,778已汉化DSH
71.1
这是你的仓库?认领条目