DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

axuan-1314 /

axuan-1314/dsh-keepsake

Verified

DSH 跨会话记忆插件:本地 markdown 落盘、自动提取+注入、零依赖 + 管理面板。Local-first cross-session memory plugin for DSH (DeepSeek Harness).

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

dsh-keepsake

CI License: MIT

English | 中文

一个给 DSH(DeepSeek Harness)用的记忆插件。你跟它聊过的事,它自己记下来,下次开新对话不用再把背景讲一遍。

记忆管理面板

它解决什么问题

DSH 每开一个新会话都是从零开始。上周定的接口口径、这个项目的目录约定、你说过一次就不想再说第二次的偏好——都得重新交代。

这个插件在后台做三件事:

  • 记:每轮对话结束,它判断这轮有没有值得记的事,有就写成本地 Markdown 文件。
  • 带:之后每轮对话自动把相关记忆塞回上下文,模型就"记得"你了。
  • 管:附一个本地面板,记了什么、删了什么、人设怎么设,都能看能改。

记忆存在 ~/.dsh/memory/ 下的普通 Markdown 文件里,你可以用任何编辑器打开、改、丢进 git。不上传任何地方。

安装

dsh plugin --profile web add "https://github.com/axuan-1314/dsh-keepsake/archive/refs/tags/v0.7.1.tar.gz"

--profile 换成 headless 或 desktop 也行。零运行时依赖,不需要 npm install。

想装含未发布内容的版本,把 tag 换成 heads/main:.../archive/refs/heads/main.tar.gz。

装完开个新会话正常聊几轮有实质内容的话,然后看 ~/.dsh/memory/ 下有没有出现新的 .md 文件。详细步骤和升级方式见 安装与升级。

面板入口在 DSH 设置页的「记忆」区块。

最近改了什么

v0.8.0 给召回加了第二条腿:

  • 词法混合召回(默认关):召回原先只有语义一条腿,对错误码、命令名、专有名词这类精确标识符天生弱。现在多了一条进程内 BM25 关键词通道,与语义分加权融合。启用 = 把 recallLexEnabled 置 true(另外两键保持默认);它不依赖嵌入端点,端点没配也能只开词法单跑。
  • 两个新观测计数:/state.recall 新增 recallLexOnly(词法捞回且整块无语义命中的条数)和 recallLexDegraded(词法自身异常、退回纯语义的轮次数),词法到底有没有干活一眼看得出。

v0.7.1 是一批较大的功能补充和修复:

  • 纠错闭环:以前记忆记错了只能等下次提取碰巧覆盖,常留下两条互相矛盾的事实。现在可以说"这条记错了,正确的是 X"——对话里用 /memory fix,或在面板检索后点「纠正这条」。改动有快照,能回滚。
  • /memory 命令:关键词检索记忆,不用开面板。
  • 记忆整理:面板给出重复条目、久未更新的条目、索引与磁盘对不上的地方;一键修索引只动索引行,不删条目。
  • 项目知识页:把一个项目的记忆压缩成 5 页稳定视图(组件地图、核心概念、约定、关键决策、进行中),手动生成,不自动烧钱。
  • 空闲整理(默认关):空闲时让模型合并重复、清理过期的项目记忆。
  • 面板看得清了:面板底色改自持实色。此前壁纸插件把背景改成半透明白时,白字压在浅灰上实测只有 3.10:1,卡片和正文同色没有边界。
  • 纠错不再"改一半":纠错写入原先每次都退化成"追加",盘上留下新旧两条矛盾事实。已修。

完整历史见 CHANGELOG.md;已知限制和有意不做的功能见 ROADMAP.md。

功能一览

功能 默认 一句话
自动提取 + 注入 开 聊完自动记,下轮自动带上
记忆管理面板 — 浏览 / 编辑 / 删除 / 导入导出 / 人设 / 回收站 / 快照
内容脱敏 开 密钥、令牌、内网地址不进记忆和提示词
运行时记忆层 关 把条目编译成定长画像,每轮常驻,不用等模型主动查
语义召回 关 向量语义 + BM25 关键词混合检索,带出最相关的几条(词法通道不依赖嵌入端点)
项目知识页 手动 一个项目压成 5 页视图
空闲整理 关 空闲时合并重复、清理过期
纠错闭环 — "这条错了"有一条正式通道,可回滚

每一项的细节——怎么触发、失败会怎样、怎么关掉——见 功能详解。

配置

大部分人在面板里点点就够了,不用碰配置文件。需要改 cordis.patch.yml 的场合主要是三件:指定提取用哪个模型、调注入预算、配语义召回端点。

几个常改的键:

键 默认 说明
provider / model 跟随会话路由 提取用的模型,成对出现
injectMaxChars 30000 注入字符预算
injectMaxTokens 24000 注入 token 预算(0 = 关闭)
redactionEnabled true 脱敏总开关
recallEnabled false 语义召回开关
recallLexEnabled false 词法混合召回(BM25 关键词通道),不依赖嵌入端点
recallLexTopM / recallLexWeight 10 / 0.4 词法候选条数上限(0 = 关掉词法通道)/ 融合权重([0,1],0 = 纯语义)

启用词法混合召回 = 把 recallLexEnabled 置 true,另外两键保持默认即可(recallLexTopM 设 0 同样等于关掉词法通道)。

全部配置项见 配置参考。

数据在哪

~/.dsh/memory/
├── global/                    # 全局记忆(跨对话)
│   ├── persona.md             # 人设
│   └── work-profile/ ...      # 四个分类,每类一个索引 + 若干条目
├── projects/<项目>/memory/    # 项目记忆(按工作区隔离)
├── runtime/                   # 运行时记忆产物(可删可重建)
├── pages/                     # 知识页(可删可重建)
├── backups/                   # 自动备份
└── trash/                     # 回收站

真源只有 *.md 和 MEMORY.md;backups/、trash/、runtime/、pages/ 都是副本或派生视图,删了不损失记忆(只失去回滚能力)。

完整布局与文件格式见 FORMAT.md。

隐私:所有数据留在本机。提取调用走你当前会话的模型通道,没有另外的上传路径。API 和面板只监听 loopback。失败日志只记错误摘要,不含会话内容。

文档

文档 内容
安装与升级 安装、升级、验证生效、卸载与回滚
功能详解 每项功能的触发条件、边界行为、开关
配置参考 全部配置键与默认值
运维与 API 观测字段、REST 端点、排障 FAQ
FORMAT.md 记忆文件格式、目录约定、存储格式版本
RUNTIME-FORMAT.md 运行时记忆层格式
CHANGELOG.md 版本变更记录
ROADMAP.md 设计原则、已知限制、有意不做
CONTRIBUTING.md 开发环境与 PR 约定

开发

npm test        # node --test,全部单元测试
npm run check   # lib/*.js 语法快检

零依赖,clone 下来直接能跑,不需要 install。

相关项目

同作者的另一个 DSH 插件,互不依赖:dsh-usage-stats(使用统计:Token 热力图、趋势、模型占比)。

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 8828e85690fc

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