Hermes Memory vs OpenClaw Memory 对比分析
技术架构对比
| 特性 | Hermes | OpenClaw (LanceDB-Pro) |
|---|
| 存储方式 | YAML 文件 | LanceDB 向量数据库 |
| 容量限制 | ~2200 字符(硬限制) | 无限制(33条才1.1MB) |
| 检索方式 | 全量注入(无需搜索) | 混合检索(Vector + BM25) |
| 自动化 | 手动调用 memory 工具 | 自动捕获/自动回忆钩子 |
| 分类系统 | 无 | preference/fact/decision/entity |
| 语义搜索 | 无 | 有(Jina embedding + rerank) |
| Scope 隥离 | 无 | 有(global/agent/custom) |
核心设计差异
Hermes:注入式
每次对话开始 → 全部 memory 内容直接注入到 prompt不需要检索 → 你说"eSIM"我就能看到相关记忆限制:2200字符 → 必须精简
工作流程:
- 系统启动时读取
~/.hermes/memory.yaml 和 ~/.hermes/user.yaml - 全量内容注入到每条消息的系统提示中
- Agent 直接看到所有记忆,无需搜索
OpenClaw:检索式
每次对话开始 → 向量搜索找到相关记忆 → 注入 top-K需要语义匹配 → 你说"保号方案"才能检索到 eSIM 信息容量大 → 可以存大量详细日志
工作流程:
before_agent_start 钩子触发自动回忆- 用户消息通过 embedding 转为向量
- LanceDB 执行混合检索(Vector + BM25)
- Jina Cross-Encoder rerank 重排序
- 注入 top-K 记忆到 prompt(最多3条)
Hermes 的另一种记忆:session_search
Hermes 还有一个 session_search 工具,可以搜索历史对话的完整 transcript(类似 OpenClaw 的 .jsonl 会话文件)。这是另一种形式的"长期记忆"。
| 特性 | memory 工具 | session_search 工具 |
|---|
| 存储内容 | 精炼的事实/偏好 | 完整对话 transcript |
| 搜索方式 | 全量注入 | LLM 关键词搜索 |
| 用途 | 跨会话记住用户偏好 | 回忆过去做了什么 |
设计理念对比
Hermes 设计理念
- 轻量 - 不依赖外部数据库服务
- 可靠 - YAML 文件不会崩溃
- 精简 - 2200字符限制迫使只存真正重要的事实
- 即时 - 不需要 embedding API 调用,直接注入
OpenClaw 设计理念
- 强大 - 混合检索 + rerank + 多层评分管线
- 自动化 - 无需手动管理,自动捕获有价值内容
- 容量大 - 可以存储详细日志、开发记录等
- 多 Scope - 不同 agent/项目可以隔离记忆
适用场景
| 场景 | 推荐方案 |
|---|
| 记住用户基本信息、偏好 | Hermes memory |
| 记住项目配置、API密钥 | Hermes memory |
| 存储开发日志、工作记录 | OpenClaw LanceDB |
| 搜索历史对话内容 | Hermes session_search |
| 多 agent 环境隔离记忆 | OpenClaw LanceDB |
形象比喻
- Hermes memory = 你随身带的小笔记本(只记关键信息)
- OpenClaw memory = 大型档案库(可以存所有东西,需要搜索)
文件位置
| 系统 | 存储路径 |
|---|
| Hermes memory | ~/.hermes/memory.yaml |
| Hermes user | ~/.hermes/user.yaml |
| Hermes session history | 数据库内部存储 |
| OpenClaw LanceDB | ~/.openclaw/memory/lancedb-pro/memories.lance/ |