如果你发现 Hermes Agent 能在多次对话中,准确记住你项目的特定约定、个人偏好或任务习惯,而无需你反复提醒,那么恭喜你,它的长期记忆机制正在幕后稳定工作。这并非魔法,而是通过一套精心设计的五层协同架构实现的。具体来说,这套机制包括:以 MEMORY.md 文件为核心的温记忆层、用于扩展容量与语义检索的外部记忆 Provider、基于 SQLite FTS5 的冷记忆全文检索、沉淀程序性知识的 SKILL.md,以及构建用户画像锚点的 USER.md。

下面,我们来逐一拆解这五个层面的具体实现路径。
一、配置 MEMORY.md 文件作为温记忆层
MEMORY.md 是 Hermes Agent 实现持久化记忆的核心载体。它本质上是一个纯文本文件,专门用来存储那些价值高、但变更频率较低的环境事实和行为约束。每次会话启动时,其内容都会自动注入系统提示词,形成一个稳定的“温记忆”背景层。需要注意的是,这个文件受 memory_char_limit: 2200 字符的硬性限制,超出部分会被系统自动截断。
配置过程非常直接:
1. 打开终端,进入 Hermes 的配置目录:cd ~/.hermes
2. 确认 MEMORY.md 文件是否存在:ls -l MEMORY.md
3. 如果文件不存在,创建一个空文件:touch MEMORY.md
4. 使用文本编辑器打开它,并写入规范化的内容。关键是,每条记录都必须以符号 § 开头。例如:§ 当前主力模型为 Qwen-Max,用于 Newsletter 生成任务
5. 保存并退出编辑器(如果使用 Nano,按 Ctrl+O 回车保存,再按 Ctrl+X 退出)。
二、启用外部记忆 Provider 扩展容量与检索能力
当内置的 MEMORY.md 文件达到字符上限,或者你需要更强大的语义检索、时效性管理、多策略召回能力时,就需要接入外部记忆 Provider。从 Hermes v0.7.0 开始,系统通过插件机制支持多种方案,每种都有其特定的技术路径和适用场景。
启用步骤大致如下:
1. 在终端运行初始化命令:hermes memory setup
2. 从提供的列表中选择目标 Provider。例如,mem0(以易用性见长,通常包含免费额度)或 hindsight(检索精度更高,支持本地嵌入式部署)。
3. 根据提示输入对应的 API Key。如果选择支持本地模型的 Provider,则需要配置模型 Endpoint(例如,使用 DeepSeek 时可填入 https://api.deepseek.com)。
4. 指定模型标识和用户标识符,完成注册。
5. 执行重启命令使配置生效:hermes restart
三、激活历史会话全文检索机制
Session Search 是 Hermes 内置的“冷记忆”层。它基于 SQLite 的 FTS5 全文检索引擎,对所有历史对话记录进行索引。其巧妙之处在于,系统不会将原始对话全文一股脑儿塞进当前上下文,而是先检索出最相关的段落,然后交由一个轻量级 LLM 进行摘要,最后再将摘要结果返回给主模型。这种方式在保证信息召回率的同时,极大提升了 Token 的使用效率。
要使用它,你只需要:
1. 确保历史会话已正常保存至 ~/.hermes/history/ 目录下的 SQLite 数据库文件中。
2. 该机制默认启用,无需额外配置。你可以通过运行 hermes doctor 命令来验证,查看 “Session search enabled” 字段是否为 true。
3. 在对话中直接触发检索,例如输入:“请回顾我上周关于 API 错误码的提问”。
4. 观察 Agent 的响应中是否包含了带有时间戳和来源路径的引用片段。
四、利用 SKILL.md 实现程序性记忆沉淀
如果说 MEMORY.md 记录的是“是什么”,那么 SKILL.md 存储的就是“怎么做”的程序性知识,属于技能库层级的记忆。系统在 Prompt 中只注入其精简索引,实际文档内容按需加载,从而有效避免了上下文窗口的无谓膨胀。这使得 Agent 能够复用那些已经被验证过的工作流,而不是每次都从头开始探索。
建立技能库的流程是:
1. 在完成一项复杂任务后,手动或通过 Agent 自动触发技能沉淀流程。
2. 将结构化的操作步骤写入 ~/.hermes/skills/ 目录下的独立 Markdown 文件中。文件名最好能体现任务类型,例如 deploy-to-vercel.md。
3. 每份 SKILL.md 文件都应包含几个关键部分:任务名称、触发条件、具体执行步骤、预期输出以及失败时的回退方案。
4. 此后,当对话中提及相似任务时,Agent 便会自动匹配并加载对应的技能文档来辅助执行。
五、同步 USER.md 构建用户画像锚点
USER.md 与 MEMORY.md 并列,共同构成温记忆的双核心。它专门用于存储用户的身份特征、沟通风格、技能水平等个性化信息,同样受 1375 字符的硬限制。其内容会与 MEMORY.md 一同注入会话,为 Agent 跨会话的行为提供一个稳定的个性化基线。
管理 USER.md 的方法如下:
1. 检查文件路径:ls -l ~/.hermes/memories/USER.md
2. 使用编辑器打开,添加原子化的用户事实。例如:§ 我偏好使用中文技术术语,拒绝英文缩写(如 CLI → 命令行界面)
3. 需要注意的是,这里应避免写入临时状态或包含相对时间的表述,比如“最近”、“上个月”这类词语。
4. 保存后,修改将在下次会话启动时自动生效,无需重启 Hermes 服务。
