面向完全零基础的小白。读完你就能明白:什么是 mcp-memory、它是干嘛的、怎么用起来。


0. 先别急着装:这一节讲人话讲清楚概念

在动手之前,先把三个"看起来很吓人"的名词拆开。

0.1 DeepSeek Harness(简称 DSH)是什么?

想象 AI 不是一个小程序,而是一个"插座"。你想让它干活,就得往插座上插各种"插件"。

DSH 就是 DeepSeek 官方做的一个插件式 AI 智能体框架。它的核心口号是 Everything is a Plugin(一切都是插件)

它现在还处于"开发预览版",意思是东西在快速迭代,接口可能经常变,先别指望它很稳定。

安装和启动很简单:

npx @deepseek-ai/dsh web

这会在本机启动一个网页界面,默认地址是 http://127.0.0.1:3080

0.2 MCP 是什么?

MCP(Model Context Protocol,模型上下文协议)是一个通用"插头"标准

打个比方:以前每个 AI 要接一个新工具(比如日历、数据库、记忆库),都得单独写一套对接代码,很麻烦。MCP 就是给这些工具统一了插头——只要工具支持 MCP,AI 就能直接插上去用

0.3 “记忆”(Memory)解决什么问题?

你有没有这种感觉:跟 AI 聊完天,换个新会话,它就把你忘了,之前说的全都不记得。

这不是它笨,而是大模型的"上下文"是临时的。为了让 AI 能长期记住你的偏好、你的项目信息,"记忆系统"就出现了——它把重要信息存起来,下次 AI 需要时再查回来


1. mcp-memory 到底是个啥?

mcp-memory 是 DSH 官方仓库里 examples 目录下的一个示例文件夹,里面放了三套现成的、默认关闭的"记忆服务器"参考配置

地址:https://github.com/deepseek-ai/deepseek-harness/tree/master/examples/mcp-memory

它的作用一句话概括:

让 DSH 通过 MCP 协议,接上一个第三方的"长期记忆"服务器,让 AI 能记住并回忆信息。

它不自己实现记忆功能,而是给你怎么接的例子——选一个记忆系统,照抄配置就能用。

⚠️ 重要提醒:这三份是第三方的记忆系统配置。DeepSeek 收录它们只是作为"互操作性示例",不代表官方推荐、合作或持续维护


2. 三套记忆系统,怎么选?

记忆系统 已测试版本 连接方式 你需要提前准备什么
Memorix memorix@1.3.0 stdio Node 22.18+,先 npm install --global memorix@1.3.0
MCP Reference Memory(官方参考实现) @modelcontextprotocol/server-memory@2026.7.4 stdio npm install --global @modelcontextprotocol/server-memory@2026.7.4
Engram v1.20.0 stdio Go 1.25.10+,先 go install github.com/Gentleman-Programming/engram/cmd/engram@v1.20.0

小白推荐选哪个?

  • 如果你只会用 Node(装前端依赖那种),选 MCP Reference MemoryMemorix——它们都是 npm 全局安装,最省事。
  • 三个都不需要额外的模型或 embedding 服务就能跑起来,这点对新手很友好。

传输方式说明:三套都是 stdio,意思是 DSH 会直接帮你启动这个记忆程序,跟它用标准输入输出通信。还有一个 streamable-http 方式,那个需要你自己先启动一个 HTTP 服务,新手先用 stdio 就好。


3. 动手!三步把记忆用起来

我们用 MCP Reference Memory 当例子(因为它最简单、最"官方")。

第 1 步:先装好记忆程序(不能让 DSH 帮你装)

DSH 不会帮你下载安装记忆服务器,所以你要先手动装:

npm install --global @modelcontextprotocol/server-memory@2026.7.4

装完之后,命令行会多一个叫 mcp-server-memory 的命令。

第 2 步:告诉 DSH 用这个记忆

进入 DSH 仓库目录后,运行:

dsh web --patch "$PWD/examples/mcp-memory/mcp-reference-memory.cordis.yml"
  • --patch 意思是"额外应用一份配置补丁"。
  • mcp-reference-memory.cordis.yml 就是这个记忆系统的配置。

想换成另外两个? 把文件名换成 memorix.cordis.ymlengram.cordis.yml 就行。

不用的时候? 不带 --patch 启动,三个记忆全部保持关闭。

第 3 步:在网页界面里验证

启动后,DSH 会在网页里发现这个记忆服务器,并把它的工具以 mcp__reference_memory__xxx 这种名字暴露出来。注意:发现过程是异步的,先等几秒,看到 mcp__... 工具出现了再开始测试。

4. 测试:AI 真的能"记住"吗?

用官方推荐的三个步骤,一步步验证"写入 → 新会话召回 → 使用"。
全程用同一个唯一值(比如把 unique suffix 换成你自己的编号,像 20260816),免得跟别人的记忆混了。

第 1 步:会话 A 写入

在会话 A 里问:

Remember that my validation drink is lapsang-20260816.
(意思是:记住我的验证饮品是 lapsang-20260816。)
确认:模型调用了记忆的写入工具,并且工具返回成功。

第 2 步:新建会话 B,召回

注意! 新建一个 DSH 会话 B(不要复制会话 A 的对话,别偷看聊天记录),然后问:

