AI怎么记住你的偏好?拆解 Hermes Agent 的持久化记忆
【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent
你有没有遇到过这种情况:每次新开一个对话,AI 都不认识你了。Hermes Agent 用持久化记忆解决了这个问题——它把你的偏好、环境事实写进磁盘文件,下次会话开始时再读出来,让 AI 助手记住偏好并跨会话保持,越用越懂你。
这篇文章从痛点讲起,拆解这套机制的原理,最后给你几条能直接上手的建议。
🔁 那个让人抓狂的"健忘"问题
想象一下:你刚花了十分钟告诉 AI 助手"我在 macOS 上开发、项目用 pnpm 管理、代码里别加分号",关掉窗口。第二天再打开,它又按 Windows 的路径给你写命令。
问题的根源是:大多数助手的记忆只活在当前对话里,一关就清空。你等于每天上班都要先给新人同事做一遍培训。Hermes Agent 的思路很直接——把"培训结果"存成文件,每次开工前读一遍。
📁 两个记忆文件,各管一摊
它把记忆拆成两份,都放在~/.hermes/memories目录下:
~/.hermes/memories/ ├── MEMORY.md # 上限 2200 字符 └── USER.md # 上限 1375 字符类比一下就懂了:
- MEMORY.md 是你的工作笔记——环境事实(装了哪些工具)、项目约定、踩坑学到的知识,都属于这类
- USER.md 是你的客户档案——你的偏好、沟通风格、工作流习惯,比如"喜欢简短回答"
容量按字符而不是按 token 限制,好处是换什么模型都不需要重新换算配额,跨模型兼容。实现代码在tools/memory_tool.py,不感兴趣可以跳过。
⚡ 一次会话里,记忆怎么流动
这里有个容易误解的点:本次会话里新增的记忆,不会立刻改变 AI 的"认知"。
流程是这样的:
- 会话开始:两个文件的内容作为快照注入系统提示。像会前发你的资料,进场那一刻就定格了
- 会话进行中:每新增或修改一条记忆,立即写进磁盘文件。这是随手记的小抄
- 会话结束:快照留在原地,但磁盘上的文件已经是最新的
所以新记忆"下次会话生效"。这个设计牺牲了一点即时性,换来两个好处:磁盘上永远有最新真相,且当前会话的系统提示保持稳定,利于缓存命中。
🛡️ 敢把记忆写进系统提示,靠的是两道安检
系统提示是 AI 最信任的信息来源,把用户可写入的内容塞进去,天然有被注入攻击的风险。Hermes Agent 在写入前会做两层检查:一是扫描内容里的提示注入和数据窃取套路,发现即拒绝写入;二是拦截零宽空格这类肉眼看不见的不可见字符——它们常被用来藏指令,普通文本里出现就显得可疑。
另外,落盘走的是"先写临时文件、再原子重命名覆盖"的方式,中途断电或崩溃也不会把记忆文件写坏一半。
📝 给你的使用建议
记忆的增删改只有三类动作:新增、按子串定位替换、按子串定位删除。日常用得最多的是前两个。
值得记的
- 你纠正过它的事:"别用那种库""回答说人话"——纠正是最值钱的信息
- 你的个人细节:姓名、角色、时区、编码风格
- 环境事实:操作系统、已装工具、项目结构
别记的
- 琐碎或显而易见的话,比如"用户说了一声谢谢"
- 重新问一遍就能查到的信息,浪费的是宝贵容量
- 大段原文粘贴,先提炼成一句话再存
还有一个节奏问题:记忆使用率到 80% 左右,系统会提醒你整理。这时候把重复条目合并、过时的删掉,比等它写满再硬挤要轻松得多。
🌱 越用越懂你
回到开头那个场景:半年后你再打开一个新会话,对方已经知道你在哪个系统上干活、你讨厌哪种代码风格、你希望输出长什么样。
你不需要说一句话,它已经准备好了。
【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考