dsh-memory-layer:DSH 本机记忆层

前言

在 DeepSeek Harness(DSH)里做智能体或长期协作,常见问题是:偏好、决定、踩过的坑只活在当前会话里,换一个新线程要从头交代。社区里也有「记忆平台」类方案,往往要额外跑服务、接嵌入或同步链路。若你只想在本机持久化少量可解释的记忆,并在合适的时机自动带进上下文,dsh-memory-layer 走的就是这条更轻的路。

下面按安装、存储与召回、日常操作说明这个插件能做什么、不能做什么。

这是什么

维护者 K-W7,分类为记忆;当前 README 标注版本 v0.11.3,MIT 许可证,要求 DSH >=0.2.0-rc.2 <0.3.0-0、Node >=22.19.0。

一句话定位:只做记忆,不做记忆平台。

它不依赖外置服务、向量检索、嵌入模型、知识图谱、云端同步或 Web UI;核心是 SQLite 单文件 加一套 确定性 的「什么时候该想起什么」规则。数据落在本机,库文件路径为 <DSH_BIOMEMORY_DIR || ~/.dsh/biomemory>/biomemory.db;拷走该文件即可迁移。

四层结构概览

存储层

记忆落在 SQLite 中,主要字段包括:

字段 含义
realm 隔离维度:user 或 project:<工作目录>
mtype 类型:workflow / error / decision / fact
trigger 触发信号串
mkey 同键覆盖用的主题键
text 正文

另有 chains(工作流链)、trigger_counts(触发计数,用于工作流升级)等辅助结构。v0.11 起区分 被注入(last_accessed)与 真实使用(last_used、hits),避免清理规则被「每次看到就刷新」误触发。

召回层

不等模型自发联想,而是根据当前会话信号注入记忆:

  • 信号来源:会话工作目录(session.cwd)与最近 12 次工具调用的名字、参数(路径、命令、错误代号等)。
  • 触发串形态:file:<文件名>、tool:<工具名>、err:<错误代号>。
  • 命中后按 workflow > error > decision > fact 排序注入;工作流链整链带入。
  • 注入预算:每次最多 8 条、最多 1200 字符;无命中则不注入。
  • 偏好/决定通道(v0.11):对缺少 trigger 的偏好类记忆单独给小预算(默认 ≤3 条 / ≤400 字符)。
  • 冷启动兜底:库较小时可在零命中时回落注入最近几条;库变大后让位给触发召回。

真实使用仅计:memory action=query 关键词命中,或显式 memory action=used fp=<指纹>。

清理层

/memory compact 按五条可解释规则处理(支持 dryRun 预览),淘汰写入 compact.log。fact 长期未真实使用可进墓碑;error 与 decision 不自动删除;pin 条目豁免。remove 为墓碑可 restore,purge 为物理删除且不可逆。

适配层

同一触发串出现超过 3 次,相关记忆可升级为 workflow 并按时间顺序成链——记录的是「上次你怎么做的」,不做因果推断。

安装与启用

推荐在 DSH 桌面版安装:

  1. 打开 DSH 桌面版 → 左侧 插件 → 加插件;
  2. 包名填 dsh-memory-layer,点 安装(安装后自动启用)。

命令行等价(把 desktop 换成你的 profile 名):

dsh plugin --profile desktop add dsh-memory-layer

本地开发可 link:

dsh plugin --profile desktop add link:./dsh-memory-layer

安装完成后重启 DSH 生效;开启 HMR 的 profile 可热挂载。

典型用法

工具 memory

action 说明
add 写入记忆(text 必填)
query 关键词查询;命中记一次真实使用
used 标记本条刚被用上
list / update 浏览 / 修改
remove 墓碑(可 restore)
purge 物理删除(不可逆)
restore / pin / unpin 回滚 / 锁定 / 解锁
compact 按规则清理
dump 导出人类可读 Markdown

另有 memory_recall,用于「你还记得…吗」式显式召回。

用户偏好、决定、纠正类重要记忆可走 DSH 官方审批;审批服务不可用时默认拒绝(approvalFallback=deny,可配置为 auto)。

命令 /memory

常用子命令包括:

/memory list | query <词> | add <内容> | edit <fp> <新内容> | entries [词]
/memory remove <fp> | purge <fp> | undo <fp> | unarchive <fp> | used <fp>
/memory pin <fp> | unpin <fp>
/memory stats | why <fp> | preview
/memory compact [--dry-run] | dump | help
  • stats:活跃条数、类型与 realm 分布、trigger 覆盖率 等。
  • why <fp>:解释某条记忆(不)会被注入的原因。
  • preview:预览当前轮次若组装提示词会注入什么。

写入时若正文含「今天 / 昨天」等相对时间但无绝对日期锚点,成功返回会附带提醒,写入仍会成功。

配置

配置文件:<DSH_MEMORY_ROOT || ~/.dsh/memory>/biomemory.config.json(v0.11 起配置与导出在 memory/ 目录,库在 biomemory/)。

部分可覆盖项示例:

键 默认 说明
decisionChannelMax 3 偏好/决定通道每轮最多条数
decisionChannelChars 400 偏好/决定通道字符预算
coldStartFallbackMax 3 冷启动兜底条数
injectSnapshot / injectRecall / injectSummary true 宿主注入开关;全置 false 则只存只查、不进 prompt
approvalFallback deny 审批不可用时的策略

三个 inject* 在插件 apply 时读取,修改后需重启宿主或重载插件。

环境变量:DSH_BIOMEMORY_DIR(数据目录)、DSH_MEMORY_ROOT(Markdown 备份/日志目录)。宿主开启 webServer 时可能注册本机 HTTP 端点 /biomemory/api,默认仅本机来源。

适用场景与注意

适合谁: 希望在 DSH 会话间保留偏好、决定、错误处理习惯和工作流重复模式,且要求检索可解释、数据不出本机的开发者。

刻意不做的事: 向量/嵌入检索、自动「反思」、跨机同步、删除即销毁(常规删除为墓碑)。

安全与权限: 插件以当前 DSH 进程权限运行,可读写本机 SQLite 与配置目录。安装前建议查看 GitHub 仓库 源码与 MIT 许可证;误存敏感信息时可用 purge,但需知悉其不可逆且写库路径不产生备份副本,事前可用 dump 或自行拷贝数据库。

结尾

dsh-memory-layer 把记忆收成单文件 SQLite 加触发式召回,没有额外要跑的服务;换会话时由规则决定何时注入,而不是把整库塞进 prompt。

DSH 生态奉行「一切皆插件」;SkillHub 为社区目录站点,与 DeepSeek / 幻方无官方从属关系。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye