二、第一层:内置记忆
2.1 是什么
Hermes 自带的简单键值存储,存在 SQLite 数据库里。这是永远生效的基础记忆层。
2.2 存什么
两类内容:
| 类型 | 内容 | 字符限制 |
|---|---|---|
memory |
个人笔记:工具路径、配置、教训 | 3000 字符 |
user |
用户画像:姓名、偏好、工作领域 | 1975 字符 |
2.3 配置位置
~/.hermes/config.yaml 第 317-324 行:
memory:
memory_enabled: true # 启用内置记忆
user_profile_enabled: true # 启用用户画像
memory_char_limit: 3000 # memory 最多 3000 字符
user_char_limit: 1975 # user 最多 1975 字符
provider: hindsight # 外部提供商
flush_min_turns: 3 # 最少 3 轮后才写入
nudge_interval: 10 # 每 10 轮提示一次
2.4 工作方式
每次对话开始时:
1. 从 memory_store.db 读取记忆
2. 注入到系统提示词的 MEMORY 和 USER PROFILE 区块
3. 你看到的对话开头那两段内容就是从这里来的
2.5 数据存储
- 数据库:
~/.hermes/memory_store.db(SQLite) - 管理工具:
memory工具(add、replace、remove)
三、第二层:外部记忆提供商
3.1 是什么
可选的增强层,用向量数据库存储和检索,比内置记忆更智能。
3.2 你当前使用的:Hindsight
配置文件: ~/.hermes/hindsight/config.json
{
"mode": "local_embedded",
"llm_provider": "openrouter",
"llm_model": "google/gemini-3-flash-preview:free",
"bank_id": "hermes",
"auto_retain": true,
"retain_every_n_turns": 2,
"retain_async": true,
"auto_recall": true,
"recall_budget": "mid",
"memory_mode": "hybrid"
}
3.3 Hindsight 的作用
- 自动保存对话片段:每 2 轮对话,用 Gemini 模型提取关键信息,存入向量数据库
- 智能召回:新对话开始时,根据相关性召回历史对话片段
- 解决崩溃丢失问题:会话中途崩溃导致上下文丢失,Hindsight 通过频繁保存解决了
3.4 其他可选提供商
| 提供商 | 特点 | 认证方式 |
|---|---|---|
honcho |
本地/云端,支持多用户隔离 | API key / 本地 |
mem0 |
云端记忆服务 | API key / 本地 |
holographic |
本地向量存储 | 本地 |
openviking |
API key / 本地 | API key / 本地 |
retaindb |
API key / 本地 | API key / 本地 |
supermemory |
云端记忆服务 | API key |
3.5 查看当前状态
hermes memory status
四、第三层:MentisDB(独立外部系统)
4.1 重要结论
MentisDB 不属于 Hermes 记忆系统,它是独立的 MCP 服务。
4.2 定位区别
| 系统 | 归属 | 自动/手动 | 用途 |
|---|---|---|---|
| 内置记忆 | Hermes 核心 | 自动 | 简单笔记、用户画像 |
| Hindsight | Hermes 插件 | 自动 | 对话片段保存与召回 |
| MentisDB | 独立 MCP 服务 | 手动调用 | 结构化知识、跨 CLI 共享 |
4.3 MentisDB 的特点
- 需要主动调用工具:
mentisdb_append- 添加记忆mentisdb_search- 搜索记忆-
mentisdb_ranked_search- 按相关性排序搜索 -
存储结构化的"思想":
- Summary(总结)
- Decision(决策)
- Insight(洞察)
- Mistake(错误)
- Correction(修正)
-
LessonLearned(教训)
-
跨 CLI 共享:
- Hermes、Claude Code、Codex、OpenClaw 都能访问同一条链
- 你当前有 14 条记忆存在
borganism-brain链上
4.4 MentisDB 不参与自动注入
MentisDB 需要在对话中主动调用,不会自动注入到系统提示词。
五、运行时注入详解
5.1 是什么
对话开始时,Hermes 把各种记忆"组装"进系统提示词的过程。
5.2 注入流程
对话开始
↓
1. 读取内置记忆
- memory_store.db → MEMORY 区块
- memory_store.db → USER PROFILE 区块
↓
2. 外部提供商召回
- Hindsight 根据相关性召回历史对话片段
- 注入到上下文中
↓
3. 组装系统提示词
- SOUL.md(身份定义)
- MEMORY(内置记忆)
- USER PROFILE(用户画像)
- Skills(技能文档)
- MCP 资源(如 MentisDB)
↓
4. 开始对话
5.3 你看到的注入效果
每次对话开头都有这两段:
══════════════════════════════════════════════
MEMORY (your personal notes) [99% — 2,999/3,000 chars]
══════════════════════════════════════════════
xiaohongshu-cli/douyin-cli: ...
...
══════════════════════════════════════════════
USER PROFILE (who the user is) [92% — 1,834/1,975 chars]
══════════════════════════════════════════════
User: Niki. Securities advisory professional; ...
这就是内置记忆 + 外部召回的结果。
六、三层记忆的协作关系
6.1 各层职责
| 层级 | 触发方式 | 存储内容 | 适用场景 |
|---|---|---|---|
| 内置记忆 | 自动注入 | 简单笔记、用户画像 | 每次对话都需要的基础信息 |
| Hindsight | 自动召回 | 对话片段 | 智能召回相关历史 |
| MentisDB | 手动调用 | 结构化知识 | 跨 CLI 共享的长期知识 |
6.2 数据流向
写入:
- 内置记忆:memory 工具手动写入 → memory_store.db
- Hindsight:自动保存(每2轮对话)→ 向量数据库
- MentisDB:mentisdb_append 手动写入 → 思维链存储
读取:
- 内置记忆:自动注入 → MEMORY 区块
- Hindsight:自动召回 → 历史片段
- MentisDB:mentisdb_search 手动搜索 → 搜索结果
七、你的当前配置总结
| 层级 | 状态 | 配置详情 |
|---|---|---|
| 内置记忆 | ✓ 启用 | memory_enabled: true,3000 字符限制 |
| 用户画像 | ✓ 启用 | user_profile_enabled: true,1975 字符限制 |
| 外部提供商 | ✓ Hindsight | local_embedded 模式,每 2 轮保存 |
| MentisDB | ✓ MCP | 14 条记忆,跨 CLI 共享 |
八、最佳实践建议
8.1 什么存内置记忆
- 用户偏好(沟通风格、工作习惯)
- 环境配置(工具路径、API 端点)
- 项目约定(目录结构、命名规范)
- 教训总结(踩过的坑)
8.2 什么存 MentisDB
- 结构化的长期知识(项目配置、工作流)
- 重要决策及其理由
- 跨 CLI 需要共享的信息
- 需要版本追溯的内容
8.3 Hindsight 自动处理
- 对话中的关键信息提取
- 历史对话的相关性召回
- 会话崩溃后的上下文恢复
九、常用命令
# 查看记忆状态
hermes memory status
# 查看当前配置
hermes config | grep -A 10 "memory:"
# 编辑配置
hermes config edit
# 查看 Hindsight 配置
cat ~/.hermes/hindsight/config.json
十、总结
Hermes 的记忆系统是三层架构:
┌─────────────────────────────────────────────────────┐
│ 运行时注入(每次对话生效) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 内置记忆 │ │ Hindsight │ │ MentisDB │ │
│ │ (自动注入) │ │ (自动召回) │ │ (手动调用) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ↓ ↓ ↓ │
│ MEMORY 区块 历史对话片段 搜索结果 │
│ USER PROFILE │
└─────────────────────────────────────────────────────┘
- 内置记忆:简单、可靠、永远生效,适合存储基础信息
- Hindsight:智能、自动、解决崩溃问题,适合对话片段保存
- MentisDB:独立、结构化、跨 CLI 共享,适合长期知识管理
三层协作,共同构成了 Hermes 的持久记忆能力。