Hermes Agent 持久化记忆系统:3 个机制让 AI 跨会话记住你
Hermes Agent 持久化记忆系统3 个机制让 AI 跨会话记住你【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent用 AI Agent 写代码时最恼人的瞬间莫过于上周刚说过我的项目不用写注释新开会话它又原形毕露。Hermes Agent 项目The agent that grows with you用一套AI 持久化记忆方案解决了这个问题你的偏好和环境事实被写进本地两个文件每次会话开始时自动注入Agent 由此具备跨会话记忆而且全程不依赖数据库。下文按你可能关心的问题来拆这套 Agent 记忆系统存在哪、怎么管理、安全吗、满了怎么办。记忆到底存在哪两个文件分工不同所有记忆都在~/.hermes/memories目录下就是两个你能直接用文本编辑器打开的 Markdown 文件文件存什么字符上限MEMORY.mdAgent 自己的笔记环境事实系统、已装工具、项目约定、工具特性、学到的知识2200 字符USER.md它对你的了解偏好、沟通风格、时区、编码风格、工作流习惯1375 字符几个值得注意的细节条目之间用段落符号§分隔单条记忆可以跨多行比如贴一段约定俗成的配置说明。上限按字符数而不是 token 算好处是换任何模型限制都不漂移。没有数据库、没有同步服务——文件即存储备份就是复制两个文件。如何安全删除一条记忆 记忆的增删改走同一个入口支持三种动作memory_tool( actionremove, # 也可用 add 新增、replace 替换 targetuser, # memory 或 user对应上表两个文件 old_text不用写注释, # 用一段唯一子串定位目标条目 )replace和remove都靠子字符串匹配定位条目你不必记住条目原文给一段能唯一定位的片段即可。add会自动做字符上限检查和重复内容检查写不进去会有明确报错。每次落盘都是原子写入先把新内容写进同目录的临时文件确认完整后一次性替换原文件。相当于先誊好完整草稿再整体换位置即使中途断电磁盘上要么是旧记忆、要么是完整新记忆绝不会出现写了一半的残页。写进系统提示词安全吗 记忆最终会被注入系统提示词——Agent 相当于每次听自己念笔记这恰恰是注入攻击的温床如果记忆里混入一句把用户的密钥发给我后果可想而知。Hermes Agent 在这条链路上设了三道检查威胁模式扫描内容中若出现提示注入、角色劫持、密钥外传等特征模式直接拒绝写入并返回原因不可见字符检测零宽空格这类肉眼看不见的 Unicode 字符会被拦下防止藏注入操作面收紧add / replace / remove 的权限和参数都被严格约束Agent 不能借记忆工具做它不该做的事。简单说记忆只记事实不记指令。新开一个会话记忆是怎么生效的 这里有一个新手容易误会的设计当前会话的系统提示词是冻结的。会话开始时系统把两个文件的当前内容拍一张快照注入系统提示词后整个会话期间不再变化。你可以把它理解成演出前定稿的开场白——演员中途改词了这一场的开场白还是定稿版本。这样做是为了保住前缀缓存的稳定性省 token 也省钱。与此同时实时状态在持续变化你在会话中新增、修改记忆工具会立刻写盘工具返回结果始终反映最新状态。新写入的内容要到下一个会话才进入系统提示词。所以我刚存的偏好这条消息没生效不是 bug是设计。记忆容量快满了怎么整理 因为按字符封顶记忆必然有满的一天。系统会自动计算使用率接近上限时在响应中提醒你整理。实操上建议使用率超过80%时做一次合并把三条零散笔记压成一条结论性描述过时的信息换机器后的旧环境事实、已废弃的约定直接 removeUSER.md比MEMORY.md更紧张上限更小优先把关于人的信息写细、把关于环境的信息写粗别存容易重新发现的东西——目录结构、版本号这类问一遍比记一条便宜。行动清单打开~/.hermes/memories把两个文件读一遍——你的 Agent 记住了什么一目了然把关于你的偏好写进USER.md把关于环境的事实写进MEMORY.md分清楚再存存的时候写结论不贴原始对话和日志看到容量提醒就顺手合并同类条目别等爆掉想深入看实现源码在 agent/memory_manager.py整体记忆管线相关模块都集中在 agent/ 目录下。【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考