dsh-memory:DSH 本地双环长期记忆引擎

前言

在 DeepSeek Harness(DSH)里做智能体或日常编程协作时,上下文窗口有限,而项目约束、偏好和历史性决策又会不断累积。如果把整段聊天记录或整份 Markdown 记忆库每轮都塞进提示词,Token 会快速增长,关键约束容易被噪声淹没;若在对话前的 pre-step 里依赖远程 Embedding 或向量检索,还会引入网络延迟,断网时甚至可能拖慢主流程。

社区插件 dsh-memory(维护者 ROSESSSSS66,GitHub ROSESSSSS66/dsh-memory)针对上述问题,把「在线召回」和「离线整理」拆成两条环路:快环纯本地、尽量零网络;慢环在空闲时做蒸馏、冲突调和与策略演进,并配有每日 LLM 调用配额。下面介绍其定位、能力与在 DSH Desktop 上的挂载方式。

这是什么

dsh-memory 是面向 DeepSeek Desktop (DSH) 的长期记忆插件(当前资料所示版本 v0.7.0,MIT 许可)。存储侧使用 Node.js 内置的 node:sqlite 与 FTS5 全文索引,在线路径不依赖外部 Embedding API;检索侧组合 BM25、实体图谱、类型/时间/偏好通道、128 维本地特征向量与图谱扩散等多路召回,再用动态 Token 预算装箱后注入对话。

插件归类为 DSH 生态的「记忆」能力。社区目录 SkillHub 条目 独立于 DeepSeek / 幻方官方渠道,安装前仍建议自行审阅源码与许可证——插件以 当前 DSH 进程权限 运行,并可读写本地 SQLite 与工程上下文。

核心功能

在线快环(对话前注入)

快环挂在 DSH 集成层(如 pre-step 动态记忆注入、prompt-section 稳定层注入)。资料中的设计要点包括:

  1. 多路混合召回:七路并发(BM25、实体图谱、类型意图、时间衰减、偏好直通、128D 向量、GraphRAG 拓扑扩散等),经融合打分与去重后进入装箱。
  2. Token 预算控制:governor 使用次模贪心式装箱;README 称记忆规模从 1,000 扩到 10,000 条时,单轮动态注入 Token 波动约 0.28%(默认动态预算 1600 tokens,稳定层默认 600 tokens)。
  3. 延迟:徽章与文档给出的在线检索 p95 约在 0.6~1.4 ms 量级(纯本地,无在线 Embedding 请求);与 SkillHub 简介中的「p95 < 1ms」表述一致。
  4. 常驻核心记忆:内置 Letta 风格的 human / persona / project 三块;安装或首次启动时可自动初始化,高频验证的偏好可沉淀到核心层。
  5. 冲突与溯源:支持 supersedes 因果链、槽位去重;写入前对敏感凭据做正则脱敏(README 安全章节)。

离线慢环(空闲自愈与演进)

慢环在会话空闲时调度,依赖可选的 OpenAI 兼容 LLM 做 distill-v2、reflect-v2、consolidate-v2、Mem0 式冲突调和、RIME 检索修复、EvolveMem 策略实验等。默认 每日硬配额:≤ 40 次调用 / ≤ 200,000 Tokens(ledger)。

未配置 LLM 时,README 强调 在线召回仍可在本地完成;慢环相关能力则无法充分运行。侧栏 记忆中心 控制台可配置宿主内置模型或外部兼容端点,550ms 防抖自动落盘。

侧栏与工具面

  • Claude Studio 风格侧栏:遥测记忆水位、Memory Doctor 健康分、策略版本、配额等;界面设计仅保留「模型配置」主入口(README 说明由测试约束)。
  • 斜杠指令:聊天内 /memory 系列(如 status、doctor、heal、core、reconcile 等,文档列出 20+ 子命令)。
  • 模型工具:聚合工具 memory,以及 memory_search、memory_note、memory_feedback 等,供智能体在推理中按需检索或记笔记(memory_note 有每轮 ≤ 3 次限流)。

数据库默认路径:~/.dsh/storages/dsh-memory/memory.db。

快慢双环如何协作

flowchart LR
  subgraph Fast["在线快环 · 无网络依赖"]
    Q[用户输入] --> R[多路召回与融合]
    R --> G[Token 装箱]
    G --> P[稳定层 + 动态层注入]
  end
  subgraph Slow["离线慢环 · 配额内 LLM"]
    E[会话与反馈] --> S[空闲调度]
    S --> D[蒸馏 / 调和 / 修复 / 策略进化]
    D --> DB[(SQLite WAL)]
  end
  Fast --> DB
  Slow --> DB
  Slow -.->|更新记忆与策略权重| Fast

