news 2026/8/28 11:29:21

换了会话 AI 就失忆?Hermes Agent 持久化记忆机制讲透

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
换了会话 AI 就失忆?Hermes Agent 持久化记忆机制讲透

换了会话 AI 就失忆?Hermes Agent 持久化记忆机制讲透

【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent

你多半遇到过这种场面:上次刚告诉 AI 你喜欢简洁风格、项目用 pnpm 管理、别写注释。换个新会话,它又把你当陌生人,重新提问,重新提你早就否掉的方案。AI 助手如何记住你的偏好,一直是各家开源 Agent 绕不开的问题,Hermes Agent 的持久化记忆系统就是冲这个痛点来的——它把每次对话里学到的东西写进磁盘,下一次会话开始时自动回忆,用得越久越懂你。

它凭什么记住你的偏好:两个文件各管一摊

Hermes Agent 的记忆不是数据库,就是两个纯文本文件,放在~/.hermes/memories目录下,分工很清晰:

~/.hermes/memories/ ├── MEMORY.md # AI 自己的笔记:环境事实、项目约定、工具特性 └── USER.md # 用户画像:偏好、沟通风格、期望、工作流习惯

一句话划边界:关于"你"的信息进USER.md,关于"环境和知识"的进MEMORY.md。姓名、时区、编码风格属于前者;机器上装了什么工具、项目遵循哪些约定、某个 API 有什么坑,属于后者。

一次会话里发生了什么:快照和实时状态是两条轨

很多人以为"注入系统提示"等于每次重新读文件,其实 Hermes Agent 走的是双轨:

  • 快照:会话开始时把两个文件的当前内容冻结,写进系统提示,整个会话期间不再改动;
  • 实时状态:会话中你每改一条记忆,立刻写回磁盘,工具返回给你的永远是最新状态。

为什么快照可以"不新鲜"?系统提示位于整个请求的最前面,只要这段文本从头到尾不动,模型服务的前缀缓存就能全程命中,省的是真金白银的费用和等待。本次会话新加的记忆已经落到磁盘,从下一次会话开始生效——不是丢了,只是晚一个会话。文件内的条目用§(段落符号)分隔,天然支持多行条目。

写坏了怎么办:原子写入 + 字符上限

文件写入最怕的事故是"写了一半崩了",留下半个损坏的文件。Hermes Agent 的原子写入绕开了它:先把完整的新内容写进同目录下的临时文件,再用os.replace把目标文件一次性替换掉。你看到的要么是旧内容、要么是新内容,不存在中间态,失败时临时文件也会被清理掉。

容量按字符数卡,不按 token:MEMORY.md 上限 2200 字符,USER.md 1375 字符。字符数在所有模型面前都是定值,token 数却随分词器浮动,用字符做上限是跨模型兼容最省事的做法。接近上限时系统会提示你整理,而不是硬塞。

它还会防你被记忆坑

记忆会被注入系统提示,这是双刃剑:文件里若藏着"忽略之前所有指令"之类的话,或诱导把数据发往外部的请求,都会被提示注入放大。所以任何想通过系统写入的内容,得先过两道扫描:

  • 匹配提示注入与数据外泄的威胁模式,命中即拦截,拒绝写入;
  • 检测零宽空格等不可见字符,防止有人在内容里藏肉眼看不见的注入文本。

简单说:记忆文件是你自己的纯文本,你可以读、可以改;但想绕开工具直接改系统行为,得先过这道关。

现在就能用起来的三条提醒

  1. 该记就记:用户说出长期有效的信息(姓名、时区、工具偏好、代码风格)时,当场写进对应文件,别让人家下次再说一遍;
  2. 保持精简:只存提炼后的结论,不存原始日志;使用率超过 80% 就先合并、删掉过时条目;
  3. 常翻翻文件~/.hermes/memories下那两个文件就是你的 AI 的"记忆台账",发现记错的、过时的,直接手工改掉。

今晚开一个新会话,问一句你配置好的 Hermes Agent:"你对我了解什么?"它能答上来,这套记忆系统才算真正在工作;答不上来,就打开那两个文件查一查。

【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/28 11:28:45

如何用 CefFlashBrowser 找回你的 Flash 游戏:完整上手指南

如何用 CefFlashBrowser 找回你的 Flash 游戏:完整上手指南 【免费下载链接】CefFlashBrowser Flash浏览器 / Flash Browser 项目地址: https://gitcode.com/gh_mirrors/ce/CefFlashBrowser 你还保存着《黄金矿工》的 SWF 文件(一种矢量动画格式&…

作者头像 李华
网站建设 2026/8/28 11:27:54

线性规划建模实战:Matlab与Lingo工具选型、实现与结果分析

1. 项目概述:线性规划模型在数学建模中的核心地位如果你参加过数学建模竞赛,或者处理过资源分配、生产计划这类优化问题,那你一定绕不开“线性规划”这四个字。它不是什么高深莫测的理论,而是解决“在有限条件下,如何做…

作者头像 李华
网站建设 2026/8/28 11:23:09

基于JSP与SSM框架的智能报销系统:从架构设计到业务实现

简介:在Java Web开发领域,SSM(SpringSpringMVCMyBatis)框架组合与JSP技术构成了经典的企业级应用开发范式。其核心原理在于通过Spring的IoC容器实现组件解耦与依赖注入,利用SpringMVC的DispatcherServlet调度HTTP请求&…

作者头像 李华
网站建设 2026/8/28 11:22:33

ES6核心特性深度解析:从模块化到异步编程的现代JavaScript实践

1. 项目概述:从“能用”到“好用”的现代JavaScript基石如果你是从ES5时代一路写过来的老前端,或者刚入门就被各种import、>箭头函数搞得有点懵的新手,那么这部分内容就是为你准备的。我们常说的ES6,官方名称是ECMAScript 2015…

作者头像 李华
网站建设 2026/8/28 11:21:09

Stripe unauthorized payments封号排查与申诉指南

收到 Stripe 发来的账号关闭通知,原因写着 unauthorized payments ,第一反应通常是“我明明没有违规收款,为什么被封”。这类提示不是普通的支付报错,而是账号触发了 Stripe 的风控规则或信用卡争议机制,严重时会导致…

作者头像 李华