用 dsh-mnemon 给 DeepSeek Harness 装上本地分层记忆

前言

用 DeepSeek Harness(dsh)跑智能体时,一个很常见的问题是:项目约定、接口位置、编码偏好,上一轮刚说清楚,新开一个会话又要从头解释。短期对话窗口装不下完整设计文档,长期事实又没有固定落点,最后只能靠人工复制粘贴。

DeepSeek Harness 的设计是「一切皆插件」:模型、工具、技能、会话、存储和界面都可以替换或重组。记忆也不例外。社区目录里有一类专门做这件事的插件,dsh-mnemon 就是其中面向「本地优先、分层持久记忆」的方案。

本文按插件目录页、GitHub 仓库 README、快速开始文档和 package.json 核对后整理:它是什么、三层记忆怎么分工、怎么安装,以及第一次该如何验证。社区插件目录 deepseek-harness-plugin.com 是独立站点,与 DeepSeek / 幻方没有官方从属关系,文中涉及的安装命令以目录页原文为准。

这是什么

dsh-mnemon 是一款 DeepSeek Harness 记忆插件,由 GitHub 组织 omdsh-dev 维护,许可证为 MIT。截至 2026-08-17,仓库语言为 TypeScript,package.json 版本为 0.2.2,GitHub 星标为 62。

它把 Mnemon 接到 DSH 里,提供统一的记忆控制面,但不要求所有知识进入同一种数据库:

  • 运行时记忆:每轮都需要的偏好、协作规则、项目约定和环境事实
  • 项目档案:设计、调查、流程、复盘、交接这类完整叙事
  • 记忆体(Memory Spaces):跨会话的事实、决策、实体与关系,按需召回

目录页的定位可以概括成一句话:基于 Mnemon 的本地优先持久记忆,跨 Mnemon 智能体共享长期记忆,运行时记忆和可检索的项目文档都留在本机。

需要分清两件事。dsh-mnemon 是 DSH 侧插件;Mnemon 是独立的本地记忆引擎(CLI + SQLite)。插件默认把 Mnemon Native 当作第三层引擎,也可以改接其他 Provider,但前两层的存储和工作区模型保持不变。

三层记忆怎么分工

官方文档给了一张很清楚的对照表。三层不是同一内容的三份副本,而是按「要不要每轮出现、要不要完整阅读、要不要跨任务召回」分开存放。

层级 适合保存 如何进入 Agent 上下文 谁来管理
运行时 偏好、协作规则、项目约定、环境事实 紧凑投影到 USER.md / MEMORY.md,每轮可用 dsh-mnemon Host 确定性管理
档案 设计、调查、流程、复盘、交接 先检索,再按需读全文 dsh-mnemon Host 确定性管理
记忆体 跨会话事实、决策、实体与关系 从已激活记忆体召回有界证据 Mnemon Native 或三方 Provider

判断规则可以记成三句:

  1. 每轮都需要的,放运行时。
  2. 需要完整阅读的,放档案。
  3. 需要跨任务按需召回的,放记忆体。

优先级也写死了:当前指令、仓库文件和实时工具结果,始终高于历史记忆。普通聊天不应强制召回。

运行时的事实源是 runtime/memories.jsonUSER.mdMEMORY.md 是派生投影。容量按 UTF-8 字节计算:USER.md 上限 4 KiB,MEMORY.md 上限 10 KiB,单条内容最大 8 KiB。档案单份正文最大 2 MiB,active 总量最大 10 MiB。这些数字来自仓库的存储模型文档,不是估算。

核心功能

本地优先,第三层可替换

默认路径不依赖云端记忆服务。运行时和档案是本地确定性存储;Mnemon Native 用本地 CLI + SQLite。截至当前 README,第三层还可以接这九种 Provider:

Provider 形态 文档中的适用方向
Mnemon 本地 CLI + SQLite 精确写入、实体、类型关系、本地优先共享
OpenViking HTTP + viking:// 资源树与异步提炼
Honcho HTTP workspace / peers 团队与 Agent peer
Mem0 平台或自托管 HTTP 已有用户 / Agent 记忆
Hindsight HTTP memory bank bank、实体与 Provider 原生图谱
Holographic 本地结构化事实文件 可审计事实、信任评分、本地实体
RetainDB HTTP project / user 项目与用户双作用域画像
ByteRover 本地 brv CLI 代码知识树与 curate 流程
Supermemory HTTP container 文档摄取与容器级共享

