Files
deepseek-harness/examples/mcp-memory/README.zh.md
T
Turtle ef30572e63 fix: retire leftovers of the removed $DSH_HOME/config.yaml personal overlay
The profile rework left references to the old entry modes behind. Renames
the user patch-layer API and its spec file (watchPersonalPatches ->
watchUserPatches, personal-config.spec.ts -> user-patches.spec.ts) and
retargets the prose that still named `config.yaml`, `--config`, raw-config
mode, and surface overlays: repository-plugin and mcp-memory READMEs, the
credentials-local anchor into app-boot, vendor manifest items 12-13, the
vendored include/hmr comments, and install.sh.

Restores the boot-failure guard the rework dropped with raw mode: the
built-bin case now boots `--profile web --patch <invalid>` and asserts the
settled diagnostic and exit 1, so the HMR initial-scan deadlock stays
covered; its orphaned raw fixture is renamed and the unused one deleted.
The superseded personal-config Agent Note and its superseding profile note
are now cross-linked.
2026-08-06 17:28:58 +08:00

6.9 KiB
Raw Blame History

第三方记忆 MCP 示例

English | 中文

这三份默认关闭的参考配置 通过 @deepseek-ai/dsh-mcp-client 将一个记忆系统连接到 DSH。请选择其中一份,或复制相同的通用 MCP 配置项来连接其他服务器。

这些第三方配置仅作为互操作参考;收录不代表 DeepSeek 的认可、推荐、合作关系或持续支持承诺。

DSH 负责什么

DSH 解析选中的 Cordis overlay,启动已配置的 stdio 命令或连接已配置的 Streamable HTTP URL,发现 MCP 工具,并以 mcp__<serverName>__<tool> 的形式公开这些工具。DSH 不负责 下载服务器、初始化其数据库、选择模型或 embedding 提供方、创建云端账户、迁移提供方数据,也不监管独立的 HTTP 服务。对于 stdio,通用客户端会随 DSH 插件生命周期启动和停止子进程;对于 HTTP,上游服务必须已经运行。

stdio 桥接器在启动子进程前会主动移除环境中名称类似凭据的变量和 DSH_* 变量;其余环境变量仍会继承。每份示例仅添加其基线所需的覆盖项。如果某个可选的上游功能还需要其他密钥,请将该变量添加到配置项的 config.env,不要把密钥直接写进 YAML。

选择一个

系统 已测试版本 传输方式 上游前置条件
Memorix memorix@1.3.0500792cad3144142293bfbb20acb4841c9f7fcfa stdio Node 22.18+,并执行 npm install --global memorix@1.3.0
MCP Reference Memory @modelcontextprotocol/server-memory@2026.7.46dd0a683e198783e30feabf7abaf42f925bd18b1 stdio npm install --global @modelcontextprotocol/server-memory@2026.7.4
Engram v1.20.0ba9e46ced152c37a7cb9e576153c41995873e2fc stdio Go 1.25.10+,并执行 go install github.com/Gentleman-Programming/engram/cmd/engram@v1.20.0,或安装匹配的发布版二进制文件

启用一个

将一份 overlay 传给 DSH

dsh web --patch "$PWD/examples/mcp-memory/memorix.cordis.yml"

请将文件名替换为 mcp-reference-memory.cordis.ymlengram.cordis.yml。该路径可以指向磁盘任意位置的一份复制文件。交付组合不包含任何记忆服务器,因此不传 --patch 就会让这三项全部保持关闭。

如果本地没有仓库 checkout,可直接下载所选 overlay

mkdir -p "${DSH_HOME:-$HOME/.dsh}"
curl --fail --location \
  --output "${DSH_HOME:-$HOME/.dsh}/memory.cordis.yml" \
  https://raw.githubusercontent.com/deepseek-harness/deepseek-harness/master/examples/mcp-memory/memorix.cordis.yml
dsh web --patch "${DSH_HOME:-$HOME/.dsh}/memory.cordis.yml"

若要选择另外任一配置,请将 URL 中的 memorix.cordis.yml 替换为对应文件名。运行下载的 overlay 前,请先审阅其内容:Cordis 配置可以包含可执行的 !!js 表达式。

