🧠 Hermes 分层记忆架构速记笔记

1. 核心理念:分层与协作

  • 核心隐喻:上下文窗口是“工作台”,不是“仓库”。将信息按特性分流至不同层级,才能实现高效、低成本的长期记忆。
  • 四层架构概览
    • 工作记忆:当前会话的上下文窗口,容量有限,会话结束即清空。
    • 持久记忆:精炼的“笔记本”,存储跨会话不变的事实与偏好(MEMORY.md / USER.md)。
    • 情景记忆:海量的“日记”,记录所有对话历史,通过检索按需召回(SQLite FTS5)。
    • 技能记忆:可复用的“肌肉记忆”,将成功经验固化为可调用的技能(SKILL.md)。

2. 关键实现与工程亮点

  • 工作记忆:三层 Prompt 设计

    • 结构Stable(不变的核心指令/工具指导) + Context(项目相关文件) + Volatile(会话变量/记忆快照)。
    • 目的:最大化 Prefix Cache(前缀缓存) 命中率。将变化频繁的部分置于末尾,确保前面的稳定部分可被缓存复用,显著降低 Token 成本。
  • 持久记忆:冻结快照模式

    • 机制:会话启动时,从磁盘加载记忆并冻结快照注入 Prompt。会话中对记忆的修改会实时落盘,但不会更新当前会话的 Prompt。
    • 价值:保证了整个会话期间 Prefix Cache 的绝对稳定,修改的记忆将在下一次会话中生效。
  • 情景记忆:按需检索与摘要

    • 流程FTS5 全文检索聚合 Top NAuxiliary LLM 生成摘要
    • 原则按需触发,而非自动检索。由 Agent 判断是否需要历史上下文并调用 session_search 工具,避免不必要的延迟和上下文膨胀。
  • 技能记忆:经验结晶化

    • 来源:通过 Background Review(后台异步反思) 机制,在对话结束后提炼高价值行为。
    • 管理:由 Curator 管理技能生命周期(pendingactivearchived/merged),确保技能库的精简与高效。

3. 四层协作时序

  1. T0 (启动):加载持久记忆快照,构建三层 System Prompt。
  2. T1 (预取):根据用户输入,预取相关记忆注入 <memory-context> 块。
  3. T2 (对话):Agent 在会话中可主动调用 session_search (情景) 或 memory 工具 (持久)。
  4. T3 (异步):对话结束,持久化记录,Background Review 异步运行,可能生成新技能。

4. 避坑指南:五大常见误区

  • Context 满了 = 记忆失效:错。触发的是压缩(保留头尾,中间摘要),而非丢弃。但重要信息仍需主动写入持久记忆。
  • 混淆情景与持久记忆USER.md稳定特征(如“喜欢简洁代码”),而非事件记录。事件应由情景记忆存储和检索。
  • 以为技能会自动触发:技能不会自动执行,必须通过 skill_manage 工具注册,并在 Prompt 中可见,由 Agent 自主决策调用。
  • 注册多个外部记忆 ProviderMemoryManager 仅支持一个外部 Provider,注册多个会被静默拒绝。
  • 绕过内容安全扫描:所有写入记忆的内容都会经过 _scan_memory_content() 扫描,防止 Prompt Injection 等安全风险,不可绕过。

🔗 原文链接 分层记忆架构:工作记忆/持久记忆/情景记忆/技能记忆四层怎么协作

On this page