三方 Provider 默认关闭,必须在设置里显式启用。引擎没有图谱边、删除语义或可枚举内容时,插件不会伪造这些能力。设置页管理可复用的 Provider 服务,记忆体页管理具体实例、激活、作用域和元信息。

跨智能体共享有边界

Mnemon 原生的 mnemon.db 不是 dsh-mnemon 私有格式。其他同样接入 Mnemon 的智能体,只要指向同一个 storageRoot 和 Store,就可以读写同一份长期事实、实体和关系。

共享范围只覆盖 记忆体这一层。运行时记忆和项目档案不会自动暴露给其他智能体。不能把「共享第三层记忆」理解成「自动共享完整 DSH 上下文」。

存储范围有三种:

  • global:默认使用 ~/.mnemon(或 MNEMON_DATA_DIR),适合本机多个工作区共用一套控制面
  • workspace:使用工作区下的 .mnemon,适合项目隔离
  • custom:显式路径,语义按全局处理,适合团队约定或隔离环境

切换范围不会自动迁移、合并或删除旧根目录。远程 Provider 自己的 workspace、user、bank、project、container 和 URI 仍是各自的命名空间,切换 DSH 工作区不会暗中改写它们。

写入受监督,查询有边界

工作台上的操作不是「把整段对话塞进数据库」。README 把点击和实际执行分开写了:

  • 检索:并发走各 Provider 的原生召回,只读
  • Agent 查询:新建独立顶层任务 Agent,只接收有界证据再组织答案,只读
  • 沉淀记忆 / 存入记忆:独立任务 Agent 判断、选路、查重、提炼,Host 控制写入;只有通过判断才落盘
  • 本回合记忆:展开本轮召回、写入和档案检索,点击可跳到对应页面

这些后台任务默认不复用、不挤占主对话历史。可以在「设置 → 记忆系统 → 后台任务 Agent」单独指定 Provider 与模型。

Web、对话和 Headless 共用一套系统

  • Sidebar WebUI(默认):左侧栏「记忆系统」工作台,一级页顺序是状态、运行时、档案、记忆体
  • 对话内:本回合记忆、存入记忆,可跳到对应页面
  • Headless:没有工作台和斜杠命令界面,但保留运行时注入、档案检索、记忆体工具、工作区路由和受监督写入
  • 命令/mnemon statusrecallrelatedrememberforget

DSH 各 profile 的插件清单彼此独立。Web 装过,不等于 Headless 也能用。

安装与启用

插件以当前 dsh 进程的权限运行,安装时可能执行代码。安装前请检查源代码仓库和许可证;只安装你信任的来源。

快速开始文档给出的推荐基线是:dsh-mnemon v0.2.0、DSH 0.1.0-rc.6、Mnemon 0.2.3 或更高。当前仓库版本是 0.2.2。升级前先备份,并在隔离目录重复验证。Node 要求 >=20

1. 先装 Mnemon Native

Mnemon 是默认引擎,也是本地优先的起点。macOS 可以用 Homebrew Cask:

brew install --cask mnemon-dev/tap/mnemon

macOS / Linux 也可以用 Go:

go install github.com/mnemon-dev/mnemon@latest
mnemon --version

Windows 需要官方 v0.2.3 或更高版本的 ZIP(提供 AMD64 与 ARM64)。插件会从 PATHGOBIN / GOPATH%LOCALAPPDATA%\Programs\mnemon 等位置查找 mnemon.exe,不接受 .cmd / .bat 包装。找不到时再设 MNEMON_CLI_PATH,或在用户 settings 里写绝对路径,例如:

mnemon:
  cliPath: 'C:\Users\alice\AppData\Local\Programs\mnemon\mnemon.exe'

mnemon status 会打开有效 Store,可能初始化数据或执行上游迁移,不要把它当成完全无副作用的安装探测。

2. 安装 DSH 插件

目录页给出的安装命令是:

dsh plugin add github:omdsh-dev/dsh-mnemon

如需可复现安装,按目录页说明固定 commit 哈希:

dsh plugin add github:omdsh-dev/dsh-mnemon#<commit>

仓库 README 和快速开始则按 profile 安装。需要完整工作台时:

dsh plugin --profile web add dsh-mnemon
dsh --profile web

一次性 Headless 任务要单独装:

dsh plugin --profile headless add dsh-mnemon
dsh --profile headless "回答前先检查持久化的项目上下文。"

本地检出用绝对路径:

