游乐游手机版
首页/AI热点日报/热点详情

Hermes Agent长期记忆功能实现原理与配置方法

类型:热点整理2026-05-27
HermesAgent通过五层协同架构实现长期记忆。核心是存储关键事实的MEMORY md温记忆层,受字符数限制。当容量不足时,可接入外部记忆Provider以增强语义检索。基于SQLite的全文检索机制能高效调用历史会话。SKILL md文件用于沉淀程序性知识,实现技能复用。USER md则存储用户个性化信息,与MEMORY md共同构成稳定的用户画像基础

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

Hermes Agent如何实现长期记忆

下面,我们来逐一拆解这五个层面的具体实现路径。

一、配置 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 服务。

来源:https://www.php.cn/faq/2541799.html?uid=1503042

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。