🤖HermesBlog
Hermes 官方教程 · 第20篇2026/8/9· Easy Understand Hermes Agent

第20篇:持久记忆——AI 的长期记忆

Hermes Agent 官方教程第20篇:AI 的长期记忆

第20篇:持久记忆——AI 的长期记忆

你有没有遇到过这种情况:跟 AI 聊完一个项目,第二天打开新会话,它什么都不记得了,你得从头再解释一遍?Hermes Agent 的“持久记忆”功能,就像给 AI 配了一个随身笔记本——它会把重要的事情记下来,下次见面时自动翻出来看,不用你反复叮嘱。


第1步:了解记忆存在哪

Hermes 的记忆由两个文件组成,都存放在 ~/.hermes/memories/ 目录下:

文件 用途 字数上限
MEMORY.md AI 的个人笔记(环境信息、项目约定、踩坑经验) 2,200 字符
USER.md 你的用户画像(偏好、沟通风格、期望) 1,375 字符

这两个文件会在每次会话开始时,被“快照”注入到系统提示词里,AI 一睁眼就能看到。

第2步:认识记忆的显示格式

会话开始后,AI 的提示词里会有一块固定的记忆区域,长这样:

══════════════════════════════════════════════
MEMORY (your personal notes) [67% — 1,474/2,200 chars]
══════════════════════════════════════════════
User's project is a Rust web service at ~/code/myapi using Axum + SQLx
§
This machine runs Ubuntu 22.04, has Docker and Podman installed

注意两点:

  • 每条记忆用 § 符号分隔,支持多行内容
  • 头部会显示已用百分比和字符数,让 AI 知道还剩多少空间

第3步:AI 如何管理记忆

AI 通过 memory 工具来操作记忆,只有三个动作:

  • add — 添加新记忆
  • replace — 替换旧记忆(用 old_text 做子串匹配)
  • remove — 删除不再需要的记忆(同样用子串匹配)

不需要 read 动作,因为记忆已经自动注入到提示词里了。

子串匹配小技巧:替换或删除时,只需提供能唯一定位某条记忆的短片段即可。比如记忆里有“User prefers dark mode in all editors”,你可以这样替换:

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

如果片段匹配到多条记忆,工具会报错,要求你提供更精确的匹配。

第4步:分清两个记忆目标

  • memory(AI 的个人笔记):记环境事实、项目约定、工具坑、成功经验等
  • user(用户画像):记你的偏好、沟通风格、期望

第5步:注意两个重要规则

  1. 一个 Hermes 目录只能跑一个 agent:别让两个 agent 共用同一个 home 目录,否则记忆会互相污染。需要多 agent 时,给每个 agent 单独建 profile。
  2. 记忆满了不会自动压缩:当写入超出字符限制时,工具会报错而不是静默丢弃。AI 会自己想办法——合并或删除旧条目,腾出空间后再重试。

另外,记忆是会话开始时冻结的快照,会话中途的修改会立即存盘,但要到下次会话才会出现在提示词里。工具响应中看到的始终是实时状态。


总结:持久记忆让 Hermes 成为一个“有记性”的助手。它用两个文件分别记录 AI 的笔记和你的画像,通过 add / replace / remove 三个动作自主管理,并靠字符上限保持内容精炼。下次打开新会话,它依然记得你是谁、在做什么。

下一篇预告:第21篇将介绍 Memory Providers(外部记忆提供者)——当内置记忆不够用时,如何接入外部存储来扩展记忆容量。

📖 官方文档

本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/persistent-memory