Hotdry.

Article

Hermes Agent 自适应记忆演化架构:从静态提示到动态成长的工程实践

解析 Hermes Agent 的双层记忆架构与技能自演化机制,提供记忆容量管理、技能创建触发条件及跨会话召回的工程化参数与落地清单。

2026-06-04ai-systems

当前大多数 AI Agent 的实现停留在 "单次会话上下文" 的层面 —— 用户每次开启对话,Agent 都仿佛第一次认识对方。这种设计虽然简化了工程复杂度,却严重限制了 Agent 向 "长期伙伴" 演化的可能性。Nous Research 开源的 Hermes Agent 通过一套精心设计的自适应记忆演化架构,正在尝试突破这一瓶颈。

双层记忆架构:环境事实与用户画像的分离存储

Hermes Agent 的核心记忆系统由两个文件构成:MEMORY.md 和 USER.md。这种分离设计并非简单的组织策略,而是基于功能差异的刻意工程选择。

MEMORY.md 承载的是 "环境事实"—— 操作系统版本、项目技术栈、常用工具路径、已发现的工作流程等客观信息,容量上限为 2,200 字符(约 800 tokens)。USER.md 则专门记录用户画像:沟通风格偏好、技术背景、时区、特定禁忌等主观信息,容量上限 1,375 字符(约 500 tokens)。两者合计约 1,300 tokens,在每次会话开始时以 "冻结快照" 形式注入系统提示。

这种设计的精妙之处在于前缀缓存优化。由于记忆内容在会话中途不会动态变化,LLM 的前缀缓存得以保持,显著降低长会话的推理成本。当 Agent 通过 memory 工具执行 add/replace/remove 操作时,变更立即持久化到磁盘,但直到下次会话才会反映在系统提示中。

Agent 通过子串匹配机制更新记忆条目,无需提供完整文本。例如,若记忆中存在 "User prefers dark mode in all editors",只需传入 old_text="dark mode" 即可定位并替换。这种设计既简化了 Agent 的操作,又避免了精确匹配带来的 fragility。

技能系统的渐进式演化

如果说 MEMORY.md/USER.md 是 Agent 的 "陈述性记忆",那么 Skills 系统就是其 "程序性记忆"—— 不仅记住 "是什么",更记住 "怎么做"。

Hermes Agent 采用渐进式披露模式管理技能加载:Level 0 仅返回技能列表(名称、描述、分类),约 3k tokens;Level 1 按需加载完整 SKILL.md 内容;Level 2 则针对特定引用文件进行深度检索。这种分层策略确保系统提示始终维持在合理规模,避免技能膨胀导致的上下文窗口压力。

更具创新性的是自主技能创建机制。当 Agent 完成一个涉及 5 次以上工具调用的复杂任务,或在试错中找到正确路径后,它会通过 skill_manage 工具自动将这一经验固化为新技能。技能创建后,Agent 可在后续类似场景中通过 /<skill-name> 快捷调用,实现经验的复用与传播。

技能文件遵循 agentskills.io 开放标准,采用 YAML Frontmatter + Markdown 的混合格式,支持平台限定(macOS/Linux/Windows)、条件激活(基于可用工具集动态显示 / 隐藏)、以及安全的环境变量声明。这种标准化设计使技能具备跨 Agent 平台的可移植性。

会话搜索与外部记忆的协同

仅靠固定容量的 MEMORY.md/USER.md 显然无法满足长期陪伴的需求。Hermes Agent 通过两种机制扩展记忆边界:

会话搜索基于 SQLite FTS5 实现全文本检索,所有 CLI 和消息平台会话均自动持久化到 ~/.hermes/state.db。当用户询问 "上周我们是否讨论过数据库迁移方案" 时,Agent 可在约 20ms 内完成检索,无需 LLM 参与即可获取原始对话内容。这种设计将 "回忆特定事件" 的成本从 tokens 转移到磁盘 I/O,显著降低长期使用的推理开销。

外部记忆提供商则面向更深层的用户建模需求。Hermes 内置支持 Honcho、Mem0、Hindsight 等 8 种外部记忆插件,可与内置记忆并行运行。这些提供商通常具备知识图谱构建、语义搜索、自动事实提取等能力,适合存储超出 1,300 tokens 限制的海量历史信息。

两者的协同关系清晰分工:内置记忆承载 "必须始终在场" 的关键事实,外部记忆处理 "按需检索" 的海量历史,会话搜索则作为 "精确定位过往对话" 的轻量级补充。

工程实践建议

基于上述架构,以下是可直接落地的配置与运维建议:

记忆容量管理

  • 监控内存使用率,当超过 80% 时主动触发整理
  • 合并相关条目:将多个 "项目使用 X" 条目合并为单一综合描述
  • 优先保留:环境事实、用户明确要求的长期约定、已验证的工作流程
  • 定期清理:临时调试信息、一次性任务记录、可通过搜索重新获取的会话细节

技能创建触发条件

  • 复杂任务(5+ 工具调用)完成后检查是否值得技能化
  • 用户纠正 Agent 错误后,将正确路径固化为技能
  • 跨项目可复用的工作流程(如特定技术栈的部署流程)

配置参数参考

# ~/.hermes/config.yaml
memory:
  memory_enabled: true
  user_profile_enabled: true
  memory_char_limit: 2200
  user_char_limit: 1375

skills:
  external_dirs:
    - ~/.agents/skills  # 团队共享技能目录

安全注意事项

  • 记忆条目在写入前会经过注入与数据外泄扫描
  • 避免在记忆中存储敏感凭证,应使用环境变量或密钥管理工具
  • 外部记忆插件需评估其数据存储位置与隐私策略

结语

Hermes Agent 的自适应记忆演化架构展示了一个关键趋势:Agent 正在从 "每次重置的工具" 向 "持续成长的伙伴" 演进。通过双层记忆的分层设计、技能的自主创建与渐进式加载、以及会话搜索与外部记忆的协同,这套架构在工程可行性与用户体验之间找到了平衡点。

对于正在构建自有 Agent 系统的开发者而言,Hermes 的设计提供了可借鉴的范式:不必追求无限的记忆容量,而应关注记忆的策展机制—— 什么值得记住、如何组织、何时遗忘。毕竟,真正的智能不在于存储一切,而在于知道什么值得保留。


资料来源

ai-systems

内容声明:本文无广告投放、无付费植入。

如有事实性问题,欢迎发送勘误至 i@hotdrydog.com