dsh plugin --profile web add "link:/absolute/path/to/dsh-mnemon"

升级和卸载:

dsh plugin --profile web update dsh-mnemon
dsh plugin --profile web remove dsh-mnemon

卸载只移除插件注册,不会删除全局、工作区或自定义目录里的记忆数据。

第一次怎么验证

官方快速开始把「从空白环境走到第一次可验证召回」写成了固定步骤。

  1. 打开「设置 → 记忆系统」,确认展示形态(默认 Sidebar)和存储位置(默认全局 ~/.mnemon)。保存后会初始化新运行图并切换 Host,一般不用刷新浏览器。
  2. 打开左侧栏「记忆系统 → 状态」,确认右上角「已连接」,Mnemon 与 dsh-mnemon 能显示版本,Runtime、Documents、Memory Spaces 没有错误。
  3. 打开「记忆体 → 概览 → 创建记忆体」,手动选择已启用的 Provider。本地优先起步就选 Mnemon Native,名称写清楚主题,说明里写「哪些内容属于这里、什么任务应召回」,然后打开读取激活。
  4. 点右上角「沉淀记忆」,填一条稳定、自包含、未来仍有用、不含秘密 的信息。只有点确认才会启动独立任务 Agent 写入;取消弹窗不会改状态。
  5. 打开「记忆体 → 检索」,先做直接检索,再对同一问题做 Agent 查询。结果应能看到记忆体来源、分类、重要性和 ID。

对话里也可以用命令:

/mnemon status
/mnemon recall <聚焦查询>
/mnemon remember <内容>

空的 /mnemon 等价于 statusstatus 是确定性读取,不启动模型。recall 最多返回 10 条。forget 必须给一个不含空格的精确 ID,属于破坏性操作,只有用户明确要求、或内容已确认错误 / 过时才应执行。

回到对话后,如果本轮调用了记忆工具,回复下方会出现「本回合记忆」,展开后可跳到对应页面。「存入记忆」会先打开可编辑确认弹窗,取消不会写入。

适用场景与注意事项

比较适合这些情况:

  • 同一项目要跨多个会话保持约定、环境事实和决策,不想每天早上重新解释一遍配置
  • 本机有多个 Mnemon 智能体,希望共享同一份长期记忆体,但不想把数据送到云端
  • 既要每轮可见的短记忆,也要可检索的设计文档和复盘,不想全部塞进一个向量库

使用时注意下面几条,都来自仓库文档,不是额外发挥:

  1. 权限与来源。插件以当前 dsh 进程权限运行。安装前检查 GitHub 仓库 源码和 MIT 许可证;GitHub 安装可能在本机执行构建脚本,只允许你信任的包。
  2. 不要存秘密。当前没有确定性 secret scanner。任何一层都不应保存 key、token、私钥或原始敏感日志。
  3. 凭据落盘方式。三方 Provider 凭据以权限 0600 写在 state/memory-providers.json,不会返回浏览器、智能选择 Agent 或 Mnemon Pack。关闭 Provider 只清理本地目录元数据,不删除远程数据。
  4. 卸载不等于清数据。卸插件不会删除本地或远程记忆。切换 global / workspace / custom 也不会自动搬家。
  5. 召回只看已激活记忆体。对未激活记忆体的读取会被拒绝;写入成功后,插件会自动激活该目标。
  6. Headless 的生命周期。一次性 runner 在 Agent 进入 idle 后退出,尚未开始的评分后台审查会取消;任务内已经完成的显式或模型引导写入仍会持久化。
  7. 远程 WebUI。v0.2.2 修了远程受信页面激活记忆体失败的问题,并收紧了 RPC 边界:远程界面保留激活能力,但会禁用编辑、删除、沉淀、备份和 Provider 配置等 loopback 写操作。

小结

dsh-mnemon 要解决的不是「再做一个聊天记录库」,而是给 DSH 补上分层、可监督、默认可离线的记忆控制面:短事实进运行时,完整叙事进档案,跨会话证据进记忆体。Mnemon 仍是官方优先的本地引擎,第三层可以换成其他 Provider,但不会假装补齐引擎没有的能力。

目录页与仓库:

  • 插件目录:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-mnemon/
  • GitHub:https://github.com/omdsh-dev/dsh-mnemon
  • Mnemon 引擎:https://github.com/mnemon-dev/mnemon
  • DeepSeek Harness:https://github.com/deepseek-ai/deepseek-harness
羽毛球分组比赛记分
小程序二维码

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

小夜