dsh-memraw:原文全量落盘、按需检索的 DSH 记忆引擎

前言

在 DeepSeek Harness(DSH)里做长对话或跨会话协作时,常见做法是压缩历史、写摘要、再按「遗忘曲线」丢掉原文。细节一旦进摘要,模型就很难准确回答「具体是哪句话、哪一天」;摘要错了也缺少可核对的底稿。上下文里若每轮硬塞几千 token 记忆,轮次一多,token 会线性膨胀。

下面介绍社区插件 dsh-memraw(维护者 ThreeHHHNOW,分类:记忆)。它把每一轮对话一字不改写入本地 SQLite,用 session#seq 坐标索引;需要时用工具检索回读,而不是默认把全量历史注入上下文。设计目标是:保存底稿、按需取回,聊多久都不靠逐轮注入涨 token。

这是什么

dsh-memraw 是给 DSH 用的原文全量记忆引擎(npm 包名 dsh-memraw,当前 package 版本 0.1.1,MIT 许可证)。数据独立于插件代码目录,重装插件不丢记忆。

与「压缩 → 摘要 → 淡忘」路线对比:本插件只冷归档、按需取回;摘要与切片都是派生数据,可由原文重建;常态不在每轮对话里塞记忆块,检索指引等常驻内容约数百字符量级并命中缓存。

核心功能

全量原文与坐标溯源

每个 session/event 原样写入 raw_event(只 INSERT,不 UPDATE/DELETE)。切片、摘要携带 [start_seq, end_seq],例如 s=c69568d4#267-267 表示会话 c69568d4 第 267 条事件。mem_read 按坐标取回原文。

动态上下文组装

不做每轮全量注入,分层触发:

层 内容 时机
常驻 检索指引 + 热记忆(身份/用户/准则等) 每会话,稳定、可缓存
首轮 本工作区近期摘要或「新工作区」提示 新会话第一轮,仅 1 次
缺口 被压缩区间的原文 /compact 后,仅 1 次
按需 检索到的原文片段 调用 mem_search 时

跨工作区检索

默认全局检索;scope: "workspace" 限当前工作区;workspace: "<路径>" 指定工作区。结果带 workspace 标签与来源时间。

超大事件与压缩摘要

单条事件超过 100KB(默认 oversizeBytes 102400)时只保存头 4000 字 + 原文指针;全文用 mem_read(session, seq, offset, length) 从会话日志分页拼回。/compact 时后台异步生成本地抽取的带坐标摘要,不阻塞合并;失败静默降级。

安全约束与备份

六类内置规则(隐私、外链、危险操作、只读、转发、保密)仅在命中用户输入时注入极短约束,每会话每条只注入一次。mem_export 做一致性快照(含 integrity_check、sha256);mem_import 校验后合并导入,不覆盖本地数据。

Token 开销(设计说明)

不做逐轮记忆注入;压缩摘要本地抽取、不调模型。检索仅在调用工具时返回(默认 top 8,每条截断约 900 字)。README 中对比:若每轮硬塞约 3000 token 记忆,100 轮可达约 30 万 token 冗余;本插件常态为一次性引导与按需检索。

安装与启用

要求:DSH 桌面端(Electron 内置 Node ≥ 22.5,提供 node:sqlite)。插件无 npm 运行时依赖。已验证环境:Windows 11 + DSH 0.2.1-rc.2(README 亦写明目前主要在该环境验证)。

在 DSH 中执行:

dsh plugin add dsh-memraw

装完可确认:mem_status() 返回 { errors: 0, sessions: N, events: M, ... };Tool.listTools 应看到 11 个 mem_* 工具。

数据目录:Windows 为 %USERPROFILE%\.dsh\memraw\raw.db;通用为 $DSH_HOME/memraw/raw.db。升级可用 dsh plugin add 指定版本;数据目录独立于代码。

配置写在 DSH 的 cordis.patch.yml 中 memraw 条目 config 下,常用项包括:

key 默认 说明
dir $DSH_HOME/memraw 数据目录
oversizeBytes 102400 超大事件阈值(字节)
chunkChars / chunkCharsMax 1600 / 3000 切片目标/上限
backfill true 激活时补齐历史会话
guide true 是否挂常驻检索指引
gapRefill / gapChars true / 4000 压缩后补原文及单次字数
autoDigest true 压缩时后台生成带坐标摘要
bootstrap true 新会话首轮注入近期上下文提示
workspaceLabels {} 工作区目录 → 标签覆盖

典型用法

检索与回读

用 mem_search 检索原文(默认全局,可按 scope/workspace 收窄)。用 mem_read 按坐标回读;大事件配合 offset/length 分页。

热记忆与笔记

mem_hot 维护常驻热记忆(soul / user / rules / criteria);mem_note 把事实或结论落盘,可带原文坐标。

会话与状态

mem_list_sessions 查看最近会话、覆盖水位、缺口起点;mem_status 查看库路径、计数与最近补全/摘要。

管理与备份

mem_export / mem_import 备份与合并导入;mem_digest、mem_synonym、mem_policy 分别管理摘要、近义词词典、安全约束规则。

数据目录结构(README):

$DSH_HOME/memraw/
  raw.db                 # 原文 + 切片 + FTS + 摘要 + 热记忆 + 规则
  backup/<timestamp>/    # raw.db + manifest.json(含 sha256)

适用场景与注意

适合:需要长期保留对话原文、跨工作区追问历史、压缩后仍要能按坐标核对细节,且希望避免每轮上下文被记忆块撑大的 DSH 用户。

注意:

  • 插件在 DSH 进程权限下运行,安装前建议查看 GitHub 源码 与 MIT 许可证。
  • README 列出的限制:压缩缺口补全仅在运行中的会话触发;换机导入未做端到端验证;与 meow-memory 的去重为规则级;当前主要在 Windows + DSH 0.2.1-rc.2 验证。
  • DSH 生态是「一切皆插件」;社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-memraw 用 SQLite 做只追加的原文底座和 FTS 检索,把记忆从「每轮塞进上下文」改成「工具按需取回」,并配套压缩摘要、安全约束与一键备份。若要安装或读完整工具表与架构说明,见目录页与仓库 README。

  • 目录页:https://www.skillhub.cn/plugins/ThreeHHHNOW/dsh-memraw
  • GitHub:https://github.com/ThreeHHHNOW/dsh-memraw
羽毛球分组比赛记分
小程序二维码

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

Xiaoye