What is my validation drink? Check memory.
(我的验证饮品是什么?查一下记忆。)
确认:模型调用了记忆的搜索/召回工具,并且返回了 lapsang-20260816

第 3 步:会话 B 里用它干活

继续在会话 B 里问:

Use that preference to suggest one drink for the meeting.
(用这个偏好,给会议推荐一款饮品。)
确认:AI 的回答用上了刚才从记忆里召回的偏好


验证成功就说明记忆生效了!
几个贴心小提示:

  • 召回测试必须新建会话,但不用重启整个 DSH
  • 只有记忆程序崩溃了才需要重启或做 HMR(热更新),因为当前的通用客户端不会自动重连
  • 如果发现模型老是不主动用记忆,可以在你的模型指令里加一句:

    “用户要求记住某事时,调用记忆写入工具;历史信息可能相关时,检索记忆并使用相关结果。”


5. 如果想一直用(不用每次敲 --patch)

--patch 只在这一次启动里生效。想以后每次都用,就把那份配置里的 insert 补丁合并到你自己的"用户补丁层"里:

  • 只想对某个 profile 生效:写入 $DSH_HOME/profiles/<名字>/cordis.patch.yml
  • 对本机所有 profile 生效:写入 $DSH_HOME/cordis.patch.yml

⚠️ 别直接覆盖已有文件——里面可能已经写着你别的补丁,会丢。


6. 看看配置长啥样(附逐行解释)

拿 MCP Reference Memory 的配置当例子:

# 上面这些 # 开头的是注释,提醒你先装好程序
- insert:                                   # "insert" = 往 DSH 里插入一项配置
    - id: memory-mcp-reference              # 这行的唯一 id
      name: '@deepseek-ai/dsh-mcp-client'   # 用哪个 MCP 客户端插件
      config:                               # 下面是这个客户端的具体配置
        serverName: reference_memory        # 服务器名字,会出现在 mcp__reference_memory__xxx 里
        transport: stdio                    # 用 stdio 方式通信
        command: mcp-server-memory          # 启动哪个命令
        cwd: !!js process.cwd()             # 在哪个目录下启动(DSH 当前目录)
        env:                                # 给这个程序设置的环境变量
          MEMORY_FILE_PATH: !!js >-         # 记忆存哪个文件
            process.env.MEMORY_FILE_PATH?.trim() || process.getBuiltinModule('node:path').join(process.getBuiltinModule('node:os').homedir(), '.dsh-mcp-reference-memory.jsonl')

那句长长的 MEMORY_FILE_PATH 翻译成大白话就是:

“如果启动 DSH 前你设了 MEMORY_FILE_PATH 环境变量,就用它;没设的话,就默认存到 ~/.dsh-mcp-reference-memory.jsonl。”
所以如果你想自定义记忆文件路径,启动前先设置:

set MEMORY_FILE_PATH=D:\my-memory\memory.jsonl   # Windows
dsh web --patch ...

安全提醒:不要直接把密码、API 密钥这类敏感信息写进 YAML,要通过 config.env 传环境变量。DSH 在启动记忆程序前,还会主动把环境中看起来像"凭据"的变量和所有 DSH_* 变量清掉,防止泄露。

7. 我想接别的记忆服务器,怎么办?

照葫芦画瓢,复制下面这段,把 idserverNamecommand 改成你自己的:

- 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()
  • id:必须唯一,不能跟别人撞。
  • serverName:也唯一,会出现在工具名 mcp__<serverName>__<tool> 里。
    如果你的服务器是远程 HTTP 的,就把 transport 换成 streamable-http,并加上 urlheaders

记住分工:DSH 只负责"连接 + 把工具暴露给 AI"。安装、身份、认证、模型、embedding、数据存储、授权这些,全是记忆服务器提供商自己的事,别指望 DSH 帮你搞定。


8. 一张图总结整件事

你(网页界面)──> DSH ──MCP协议──> 记忆服务器(Memorix / Reference Memory / Engram)
                     │
                     │  以 mcp__reference_memory__xxx 形式把工具暴露给 AI
                     ▼
             AI 学会了"记住"和"回忆"
  • DSH:插座,负责管理和启动插件。
  • MCP:统一的插头标准。
  • mcp-memory:官方给的"怎么接记忆"的示例配置。
  • 记忆服务器:真正干活的第三方案件,负责把信息存起来、找回来。

9. 常见问题(FAQ)

Q:为什么我装了却用不了?
A:先确认记忆程序装上了(命令行能敲出 mcp-server-memory / memorix / engram),再看版本对不对(文中标了测试版本)。
Q:记忆会被 AI 自动整理吗?
A:不会。以 Reference Memory 为例,搜索只是对实体名、类型、观察做不区分大小写的子串匹配,不是"语义检索",也没有自动摘要、冲突消解、遗忘策略。别指望它智能。
Q:换了会话忘了吗?
A:只要没重启,DSH 里新建会话也能查到记忆(这就是"新会话召回"的测试)。
Q:程序崩了会怎样?
A:当前客户端不会自动重连,工具注册还在但调用可能失败,需要你手动重启或 HMR。

参考资料

本文基于仓库 master 分支(2026-08 左右)整理。DSH 还在快速迭代,具体命令和版本号可能变化,遇到问题以仓库最新 README 为准。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