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

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

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

持久记忆: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 会自己想办法——合并或删除旧条目,腾出空间后再重试。注意 replace 也受这个限制:把一条记忆换成更长的内容同样可能撑爆,所以新内容得压缩一下,或者顺手删掉别的条目。

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

第6步:记得给会话划个界

整套记忆机制其实是围绕“会话结束”这个时刻设计的:MEMORY.mdUSER.md 把要点带到下一次会话,session_search 则在旧上下文消失后补上细节。而在同一个会话内部,这些机制基本没机会上场——重要的东西都还在当前上下文里,AI 很少去翻历史会话,更多只是压缩记忆条目。

这在消息平台上尤其明显(Telegram、Discord 等),因为那边的聊天被设计成一个持续不断的会话,能扛过重启、网关崩溃甚至机器重启。晚上关机并不会结束会话,下一条消息会接着上次的地方继续。如果你一直不重置,一个聊天可能连续跑好几周:方便是方便,但会越来越贵(压缩反复在越来越长的历史上跑),而且“遗忘 → 从记忆里回想 → 搜索历史会话”这个学习闭环几乎没机会触发。再加上前面说的冻结快照,新写入的记忆对当前会话也是不可见的。

建议:在自然的节点上跑一下 /new——任务做完了、换话题了、新的一天开始了。每个节点都是记忆发挥作用的时候:AI 重新读取更新后的 MEMORY.md/USER.md 快照,从便宜的短上下文起步,真需要历史时再去 session_search。在 CLI 上这基本是自动的(每次调用都是新会话);在网关上,这个边界就得你自己来划。


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

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

📖 官方文档

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