内容提要
本文介绍Hermes Agent的持续学习系统,区分SessionDB(原始历史)、Memory(精选事实)和Context Engine(请求上下文)。内置MemoryStore保存MEMORY.md和USER.md,外部Provider支持语义召回,后台Review提炼经验,Curator整理技能。四种记忆机制各有适用场景,形成从记住事实到学会方法的可观察、可审批闭环。
延伸解读
记忆分层:为什么不能把历史、记忆和上下文混为一谈
Hermes 将 SessionDB、Memory 和 Context Engine 明确分层:SessionDB 保存原始历史,Memory 保存精选事实,Context Engine 决定每次请求携带多少历史。这种设计避免了把所有历史都塞进 Prompt 的高成本,也保证了事实可追溯。对开发者而言,理解这三层区别有助于合理配置记忆机制,避免因混淆而误用。
内置记忆的容量限制与原子更新
内置 MemoryStore 对 MEMORY.md 和 USER.md 设有字符上限,写入超限时不会自动丢弃旧内容,而是返回错误让 Agent 在同一轮内合并或移除。更新采用锁、临时文件和原子 rename,确保并发安全。这种设计强调可控性,但要求 Agent 具备主动整理记忆的能力,否则可能频繁触发容量错误。
外部 Provider 的召回机制与容错
外部 MemoryProvider 通过 prefetch 在每轮召回相关记忆,但受超时限制,超时或异常时 fail-open,不阻塞主流程。召回内容以 sidecar 形式注入请求,不污染数据库中的原始用户消息。这种设计兼顾了语义召回的深度和系统的稳定性,但外部 Provider 一次只能激活一个,需权衡功能与隔离。
后台学习与人工审批的平衡
后台 Review 在主回答交付后运行,使用受限工具集提炼记忆或技能,且可配置写入审批。Curator 则定期整理 Agent 创建的技能,但不会静默硬删除,归档保留恢复路径。这种闭环设计强调可观察性和可控性,适合对 Agent 行为有审计需求的场景,但审批机制可能增加人工负担。
Q&A
Hermes Agent 的持续学习系统由哪些核心组件构成?
Hermes Agent 的持续学习系统由 SessionDB(原始历史存储)、Memory(精选事实存储)、Context Engine(请求上下文管理)、外部 Memory Provider(语义召回)、Background Review(后台复盘)和 Curator(技能整理)等组件构成,形成从记住事实到学会方法的闭环。
Hermes Agent 中 SessionDB、Memory 和 Context Engine 有什么区别?
SessionDB 保存原始历史(如消息、Prompt、用量),用于精确回看;Memory 保存精选事实(如 MEMORY.md、USER.md),用于长期记忆;Context Engine 决定每次请求实际携带多少历史,通过 select_context() 和 compress() 实现。
Hermes Agent 的内置 MemoryStore 如何管理记忆文件?
内置 MemoryStore 将记忆保存在 $HERMES_HOME/memories/ 下的 MEMORY.md 和 USER.md 文件中,有字符上限(MEMORY.md 2200 字符,USER.md 1375 字符)。Agent 初始化时读取并生成快照,通过 memory 工具(add/replace/remove)进行修改,使用原子写入确保一致性,并拒绝重复、提示注入和凭据外传。
Hermes Agent 的外部 Memory Provider 是如何工作的?
外部 Memory Provider 通过实现 system_prompt_block()、prefetch()、sync_turn() 等接口,在每轮对话前进行语义召回,召回内容被放入 <memory-context> 围栏并写入 sidecar,不污染原始用户消息。Turn 结束后的同步通过单 worker 队列异步进行,确保顺序和性能。
Hermes Agent 的后台 Review 机制是如何实现自我学习的?
后台 Review 在主回答交付后启动一个后台 AIAgent fork,仅允许使用 memory 和 skill 工具,回顾本轮对话,提炼值得保存的事实、偏好或可复用步骤,并写入 Memory 或创建/改进 Skill。该 fork 不连接外部 Memory Provider,且可配置审批和辅助模型。
Hermes Agent 中 Memory、External Provider、session_search 和 Skill 分别适用于什么场景?
Memory 适合保存少量关键事实和偏好,常驻会话快照;External Provider 适合语义检索、用户建模和知识图谱,按轮召回;session_search 用于搜索过去对话的原始证据;Skill 用于保存程序性知识,按需加载。
Hermes Agent 的 Curator 与 Background Review 有何不同?
Background Review 在主回答后运行,关注本轮学到了什么,输出新增或修改 Memory、创建或改进 Skill;Curator 按周期审查 Skill Library,关注长期积累的 Skill 是否值得保留,可整理或软归档低价值 Skill。