前言¶
在 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