系统解析

Hermes 记忆系统详解

二、第一层:内置记忆

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 数据存储


三、第二层:外部记忆提供商

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 的作用

  1. 自动保存对话片段:每 2 轮对话,用 Gemini 模型提取关键信息,存入向量数据库
  2. 智能召回:新对话开始时,根据相关性召回历史对话片段
  3. 解决崩溃丢失问题:会话中途崩溃导致上下文丢失,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 的特点

  1. 需要主动调用工具:
  2. mentisdb_append - 添加记忆
  3. mentisdb_search - 搜索记忆
  4. mentisdb_ranked_search - 按相关性排序搜索

  5. 存储结构化的"思想":

  6. Summary(总结)
  7. Decision(决策)
  8. Insight(洞察)
  9. Mistake(错误)
  10. Correction(修正)
  11. LessonLearned(教训)

  12. 跨 CLI 共享:

  13. Hermes、Claude Code、Codex、OpenClaw 都能访问同一条链
  14. 你当前有 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 什么存内置记忆

8.2 什么存 MentisDB

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                                        │
└─────────────────────────────────────────────────────┘
  1. 内置记忆:简单、可靠、永远生效,适合存储基础信息
  2. Hindsight:智能、自动、解决崩溃问题,适合对话片段保存
  3. MentisDB:独立、结构化、跨 CLI 共享,适合长期知识管理

三层协作,共同构成了 Hermes 的持久记忆能力。


#Hermes#记忆系统#Hindsight#MentisDB#MCP