Title: Deep Dive into the 4-Layer Memory Architecture of Hermes ...
URL Source: https://www.bestblogs.dev/status/2035884966308139388
Published Time: 2026-03-23 01:02:55
Markdown Content: 深入理解 Hermes Agent 的四层记忆系统,并用它修复了 OpenClaw 的记忆缺陷 Manthan Gupta 基于 Hermes Agent 开源项目和官方文档的源代码级剖析。解决一个核心问题:开源自主 Agent 如何实现持久记忆?通过直接追踪提示构建、会话持久化、记忆刷新与检索路径,给出了清晰答案——Hermes Agent 不依赖单一记忆机制,它构建了四层互补架构,核心设计哲学是“保持提示稳定以支持缓存,将其余全部推向工具”。
- 上下文结构基础:提示稳定性优先
· 前缀(System + Memory + User)在会话启动时一次性渲染并冻结。
· 后续所有可变内容(历史记录、大型上下文)均通过工具按需检索。
· 这一决策直接服务于 OpenAI/OpenRouter 等提供商的提示缓存,显著降低延迟与成本,是整个架构的基石。
- 四层记忆架构详解
· 存储位置:\~/.hermes/memories/,总计约 1300 tokens(字符限额,非token限额,模型无关)。
· 内容严格筛选:仅保存用户偏好、环境事实、重复纠正、稳定约定;绝不保存任务进度、临时 TODO 或会话结果。
· 机制:会话启动时快照注入,后续写入立即落盘,但不破坏当前会话提示。压缩前会触发“记忆刷新”让模型主动提炼持久事实。
· 工具:单一 memory 工具(add/replace/remove),支持子串匹配与注入攻击防护。
层2:会话搜索(session_search)——情境记忆
· 底层:SQLite 数据库(\~/.hermes/state.db),含 sessions、messages 表及 FTS5 全文索引,支持亲缘关系追溯。
· 流程:模型需要历史信息时,检索→摘要→返回,绝不全量塞入提示。
· 定位:解决“上周我们讨论过什么?”类问题,与层1的“热事实”形成冷热分离。
层3:技能(Skills)——程序性记忆
· 存储:\~/.hermes/skills/,作为可复用工作流文档。
· 注入策略:仅加载 Skills 索引,需用时再拉取完整内容,避免 token 膨胀。
· 意义:传统记忆系统多关注“知道什么”,Hermes 额外解决“知道怎么做”,实现真正自进化。
层4:可选 Honcho 层——深度用户建模
· 混合模式下提供跨会话、跨设备语义画像与双向建模(用户+AI 自身)。
· 集成技巧:首轮烘焙入缓存提示,后续轮次仅附加到用户消息,避免破坏稳定前缀。
- 与 OpenClaw 的核心差异
· 提示边界:OpenClaw 倾向于将更多内容塞入提示;Hermes 严格限热记忆,仅留高价值事实。
· 存储哲学:OpenClaw 以文件为真相源;Hermes 以 SQLite 为历史真相,提示仅作缓存快照。
· 缓存意识:Hermes 将提示稳定性视为一等约束,OpenClaw 相对更“搜索导向”。
Hermes 因此更适合生产级长时运行场景。
- 设计亮点与客观评估
· 热/冷分离 + 程序性记忆 + 压缩前刷新,形成真正的“分层连续性架构”。
· 模型无关、字符限额、注入防护、缓存友好——工程细节极致务实。
· 结论精炼:“不是记住更多,而是记住正确的事、在正确层级、以正确成本。”
潜在局限(基于代码逻辑与社区反馈):
· 依赖模型在刷新环节的判断,可能遗漏部分细节(SQLite 并非全量自动保存)。
· Skills 与 Honcho 需手动/可选启用,初次体验曲线稍陡。
· 长期跨设备一致性仍依赖 Honcho 扩展,并非开箱即用。