普通的 AI 每次对话都是「失忆」的——关掉窗口,它就不认识你了。
Mem0 解决的问题就是这个。它像一个动态知识库,不是传统那种「把文件分门别类存好、需要的时候自己去翻」的档案柜。它的工作机制更像人脑:
你不需要记得你跟 AI 说过什么。它替你记得,到了该用的时候自己就跳出来了。
这就是我们要搭的东西:一个真正有记忆的 Hermes。
前置准备
- 获取对话模型(商汤 / OpenCodeGo,二选一)
- 方案 A:注册商汤科技 —— 打开 https://www.sensenova.cn/ 注册账号,进入控制台创建 API Key,复制保存好(格式类似 sk-xxxxx)。API 端点:https://platform.sensenova.cn。商汤提供免费额度,DeepSeek V4 Flash 模型可以免费用,放心注册
- 方案 B:OpenCodeGo 免费模型(推荐,零注册零费用) —— 不用注册、不用登录、不用花钱。Base URL:https://opencode.ai/zen(Hermes Studio 会自动补全 /v1,别手动加),Key 固定填 public。完整配置见第二步
- 注册硅基流动,获取 API Key
- 打开 https://siliconflow.cn/ 注册账号,进入控制台创建 API Key
- 硅基流动的 BAAI/bge-m3 嵌入模型有免费额度
- 下载安装包
- Hermes Studio 桌面版:https://hermes-studio.ai/
- Qdrant Windows 版本:https://github.com/qdrant/qdrant/releases/
也可以从夸克网盘下载我打包好的安装包:Hermes Studio 桌面版安装程序(.exe,安装时选 Cloudflare 源)+ Qdrant Windows 桌面版(qdrant.exe,解压即用)。
链接:https://pan.quark.cn/s/cb5f60be91f0 提取码:FmLC
第一步:安装和启动
启动顺序非常重要
必须先开 Qdrant,再开 Hermes。Hermes 启动时会读取 mem0.json 并尝试连接 Qdrant,如果 Qdrant 没先跑起来,mem0 初始化就会失败——后面再怎么折腾,记忆系统也不会工作。你甚至看不出报错,就是记忆死活不生效。
记住:先开数据库,再开软件。
安装 Hermes Studio
- 双击安装程序
- 如果 Windows 弹出「Windows 已保护你的电脑」的蓝色警告框——这是因为安装包没有微软数字签名,不是病毒。点击「更多信息」(或「查看更多」),再点击「仍要运行」,之后正常安装即可
- 安装时选 Cloudflare 源
- 安装完成后,桌面会出现 Hermes Studio 图标
- 先别急着打开它,先把下面的 Qdrant 启动
启动 Qdrant(必须先做)
- 把压缩包里的 qdrant.exe 解压到某个目录(比如 C:\qdrant\)
- 双击 qdrant.exe,出现命令行窗口,保持这个窗口开着不要关
- Qdrant 运行在 localhost:6333
现在可以启动 Hermes 了
- Qdrant 窗口确认开着之后,双击桌面上的 Hermes Studio 图标
- Hermes 启动时会自动连接 localhost:6333 上的 Qdrant
第二步:在 Hermes Studio 中配置模型(商汤 / OpenCodeGo)
Hermes Studio 自带了很多内置模型提供商,但商汤和 OpenCodeGo 都需要手动添加。下面两种方案任选其一,推荐方案 B——连注册都省了。
- 打开 Hermes Studio,看左边那一排导航按钮,滑到最下面,点击「模型」
- 进入模型管理页面后,找到「新增 Provider」按钮,选择「自定义」
- 填写以下信息(按你选的方案填):
- 方案 A(商汤) —— 名称:商汤;API 端点:https://platform.sensenova.cn;API Key:粘贴你在商汤控制台创建的 Key;点击「获取模型」,在模型列表中勾选 DeepSeek V4 Flash
- 方案 B(OpenCodeGo) —— 名称:OpenCodeGo;API 端点:https://opencode.ai/zen(别加 /v1,Hermes Studio 会自动补全,加了反而连不上);API Key:填 public;点击「获取模型」,在模型列表中勾选 big-pickle(推荐)
- 点击保存,返回主界面
请求地址(Base URL):https://opencode.ai/zen/v1 —— 注意:这是接口本身的地址;在 Hermes Studio 里填 API 端点时要去掉 /v1,只填 https://opencode.ai/zen,客户端会自动补全
Chat 接口:https://opencode.ai/zen/v1/chat/completions(OpenAI 兼容格式)
模型列表:https://opencode.ai/zen/v1/models(这个端点不需要 key 也能访问)
Key:public —— 标准 Bearer 鉴权(Authorization: Bearer public),不需要登录、不需要花钱
注意:别用 zen/go/v1 路径
https://opencode.ai/zen/go/v1 是 Claude Code 专属网关路径,不认免费模型,实测会报 Model not supported。一律用 https://opencode.ai/zen/v1。
实测可用的免费模型:
| 模型 ID | 备注 |
|---|---|
| big-pickle | 响应最快,神秘模型,推荐首选 |
| laguna-s-2.1-free | 响应快 |
| deepseek-v4-flash-free | DeepSeek 家的,但很慢(38 秒左右),可能要重试 |
| mimo-v2.5-free | 可用 |
| longcat-2.0-free | 可用 |
| nemotron-3-ultra-free | 可用 |
| ling-3.0-tiny-free | ⚠️ 暂时不稳定 —— 上游 503(临时故障) |
| north-mini-code-free | ⚠️ 暂时不稳定 —— 上游 401(可能要单独鉴权) |
特别注意:有两个「模型」入口,别点错了
左边导航栏的「模型」——点这个,这是全局模型管理,能新增 Provider。
右边设置页面里也有一个「模型」标签——绝对不要点!右边那个是改当前 Profile 的模型配置,跟新增 Provider 完全不是一回事。
记住:只看左边导航栏,找到最下面那个「模型」,点它。别碰右边的。
第三步:新建对话,让 AI 执行三个任务
上面这些都只是搭环境,接下来才是真正的「装大脑」。
点击左上角「新建对话」,右下角创建,然后把下面这段话完整复制发送给 AI:「帮我完成下面三个任务,一步一步来。」
任务一:安装 Mem0 插件
Hermes Studio 自带一个 Python 虚拟环境,位置在这里(把【版本号】换成你电脑上的实际文件夹名,比如 0.18.0):
打开命令行(Win+R → 输入 cmd),用 cd 命令进入上面那个目录,然后用清华镜像源安装 mem0:
任务二:配置 mem0.json 和启用 Mem0 插件
2.1 创建 mem0.json —— 在 %USERPROFILE%\.hermes\ 下面创建一个新文件,叫 mem0.json,内容如下:
上面的 mem0.json 里,llm 段按你的方案二选一(embedder 段和 vector_store 段两种方案都一样,保持不变):
选方案 B 的话,llm 段改成下面这样:
api_key 不要照抄
方案 A:llm 下的 api_key 填你在商汤科技控制台创建的 Key;embedder 下的 api_key 填你在硅基流动控制台创建的 Key。
方案 B:llm 下的 api_key 固定填 public(OpenCodeGo 不需要注册);embedder 下的 api_key 仍然填硅基流动的 Key——OpenCodeGo 只提供对话模型、不提供嵌入模型,所以 embedding 这一步还是得靠硅基流动。
2.2 在 config.yaml 里启用 Mem0 插件 —— 打开 %USERPROFILE%\.hermes\config.yaml,找到 memory: 这一段,改成这样:
这一步不做的后果很严重
Hermes 默认用自己内置的记忆系统,不是你刚装的 Mem0。你 mem0.json 写得再对、Qdrant 跑得再稳,它根本不读。
两个最关键的值:
provider: mem0 —— 把记忆系统从 Hermes 内置切换到 Mem0 插件。不设这个,前面全白做。
flush_min_turns: 6 —— Mem0 必须攒够 6 轮对话才会开始提取记忆。不是你说一句话它就记住,要先聊起来。
如果 config.yaml 里没有 memory: 这一段,让 AI 帮你加上。
任务三:修改 Mem0 源码,修复中文记忆存储
Mem0 有一个 bug:控制记忆语言的参数 use_input_language 在源码里硬编码成了 False。这导致一个很烦人的情况——你用中文跟 AI 聊天,它提取出来的记忆却是英文的。
找到这个文件(把【版本号】换成实际文件夹名):
- 用文本编辑器打开它,搜索 use_input_language,找到函数 generate_additive_extraction_prompt 的定义(大约第 515 行)。这个参数控制着记忆提取时要不要用你的输入语言。
- 把 use_input_language=False 改成 use_input_language=True
- 改完之后,第 536–548 行的 if use_input_language: 条件块就会生效——它会在 prompt 末尾追加一条语言指令,让 AI 用中文提取记忆
就改这一处参数默认值
不要改配置文件,不要动提示词变量。改完保存关闭。
第四步:重启并测试记忆系统
三个任务执行完之后,必须做三件事,不然记忆系统不会生效:
- 重启 Hermes Studio —— 关掉 Hermes Studio,重新打开。mem0 插件在启动时才会加载,不重启等于白装。
- 新建对话 —— 不要在刚才那个对话里测试。旧对话的系统提示词是硬编码进去的(这是 Hermes 为了保障缓冲率的机制),不会动态加载 mem0 配置。必须新建一个对话,新对话才会读取 mem0.json 并启用记忆系统。
- 测试 —— 常见误解:新建对话 → 说一句话 → 再新建对话 → 就能召回。不是这样的。Mem0 的 flush_min_turns 默认是 6,你必须先跟 AI 聊满至少 6 轮,它才会开始从对话里提取记忆、存进 Qdrant。
1. 新建对话,认真聊一会儿——至少 6 轮来回。比如你说「我叫张三」,AI 回「你好张三」;你说「我喜欢吃辣」,AI 回「了解了」;你说「我在北京上班」,AI 回「北京不错」……继续聊到 6 轮以上。
2. 聊完之后,再新建一个对话,问它:「我之前跟你说过我喜欢吃什么?」
3. 如果 AI 能回答出来,记忆系统通了。
如果没答出来,按下面的清单逐一检查:
- config.yaml 里 provider 是不是设成了 mem0?(不是默认值)
- config.yaml 里 flush_min_turns 是多少?(至少 6,太低会导致提取质量差)
- Qdrant 的窗口是不是还开着?
- mem0.json 里的 API Key 填对了没有(两个 Key 别搞反)?
- prompts.py 里那个参数改了吗?
- 是不是又跑回旧对话去测了?一定要新对话。
- 是不是才聊了一两句?不够 6 轮不会提取。
常见问题(踩过的坑)
| 问题 | 原因 | 解决 |
|---|---|---|
| Qdrant Web 界面打不开 | Windows 桌面版缺少 static 目录 | 从 GitHub 下载 dist-qdrant.zip 解压到 Qdrant 目录里 |
| 提示词改成中文了,记忆还是英文 | USER_MEMORY_EXTRACTION_PROMPT 是僵尸变量,代码里定义了但根本没调用它 | 别改提示词,改了没用 |
| mem0.json 里配了语言参数但没用 | use_input_language 在 configs/prompts.py 第 515 行硬编码为 False,配置文件传什么都白搭 | 必须改 prompts.py 源码里的 generate_additive_extraction_prompt 函数 |
| 配好了但记忆不生效 | 在旧对话里测试,旧对话不会动态加载 mem0 | 必须新建对话测试 |
| 安装 mem0 时下载慢/失败 | pip 默认从 PyPI 拉包,国内网速不行 | 用清华镜像源:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple |
| 不想注册商汤 / 免费额度不够用 | 商汤注册要手机号,额度也有限 | 改用 OpenCodeGo 免费模型:API 端点填 https://opencode.ai/zen(别加 /v1,客户端会自动补全),Key 填 public,模型选 big-pickle(详见第二步方案 B) |
每次使用的正确顺序(非常重要)
以后每天要用 Hermes + 记忆系统,顺序不能反:先开 Qdrant,再开 Hermes。两个窗口必须同时保持打开。
- 双击 qdrant.exe → 出现命令行窗口 → 别关
- 确认 Qdrant 窗口开着 → 双击 Hermes Studio 图标
- 两个窗口同时在桌面上 → 记忆系统正常工作
关掉任何一个,记忆系统就断了
Qdrant 窗口关了,Hermes 找不到数据库。Hermes 关了,当然也没法聊天。
简单记法:数据库是房子的地基,Hermes 是住里面的人。先打地基,再住人。
这东西装好之后
以后你跟 Hermes 聊天,它会像这样工作:
- 你说了什么
- Mem0 自动判断「这里面有没有值得记住的东西」
- 有的话,提取成一条记忆,存进 Qdrant 向量库
- 下次你聊到相关话题,它通过语义搜索自动把相关记忆调出来
- 注入到当前对话里——不需要你手动翻,不需要你主动搜索
就像一个真的会记住你的助手,而不是每次打开都是崭新的陌生人。
这套「动态记忆」的思路不只在 Hermes 上能用——Qdrant + Mem0 的组合,可以给任何 AI 应用装上长期记忆。