如果要跨次运行保留所选配置,请将对应文件中的单个 insert patch 合并到用户 patch 层:只对一个 profile 生效则写入 $DSH_HOME/profiles/<name>/cordis.patch.yml,对本机所有 profile 生效则写入 $DSH_HOME/cordis.patch.yml。不要覆盖已有文件,其中可能已经包含无关的用户 patch。

提供方设置

Memorix

npm install --global memorix@1.3.0
dsh web --patch "$PWD/examples/mcp-memory/memorix.cordis.yml"

Memorix 无需 LLM(大语言模型)或 embedding 服务,即可在本地启发式模式下运行。请在 Memorix 自己的 ~/.memorix/config.toml 或项目 memorix.toml 中配置可选提供方。该示例沿用 DSH 工作目录中的 Git 项目标识,并使用 Memorix 自身的默认目录 ~/.memorix/data。若要覆盖该目录,请在启动 DSH 前设置 MEMORIX_DATA_DIR

MCP Reference Memory

npm install --global @modelcontextprotocol/server-memory@2026.7.4
dsh web --patch "$PWD/examples/mcp-memory/mcp-reference-memory.cordis.yml"

该参考服务器存储本地知识图谱,并公开实体、关系、观察、读取、搜索和打开工具。它不需要模型或 embedding 服务。该示例将 JSONL 存储在 $HOME/.dsh-mcp-reference-memory.jsonl,而不是已安装的 npm 包目录中。若要覆盖该路径,请在启动 DSH 前设置 MEMORY_FILE_PATH

搜索只对实体名称、类型和 observation 进行不区分大小写的子字符串匹配,不是语义检索。该服务器不提供 embedding、自动摘要、冲突消解或遗忘策略。

Engram

go install github.com/Gentleman-Programming/engram/cmd/engram@v1.20.0
dsh web --patch "$PWD/examples/mcp-memory/engram.cordis.yml"

Engram 负责存储和项目选择:它默认使用 ~/.engram,从 DSH 工作目录检测 Git 项目,并接受 ENGRAM_DATA_DIRENGRAM_PROJECT 作为环境覆盖项。

可选的共用模型指令

如果服务器的工具描述无法可靠触发记忆使用,请将以下简短、与提供方无关的指令添加到你现有的模型指令中:

用户要求记住时调用写入工具;涉及历史信息时,主动检索并使用相关记忆。

这只是附加指导。示例不会替换 DSH 系统提示词中的 persona。

验证写入、新会话召回和使用

请在整个过程中使用一个唯一值,并保持提供方的存储范围不变:

  1. 在 DSH 会话 A 中提出:Remember that my validation drink is lapsang-<unique suffix>.。确认模型调用了提供方的写入工具,并且工具返回成功。
  2. 在同一个仍在运行的 Host 中创建 DSH 会话 B。不要复制会话 A 的对话。提出:What is my validation drink? Check memory.。确认模型调用了提供方的搜索或召回工具,并返回该值。
  3. 继续在会话 B 中提出:Use that preference to suggest one drink for the meeting.。确认回答使用了召回的值。

必须新建 DSH 会话,但不需要重启 Host。只有 MCP 子进程崩溃后才需要重启或执行 HMR(热模块替换),因为当前的通用客户端不会自动重连;其工具注册会一直保留到插件完成资源释放或成功重新同步,针对已关闭传输的调用可能失败。初始发现过程是异步的,因此发送第一条验证提示词前,请等待提供方的 mcp__... 工具出现。

接入其他 MCP 服务器

复制相同的通用结构,并使用唯一的 idserverName

- insert:
    - id: memory-my-server
      name: '@deepseek-ai/dsh-mcp-client'
      config:
        serverName: my-memory
        transport: stdio
        command: my-memory-mcp
        args: []
        env: {}
        cwd: !!js process.cwd()

对于远程服务器,请改用 transport: streamable-httpurlheaders。提供方专属的安装、身份、认证、模型、embedding、持久化和许可仍由提供方负责。