快环负责每轮低延迟注入;慢环把结构化结果写回同一 SQLite 库,并可能调整检索策略。负向反馈(文档阈值 r ≤ -0.6)可触发 RIME 修复入队。

安装与启用

环境要求(README):Node.js ≥ 24.0.0(使用内置 node:sqlite,资料称无需额外 C++ 编译工具链)。

在本地准备好 dsh-memory 源码目录后,于该目录执行依赖安装与构建:

npm install
npm run build

构建产物包括 dist/index.js(服务端插件入口)、dist/client.js(侧栏前端)、dist/eval-cli.js(评测 CLI)。postinstall 脚本也会在安装阶段参与初始化逻辑。

挂载到 DSH Desktop

编辑 DSH Desktop 补丁配置(文档默认路径 ~/.dsh/profiles/desktop/cordis.patch.yml),追加:

- insert:
    - id: dsh-memory
      name: dsh-memory
      config:
        enabled: true
        dynamicBudgetTokens: 1600
        stableBudgetTokens: 600
        dailyLLMCalls: 40
        dailyLLMTokens: 200000

在 ~/.dsh/profiles/desktop/package.json 中为本地包添加软链(路径改为你机器上的实际目录):

{
  "dependencies": {
    "dsh-memory": "link:/path/to/dsh-memory"
  }
}

保存后 DSH 通过 HMR 加载插件,侧栏出现记忆中心入口。SkillHub 页面对安装对象的表述为「请安装 DSH 插件 ROSESSSSS66/dsh-memory」,具体方式仍以上述 README 挂载步骤为准。

配置离线慢环 LLM(可选)

慢环需要兼容 OpenAI 协议的 API。可在同一 config 下增加例如:

        llmBaseUrl: "https://api.example.com/v1"
        llmApiKey: "your-key"
        llmModel: "your-model-name"

README 示例中曾引用第三方中转服务;你也可使用 DSH 宿主内置模型(侧栏配置)。密钥将进入本地配置,请勿提交到版本库。

package.json 中的 peerDependencies 包括 @deepseek-ai/dsh(>=0.1.0-rc.7)、@deepseek-ai/cordis、@deepseek-ai/schemastery 等,需与当前 DSH 版本匹配。

典型用法

工作区冷启动与体检

首次使用或换工程后,可在聊天中执行:

/memory init

强制重扫时文档提供 /memory init --force。查看分布与配额:

/memory status

对库做健康检查并可加自动修复:

/memory doctor
/memory doctor --fix

维护核心记忆块

查看或更新常驻块(human / persona / project):

/memory core project
/memory core project 本项目使用 pnpm,开发端口 8080

开发与验收

维护者仓库提供门禁命令:

npm run check
npm run eval

文档称内置 120 条评测用例、npm run check 覆盖 51 个测试套件、322 项测试;聊天内也可 /memory eval 做原地回归。

适用场景与注意

更适合:长期在单一 DSH Desktop 工作区内做项目协作、希望记忆留在本机、能接受 Node 24+ 与 Cordis 补丁挂载方式的开发者。

需要留意的点:

  1. 权限与隐私:记忆库和工程扫描结果落在用户目录下的 SQLite;安装前请阅读源码与 MIT 许可证,确认脱敏与数据路径符合你的合规要求。
  2. 慢环成本:离线演进消耗 LLM Token,受 dailyLLMCalls / dailyLLMTokens 约束;不配置 LLM 时仅享受快环本地召回。
  3. 挂载方式:官方文档以 本地 link: 依赖 + cordis.patch.yml 为准,而非单纯的「一条 marketplace 命令」;路径需按操作系统填写(README 示例含 Windows 风格路径)。
  4. 生态定位:SkillHub 为社区目录,与「一切皆插件」的 DSH 理念一致,但不代表官方应用商店;仓库当前 GitHub 1 star(截至撰稿所给线索),生产使用前建议自行跑 npm run check / npm run eval。

结尾

dsh-memory 把 DSH 对话里的长期记忆做成「本地毫秒级快环 + 配额化慢环」的组合:快环用 SQLite FTS5 与多路召回控制注入体积;慢环在空闲时做提炼、调和与策略迭代。若你在找纯本地、可解释的 Agent 记忆方案,可以从目录页与仓库 README 对照版本 v0.7.0 的配置项与 /memory 指令起步。

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

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

小夜