SoloPup Memory: A Source-Provenance DSH Textual Memory Plugin

前言

在 DeepSeek Harness(DSH)里做多轮对话或跨会话开发时,模型上下文会滚动、压缩,用户明确说过的偏好、项目决定和可查证线索很容易在后续轮次里丢失。常见做法是手写 MEMORY.md 或靠系统提示堆叠,但这类做法往往缺少「原话归属」、项目边界和「旧约定被新约定取代」的可审计关系,助手也容易把猜测写成已确认事实。

SoloPup Memory(npm 包名 solopup-memory)是 OakcoderX 维护的记忆类 DSH 插件,公开测试版、MIT 许可。它把用户明确表达的长期偏好、项目决定、可查证线索和暂定信念保存下来,并在后续对话中按项目与适用条件检索;当前发行版本只处理文字,尚未通过稳定版验收。

这是什么

插件在 DSH 生态中的定位是:带来源绑定的分层文字记忆。简介原文为:Source-linked text memory for DeepSeek Harness (DSH). 保留原话来源、项目边界与修订历史的文字记忆插件。Public beta · MIT。

维护者:OakcoderX。社区目录页:https://www.skillhub.cn/plugins/OakcoderX/solopup-memory 。源码与文档:https://github.com/OakcoderX/solopup-memory 。当前 package 版本为 0.21.0-beta.4,以 npm beta 标签与 GitHub 发行页为准。

核心功能

写入与审查流程

工作过程可以概括为四步:

  1. 从本会话已接收的用户消息提出候选,并绑定原话引用。
  2. 独立检查持久价值、归属、措辞、认识类型、适用条件、信念归属和修订关系;审查不能改写候选。
  3. 通过检查后才发布到有效记忆;明确拒绝的不写入;无法判断的可留在不自动注入的待审区。
  4. 后续对话自动得到受预算限制的索引;检索同时查当前项目与全局库,结果标明归属。其他项目不会因此自动变成当前项目的记忆。

用户明确要求记住持久信息时,插件指令要求本轮使用正式 memory_write,等待实际结果再确认,不等待后台整理。默认每四轮尝试一次后台整理。主动 memory_write 也经过来源审查。pending-review、rejected、not-applied 都不表示已经记住。

记忆的层次

层次 内容与用途
来源 用户原话与消息身份;工具观察另带当时输出的核对证书
候选 尚待判断的解释;待审内容不进入常规有效记忆
有效记忆 全局个人约定或当前项目内容,带条件、例外及可选期限
修订历史 解释旧值与新值的关系;旧值不能继续冒充当前默认值
认识状态 偏好、决定、未核实主张、暂定信念、价值取向、查证入口和经历分别表示

改同一条约定的值时,supersedes 指向唯一现行旧行;改变归属或边界时使用完整重述路径 revisionMode=replace,由本轮用户来源支持全部新内容。

检索与隐私相关行为

对外暴露的工具包括 memory_search、memory_write、memory_forget、memory_status 等(具体以插件在 DSH 中注册的契约为准)。

普通 memory_search 默认隐藏已识别的生日、性别、健康、亲密关系和私人联系方式;用户询问相关资料时,需明确使用 includePrivate: true。主题文件含有未分段的敏感内容时,普通搜索会保守跳过整个主题文件。

当前检索使用中英文词元及精确匹配,没有向量检索,不保证跨语言或同义表达的召回。

存储

Markdown 索引和主题正文便于阅读;来源、候选、历史与调用记录使用有格式校验的本地账本;独立 SQLite 控制库维护受管身份、撤回和协调状态。文档强调:不要只备份 Markdown 就认为已完整备份系统。

安装与启用

使用 DeepSeek Harness 官方插件管理器安装。代码为可直接执行的 ESM,无安装时构建脚本,也不需要 npm 账户。以下以 desktop profile 为例。

dsh plugin --profile desktop add solopup-memory@beta --ignore-scripts

beta 标签跟随已公开并完成下载核验的测试版。需要固定版本时,可从发行页选择准确版本号,例如:

dsh plugin --profile desktop add solopup-memory@0.21.0-beta.3 --ignore-scripts

Git 安装示例(标签可换为发行页完整提交 SHA):

dsh plugin --profile desktop add github:OakcoderX/solopup-memory#v0.21.0-beta.3 --ignore-scripts

已安装旧名 dsh-memory 时,应先完整备份、关闭使用该库的宿主,用官方管理器移除旧包,再安装新包;不要同时启用两个记忆插件。新名字继续使用原记忆库和控制格式。

重启该 profile 的宿主后,用 memory_status 核查插件版本、全局/项目状态及捕获诊断。

卸载命令:

dsh plugin --profile desktop remove solopup-memory

卸载保留记忆数据;重新安装同一位置的数据仍需通过身份与格式检查。

可在 DSH 插件页启用 Custom plugin markets,Discover → Add index source,导入自托管市场源(非 DSH 默认内置,不表示官方审核或推荐):

https://raw.githubusercontent.com/OakcoderX/solopup-memory/main/market/index.json

典型用法与验收

README 指向新用户文档:docs/guides/quickstart.md、虚构试用案例 docs/README.md、docs/faq.md。本地可复现的验收步骤包括:

  1. 安装并重启 desktop profile 宿主。
  2. 调用 memory_status 确认版本与库状态。
  3. 在用户明确授权的前提下,通过对话触发或直接使用 memory_write 写入;在新会话中检索,核对归属与项目范围是否符合预期。

备份与恢复使用安装目录中的脚本(须先关闭使用该记忆库的全部宿主;备份目标必须是不存在的新目录):

node /absolute/plugin/scripts/backup.mjs create --root /absolute/memory --to /absolute/new-backup
node /absolute/plugin/scripts/backup.mjs verify --snapshot /absolute/new-backup
node /absolute/plugin/scripts/backup.mjs restore --root /absolute/memory --snapshot /absolute/new-backup

恢复默认只预览;核对后加 --apply --reviewed HASH 执行。

适用场景与注意

适合谁: 需要在 DSH 中长期保留「谁说的、适用于哪个项目、在什么条件下成立、后来被什么取代」的文字约定,并愿意接受公开测试版限制与人工抽查原话来源的开发者。

权限与安全: 插件以当前 DSH 进程权限读写本地记忆库;安装前应阅读源码、LICENSE(MIT)及 SECURITY.md。个人资料规则是降载保护,不是完整隐私分类器;memory_forget 表示停止使用索引条目,不表示彻底删除个人信息;撤回不承诺清除原始对话、远端服务或外部备份。

已知边界(资料原文):

  • 模型可能漏记、误判或错误概括;重要决定应查原话与来源。
  • 无向量检索;验证环境文档写明为 macOS、DSH 宿主 Node 24,其他平台以发行验收清单为准。
  • 用户单条消息的完整来源窗口目前上限为 2000 字符;超长消息不从前半段建立记忆。

记忆不构成发邮件、购买、删除或发布的操作授权。

结尾

SoloPup Memory 把 DSH 里的文字记忆做成带来源、分层与修订历史的本地库,并区分全局与项目范围,适合在公开测试阶段自行安装验证。目录页:https://www.skillhub.cn/plugins/OakcoderX/solopup-memory ;GitHub:https://github.com/OakcoderX/solopup-memory 。

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

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

Xiaoye