dsh-long-memory:DSH 长会话本地记忆与证据注入

前言

在 DeepSeek Harness(DSH)里跑 100 到 1000+ 轮对话时,早期定下的决策、用户纠正过的数字、以及未收尾的任务线,常常在 compaction、摘要或进程重启之后从上下文里消失。单靠模型窗口或宿主自带的压缩,很难保证「可核对、带条件与来源」的信息一直可用。下面介绍社区插件 dsh-long-memory:它在本地用 SQLite 记录已提交会话事件,用确定性规则抽取记忆项,并在每一步模型调用前按 token 预算注入带来源标注的上下文块;全程不调用额外模型,也不改写宿主会话日志。

这是什么

dsh-long-memory 由 dogbotowo-oss 维护,归类为 DSH 生态中的「记忆」类插件。仓库:dogbotowo-oss/dsh-long-memory;社区目录页:skillhub.cn 插件页。当前 package 版本为 0.1.0,许可证 MIT。README 写明已在 DSH 0.2.1-rc.3(@deepseek-ai/cordis 4.x)上验证,数据与逻辑均在本地机器运行。

一句话定位:为 DSH 会话提供可审计、跨 compaction 与重启的 durable memory,并重新应用已启用 skill 的规则索引。

核心功能

资料中的能力可按流水线理解:在 DSH 的 step 边界,agent/pre-step 触发检索、组装并注入一条 user 角色的证据消息;与此同时,已提交的 session/event 进入 capture → extract →(可选)validate,并写入 assembly log。

  1. Capture(捕获)
    将已提交的宿主事件(用户/助手消息、工具调用与结果、compaction 事件、命令等)追加写入本地 SQLite 证据表。按事件序号幂等写入,重试、重启与回放不会重复落库。大体积工具结果与 compaction 摘要会在宿主可能无法回放时额外归档。

  2. Extract(抽取)
    对用户消息用确定性规则增量抽取记忆项,不调用模型。事实、决策、约束、偏好与开放问题分存;数字与单位、限定条件一并保存;助手侧内容仅作为 proposals 记录。支持显式纠正检测,以及 Goal:、Progress:、TODO: 等任务状态行合并。

  3. Skills 索引
    将 skill 内容快照为版本化行,规则文件解析为四类:stable rule、data convention、current state、operational lesson;其中 current state 随上下文变化,不作为硬编码校验规则。

  4. Retrieve(检索)
    在当前 session 范围内,用 SQLite FTS5(trigram)与 LIKE 回退,对活跃记忆项、规则与证据排序;README 说明排序考虑 exact-match、scope 与 recency 等加权。

  5. Assemble(组装)
    在 token 预算内确定性顺序组装注入消息:稳定头、常驻规则核、任务状态、相关规则/记忆项与证据片段。默认 soft budget 约 3000 estimated tokens;预算只限制注入量,不限制存储。memory explain 可查看各段 included / truncated / omitted 及原因。

  6. Validate(校验,可选)
    对已提交助手输出做确定性检查,可选 dispatch 前 precondition;默认关闭,不做猜测式修复。

  7. 与 compaction 协作
    宿主压缩表面上下文后,下一步从本地证据重新组装 memory;插件不重写宿主 session log。

设计优先级在 README 中写得很明确:准确性优先于省 token——可验证记忆优于短摘要,保留原始证据优于不可审计的推导,冲突时保留双方并记录 supersession,而非静默选边。

环境要求

  • DSH 0.2.1-rc.3(@deepseek-ai/cordis 4.x)。
  • Node.js ^22.15.0 || >=24.0.0(使用 node:sqlite;FTS5 trigram 分词对 CJK 友好,需 Node >= 22.5)。
  • Windows、macOS 或 Linux;插件本身无 native 编译步骤,SQLite 来自 Node 运行时。

安装与启用

安装前请自行阅读仓库源码与 LICENSE;插件以当前 DSH 进程权限运行,数据库默认落在 <DSH_HOME>/long-memory/(可通过配置 dataDir 修改)。

从 GitHub 安装(README 原文):

dsh plugin --profile <profile> add github:dogbotowo-oss/dsh-long-memory

若已有本仓库 checkout,也可把路径作为插件目录:

dsh plugin --profile <profile> add <path-to-plugin>

包内带 cordis.patch.yml 与 package.json 中的 bundle patch 条目,添加后无需单独 build。

安装后打开 session,执行:

memory status

用于确认插件已加载、数据库已打开且 schema 版本匹配。

配置要点

各配置项均可选,缺省见 src/config.js;完整样例见 examples/config.json。主开关与库文件:

分组 作用
enabled, dataDir, dbFile 总开关与库路径;dataDir 为空时使用 <DSH_HOME>/long-memory/
assembly 注入消息预算(如 softBudgetTokens 默认 3000)、各段上限、compaction 后是否再注入等
extraction 确定性抽取开关
retrieval 候选数量与排序加权、minScore 过滤
compatibility 与宿主 compaction 策略协作
validation 确定性 checks / preconditions(README 配置表中有说明,正文截断处亦提及)

assembly.evidenceTypes 默认 ["user/message"]:工具输出可检索,但默认不直接粘贴进请求,以降低不可信/注入内容进入上下文的风险。

示例片段(与 README 一致,可按需裁剪):

{
  "enabled": true,
  "dataDir": "",
  "dbFile": "memory.sqlite",
  "assembly": {
    "enabled": true,
    "softBudgetTokens": 3000,
    "includeTaskState": true
  },
  "extraction": {
    "enabled": true,
    "immediateCorrections": true,
    "scanUserMessages": true
  },
  "compatibility": {
    "compactionPolicy": "auto",
    "reinjectAfterCompaction": true
  }
}

典型用法

  1. 安装插件并在 session 中运行 memory status 做健康检查。
  2. 正常长会话对话;插件在后台 capture / extract,并在每步 pre-step 注入预算内的证据块。
  3. 需要理解「这一步注入了哪些段、为何截断」时,使用 README 提到的 memory explain。
  4. 诊断 schema、计数、checkpoint 滞后与兼容性时,README 指向 src/diagnostics.js 及相关诊断能力(具体 slash 命令名以仓库 commands 配置为准,默认命令前缀为 memory)。

仓库提供离线长会话评测脚本(npm run eval / eval:quick),README 中有 Evaluation results 章节供对照 baseline;本文不展开具体分数,以仓库文档为准。

适用场景与注意

适合:需要在同一 DSH profile 下连续多轮开发或运维对话,且必须保留「已定决策、纠正过的精确数值(含条件与来源)、任务状态与 skill 规则」的会话;希望 memory 完全本地、无额外模型 API 成本。

注意:

  • 记忆质量依赖确定性规则与本地证据,不是 LLM 摘要;未检索到的内容应表现为 unknown / not retrieved,而非臆造回忆。
  • 默认不把 tool 结果 inline 进注入块,若业务需要须在 evidenceTypes 等处显式调整并理解安全风险。
  • 社区目录(如 skillhub.cn)与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,选型时以仓库 README、许可证与自身安全策略为准。

结尾

dsh-long-memory 把长会话里容易丢的「证据 + 决策 + skill 规则 + 任务状态」落在本地 SQLite,并在 compaction 与重启后仍能按预算注入模型步骤。若你要试用或贡献,可从目录页与 GitHub 进入:

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

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

小夜