📚AI 编程官方教程中文版
官方教程中文版使用手册

使用记忆系统

理解 Hermes 的 MEMORY.md、USER.md、session_search、容量限制和外部 memory provider。

Hermes 的内置记忆是小而精的 curated memory。它不是无限日志,而是让 agent 在新 session 里立刻知道关键偏好、环境事实、项目约定和已学到的经验。

两个记忆文件

内置记忆在 ~/.hermes/memories/ 下:

  • MEMORY.md:agent 的个人笔记,保存环境、项目约定、工具坑、完成过的工作等。默认 2200 字符。
  • USER.md:用户画像,保存沟通偏好、身份、习惯、明确要求等。默认 1375 字符。

它们会在 session 启动时作为冻结快照注入 system prompt。session 中途新增或修改的记忆会马上写盘,但不会在当前 system prompt 里刷新;新 session 才能看到。

memory 工具动作

agent 用 memory tool 管理条目:

  • add:新增记忆。
  • replace:用 old_text 的唯一子串匹配并替换。
  • remove:用 old_text 的唯一子串匹配并删除。

示例:

memory(
    action="replace",
    target="memory",
    old_text="dark mode",
    content="User prefers light mode in VS Code, dark mode in terminal",
)

没有 read 动作,因为记忆会自动注入上下文;工具返回会展示实时状态。

该保存什么

适合保存:

  • 明确偏好,例如“用户更喜欢 TypeScript”。
  • 环境事实,例如“这台服务器是 Debian 12 + PostgreSQL 16”。
  • 项目约定,例如测试命令、目录结构、格式规则。
  • 用户纠正过的做法。
  • 复杂任务完成后的关键结论。

不适合保存:

  • 模糊事实,例如“用户问过 Python”。
  • 很容易重新查到的通用知识。
  • 日志、代码块、表格这类大段原始数据。
  • 一次性临时路径。
  • 已经在 SOUL.mdAGENTS.md 或项目文件里的内容。

容量管理

容量满时,新增会失败并返回当前条目和使用量。正确做法不是硬塞,而是先合并、替换或删除低价值条目。超过 80% 时就应该主动压缩,把多个碎片合成一条信息密度更高的记忆。

配置:

memory:
  memory_enabled: true
  user_profile_enabled: true
  memory_char_limit: 2200
  user_char_limit: 1375

session_search 和外部 provider

session_search 不是 curated memory,而是对历史会话做全文检索。所有 CLI 和 messaging session 存在 ~/.hermes/state.db,用 FTS5 搜索,再由模型总结相关片段。

hermes sessions list

需要更深的长期记忆时,可以配置外部 memory provider。Hermes 支持 Honcho、OpenViking、Mem0、Hindsight、Holographic、RetainDB、ByteRover、Supermemory 等插件。它们和内置记忆并行工作,不替代 MEMORY.md / USER.md

hermes memory setup
hermes memory status

On this page