第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/features/memory