第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步:注意两个重要规则
- 一个 Hermes 目录只能跑一个 agent:别让两个 agent 共用同一个 home 目录,否则记忆会互相污染。需要多 agent 时,给每个 agent 单独建 profile。
- 记忆满了不会自动压缩:当写入超出字符限制时,工具会报错而不是静默丢弃。AI 会自己想办法——合并或删除旧条目,腾出空间后再重试。
另外,记忆是会话开始时冻结的快照,会话中途的修改会立即存盘,但要到下次会话才会出现在提示词里。工具响应中看到的始终是实时状态。
总结:持久记忆让 Hermes 成为一个“有记性”的助手。它用两个文件分别记录 AI 的笔记和你的画像,通过 add / replace / remove 三个动作自主管理,并靠字符上限保持内容精炼。下次打开新会话,它依然记得你是谁、在做什么。
下一篇预告:第21篇将介绍 Memory Providers(外部记忆提供者)——当内置记忆不够用时,如何接入外部存储来扩展记忆容量。
📖 官方文档
本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/persistent-memory