DeepSeek Harness 的 mcp-memory 示例:手把手教程
面向完全零基础的小白。读完你就能明白:什么是 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 Memory 或 Memorix——它们都是
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.yml 或 engram.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. 我想接别的记忆服务器,怎么办?
照葫芦画瓢,复制下面这段,把 id、serverName 和 command 改成你自己的:
- 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,并加上url和headers。
记住分工: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。
参考资料
- DSH 仓库:https://github.com/deepseek-ai/deepseek-harness
- mcp-memory 示例目录:https://github.com/deepseek-ai/deepseek-harness/tree/master/examples/mcp-memory
- MCP 官方记忆参考服务器:https://github.com/modelcontextprotocol/servers/tree/main/src/memory
本文基于仓库
master分支(2026-08 左右)整理。DSH 还在快速迭代,具体命令和版本号可能变化,遇到问题以仓库最新 README 为准。
更多推荐


所有评论(0)