📚AI 编程官方教程中文版
🧠 从原理到实战

05 · 记忆与召回

区分 Hermes 的 curated memory、USER.md、MEMORY.md、session_search 和外部 memory provider。

Hermes 的 memory 不是无限日志,而是“精选长期事实”。它的目标是让新 session 一开始就知道关键偏好、环境事实和项目约定。

两个核心文件

内置记忆在:

~/.hermes/memories/
├── MEMORY.md
└── USER.md

MEMORY.md 保存 agent 需要记住的环境和工作事实,例如项目约定、工具坑、完成过的关键工作。

USER.md 保存用户画像,例如沟通偏好、常用技术栈、明确偏好、反复纠正过的要求。

两者会在 session 启动时注入 system prompt。当前 session 中新增的记忆会写盘,但不会刷新当前 system prompt;新 session 才能看到。

该保存什么

适合保存:

  • 用户明确偏好。
  • 稳定环境事实。
  • 项目长期规则。
  • 反复出现的工具问题。
  • 已验证过的修复结论。

不适合保存:

  • 一次性任务细节。
  • 大段日志。
  • 大段代码。
  • 临时文件路径。
  • 可以从项目文档直接读到的内容。

记忆容量有限,应该保存高密度事实,不保存流水账。

session_search 是另一回事

session_search 是历史会话检索,不是 curated memory。

它适合问:

  • 之前怎么修过类似问题。
  • 某个长期任务上次停在哪里。
  • 用户曾经纠正过什么。
  • 某个项目以前跑过哪些命令。

它不适合替代 MEMORY.md。如果一条信息以后一定会反复用,就应该进 curated memory;如果只是可能需要回查,就留在 session history。

外部 memory provider

Hermes 支持外部 memory provider,例如 Honcho、OpenViking、Mem0、Hindsight、Holographic、RetainDB、ByteRover、Supermemory 等。

外部 provider 适合更复杂的长期用户建模或跨系统记忆,但不要一开始就接。先把内置 memory 用好,再判断是否需要外部 provider。

常用入口:

hermes memory setup
hermes memory status

记忆治理

记忆最大的风险不是“不够多”,而是“脏”。错误记忆会持续污染后续 session。

推荐规则:

事实必须可验证
偏好必须来自用户明确表达
临时信息不入库
低密度内容先合并再保存
超过 80% 容量就主动压缩
发现错误立即 replace 或 remove

好的 memory 会让 Hermes 越用越贴合;坏的 memory 会让它越来越固执。

On this page