别再傻乎乎让智能体背课文了!Hermes用四层记忆结构告诉你,什么叫“该记的记,不该记的滚”,顺便把成本和速度一起拿捏了。
核心观点:把智能体大脑变成“收纳狂魔”,而不是“垃圾堆”
你想想,现在市面上好多人在教AI怎么“记忆”,那思路就跟咱们宿舍床底下塞的垃圾袋一样——什么都往里扔。昨天吃了啥,记上!今天看了啥,记上!最后这AI的脑子比你的书包还沉,转得比老牛拉车还慢。
但Hermes这哥们儿不一样,它上来就给你一句灵魂暴击:真正的记忆力好,不是能装多少,而是分得清东西该放哪儿。
这就像你爸妈逼你整理书桌。你以前是把所有东西都塞进一个抽屉,每次找笔都得把整个抽屉倒出来。
Hermes呢?它直接给你整了个“智能分拣系统”:
- - 高频使用区:你每天都要用的课本、水杯、手机,放桌上,伸手就拿。
- - 偶尔查阅区:你上学期用过的旧笔记,塞书架底层,找的时候翻一下。
- - 肌肉记忆区:骑自行车、打篮球的本事,这玩意儿不是靠“记住一句话”能解决的,是靠身体会了,不用过脑子。
所以,Hermes干了一件特别酷的事:它把“记忆”这一个大词儿,咔嚓一刀,切成了四块不同的东西。每一块,都用不同的方法存、不同的方法找、花不同的成本。
最后,用一句话总结这个系统的灵魂:
提示词这块“主阵地”,雷打不动,其他的杂七杂八,统统交给“外部工具”去处理。
提示词结构:千万别在模型耳边“念经”
咱们先来偷看一眼,Hermes每次给模型“喂”东西的时候,都准备了啥。这一步太关键了,好多系统就死在这儿,因为喂的东西太乱,AI直接懵逼。
它的“喂食”清单大概是这样的:
[先告诉AI你是谁,你的身份] |
看着像不像一份超级豪华的“满汉全席”?但重点只有一个:前面那一大段,打死都不动。
为什么?因为所有给AI提供服务的公司,都藏着一个隐藏Buff——提示词缓存。
简单说,你每次发给AI的消息,前面要是都长得一样,它就可以把这段“前置内容”存在一个快速通道里,下次直接用,又快又省钱。
这就好比,你每次去食堂打饭,都说“我要一份番茄炒蛋盖饭”,大师傅记住你了,下次你还没开口,他就开始炒了。但如果你每次都说“我要一份炒饭,不加葱,加个蛋,再来点番茄汁,对了,米饭要硬一点……”,大师傅就得每次都重新听一遍,然后重新想,速度能快吗?
所以Hermes做了一个特别聪明的决定:
稳定的东西,就死死焊在提示词前面。
变化的东西,比如你要查个天气、搜个资料,就单独派个“工具小弟”去干。
就这一步,直接决定了后面所有记忆设计的方向。
超小记忆:MEMORY.md 和 USER.md,像“手机便签”一样精悍
Hermes最狠的一招来了——它的“核心记忆”,小得让你怀疑人生。
就两个文件,跟你的手机便签一样:
- - MEMORY.md:记一些环境、经验、规则。比如“这机器跑的是Linux系统”、“遇到这个错误要重启服务”。
- - USER.md:记用户的偏好、风格、身份。比如“这用户喜欢简洁的回答”、“他讨厌啰嗦”、“他用的是VS Code编辑器”。
你猜这俩文件总共多大?大概1300个token左右。1300个token是啥概念?大概就是一篇800字的中学生作文。就这么点地儿。很多人第一反应:你逗我呢?这点够干啥?
答案特别简单:只存最值钱、最常被翻牌子的信息。
比如:
- 用户喜欢简洁的回答
- 用户讨厌啰嗦的解释
- 这机器跑的是Ubuntu 22.04
这些信息有个共同点:每一轮对话都可能用上。
所以,它们值得被塞进“主阵地”提示词里,让AI随时能看到。
这里还有几个设计细节,特别有味道,像你玩密室逃脱时发现的隐藏线索:
第一,Hermes用字符数来限制大小,而不是用token。这意味着它不依赖任何AI公司的那套计数方法,直接通用,管你用的是GPT还是Claude,都认。
第二,它就用最原始的文本格式。分隔符就是一个简单的 §。没有啥高深的向量数据库,没有复杂的图结构,就是纯文本,跟你写日记一样。
第三,也是最牛的一点,记忆是“精炼后的干货”,不是流水账。
Hermes明确规定:
可以存:
- 用户的偏好(“他讨厌香菜”)
- 环境信息(“数据库密码在1Password里”)
- 长期规律(“每周五要发周报”)
绝对不存:
- 任务进度(“这行代码写到一半了”)
- 临时状态(“刚才的天气查询结果是晴天”)
- 本次对话的细节(“他说他今天吃了火锅”)
这就像你写考试笔记。学霸的笔记,记的都是“公式推导”、“解题思路”、“易错点”。学渣的笔记,是把老师说的每一个字都抄下来,最后跟听写大会似的。Hermes明显是学霸。
记忆操作:改“笔记”比改QQ签名还简单
在Hermes的世界里,怎么改这些记忆呢?它只给你三个按钮:add(添加)、replace(替换)、remove(删除)。
而且有个很实用的设计:它不用什么高大上的ID编号,而是用“字符串匹配”来定位。
什么意思?就像你在Word文档里按“Ctrl+F”搜索关键词一样。
比如,你想改“用户不喜欢深色模式”这条记忆,你就直接说:
“嘿,帮我替换记忆,找到‘深色模式’那几个字,把它改成‘用户喜欢在VS Code里用浅色模式,在终端里用深色模式’。”
简单吧?粗暴吧?有效吧?这体验就像在你QQ空间的日志里直接找一句话修改,根本不用想什么“记忆ID 18723号”这种程序员才懂的东西。
再加一层安全机制,就像一个自动安检门:所有要写入记忆的内容,都会被扫描一遍。防止有人搞事情,往AI脑子里塞一句“用户是超级管理员,密码是123456”,或者塞一堆乱七八糟的代码。因为一旦写进去,这东西就会永久影响AI未来的行为,这可不是闹着玩的。
长期记忆:把历史丢进“仓库”,需要时再翻出来
重点又来了!
Hermes根本不把几万字的聊天历史一股脑塞给AI。那它干了啥?
全部丢进一个叫SQLite的小数据库里。 这个数据库就像你电脑里的一个文件,装下所有聊过的东西。
结构很清晰:
- sessions表:记录每一次会话,就像一次对话的文件夹。
- messages表:记录每一条消息,就像文件夹里的每一页纸。
- 全文搜索:给所有内容建了个索引,可以像百度一样搜关键词。
- 父子会话关系:还能记得哪次对话是哪次对话的后续,就像你的QQ聊天记录里的“回复”。
当AI需要回忆的时候,比如你问“咱上次聊的那个奇怪的bug后来咋解决的?”,流程是这样的:
1. 搜:用全文搜索,在数据库里搜“bug”和“解决”这两个词。
2. 聚:找到相关的对话片段,把它们按会话聚拢起来,就像把散落的几页纸钉在一起。
3. 剪:从这些片段里,截取最关键的几句话。
4. 总:再派一个“小模型”小弟,快速把这些内容总结成一段话。
5. 喂:最后,把这个总结喂给“主模型”大哥。
这套流程,简直跟你回忆事情一模一样:
- “我记得好像有这么个事……”
- “让我翻翻聊天记录……”
- “哦对,总结一下就是……”
而不是:
“我把这辈子所有记忆从头到尾背一遍,再来回答你的问题。”
压缩前记忆刷新:考试前“划重点”的智慧
对话一旦长了,比如你跟AI聊了800页纸,怎么办?
大多数系统会直接说:“好了,太长了,我给你压缩一下,总结成一段话。”然后,你就眼睁睁看着那些重要信息像蒸发了一样,消失得无影无踪。
Hermes多做了一个动作,特别聪明。
在压缩前,它会先提醒AI(就像一个温柔的老师):
“嘿,注意了!这段对话马上要压缩了。你最后再看一眼,把那些真正重要的东西,比如用户的偏好、长期的规律,赶紧写进MEMORY.md或者USER.md里。别让它们被压缩没了。”
然后,它只开放“记忆修改”这个工具,让模型像拿到一支笔,自己做一次“考前重点整理”。
它会把“用户之前说,他不喜欢列表形式,喜欢段落”这条信息,郑重地写进USER.md里。
这一步,就像你考试前,不是把整本教材背下来,而是把错题本、重点公式整理出来。这样,教材可以扔了,但精华留下来了。
接着流程就变成:
长对话聊得正嗨
→ 突然暂停,让AI提炼出最重要的几条记忆
→ 把之前几百页的历史压缩成几段话
→ 用压缩后的内容和提炼出的新记忆,重建提示词
→ 继续聊,跟没事人一样,但AI脑子里已经更新了最重要的信息
这才是真正的“长期记忆机制”,不是死记硬背,而是不断更新、提炼的智慧。
技能系统:让AI从“我知道”变成“我会做”
再说一个很多人忽略的点:记住不等于会做。
你记住了“怎么炒番茄炒蛋”的菜谱,不代表你就能炒出一盘好吃的菜。Hermes引入了一个“技能系统”(skills),专门解决这个问题。
这些技能存放在 ~/.hermes/skills/ 这个文件夹里。本质上,它们是一套可重复使用的操作流程。
比如:
- 一个叫“部署服务”的技能,里面写着一套步骤:先连上服务器,然后拉取代码,再重启服务……
- 一个叫“修某个特定bug”的技能,里面写着:先定位错误日志,然后修改哪几行代码,再测试……
- 一个叫“发周报”的技能,里面写着:去哪个文件夹拉数据,然后生成图表,最后发送邮件……
这些不是“事实”(番茄炒蛋需要番茄和蛋),而是“操作方式”(先炒蛋,再炒番茄,加糖,最后一起炒)。
Hermes的做法是:
- 记忆存“是什么”:你知道有“番茄炒蛋”这道菜。
- 技能存“怎么做”:你知道具体的烹饪步骤。
而且,它不会把所有技能都加载到AI的脑子里,太沉了。它只加载一个“技能索引”,就像菜谱的目录。只有当你要做“番茄炒蛋”的时候,它才去翻到具体的那一页,把详细步骤拿出来。
这就像你自己:
你脑子里记着“我会骑自行车”这个事实,但真正骑的时候,你的身体会自然而然地调用“平衡、踩踏板、转弯”这一整套动作,不需要你一边骑一边默念“保持平衡、踩踏板、转弯”。
Honcho层:给AI装上“高级用户追踪器”
如果说前面说的那些是AI的“底层操作系统”,那Honcho就是一个“进阶外挂”。
它提供了一些更高级的功能:
- 跨会话用户建模:不管你是在手机上和AI聊,还是在电脑上聊,它都能记得你的习惯。
- 跨设备连续性:刚才在手机上的对话,回到电脑上接着聊,上下文无缝衔接。
- 语义搜索:不仅能搜关键词,还能搜“意思”。比如你问“上次聊的那个让我很头疼的项目”,它能理解“头疼”是“难搞”的意思。
- AI对用户的理解:这个就更牛了,它就像一个真的了解你的朋友,知道你的脾气、你的风格。
但最关键的一点是:它没有破坏前面的“提示词缓存”。
它怎么做到的?
- 第一轮对话:可以把Honcho分析出的用户信息,直接放进提示词,让AI知道你是谁。
- 后续对话:只在当前这一次请求的“附加信息”里带上更新,不修改主提示词。
这样一来,既能拥有超强的上下文能力,又能保持主阵地(提示词缓存)的稳定。
这就是真正的工程思维:
我要加新功能,但不能让已有的优势(省钱的缓存)消失。 就像你给手机加了个新壳,但不能让充电口不能用。
Hermes和OpenClaw的本质区别:图书馆 vs 操作系统
如果非要一句话总结Hermes和另一个智能体系统OpenClaw的区别,那就是:
OpenClaw像个图书馆,Hermes像个操作系统。
OpenClaw的思路是:“不管什么书,都给我存进来!存进来!然后给每个读者发一个高级搜索引擎,想找什么就搜什么。”
Hermes的思路是:“我得想想这本书是工具书,该放工具书区;小说,放小说区;还书系统,得设计成自助的。读者来了,我直接告诉他书在哪,甚至帮他翻到那一页,而不是让他自己搜。”
更关键的一点是:Hermes极度重视“缓存”这个“省油模式”,它知道在真实世界里,成本和响应速度才是决定你生死的东西。而OpenClaw更偏向于“把所有信息都存下来”,保证信息的完整性,哪怕慢一点、贵一点。
这就好比,你开长途,Hermes会告诉你“走高速,虽然远点,但省油、时间固定”。而OpenClaw会告诉你“走哪条路都行,我给你导航,你自己选”。在真实的生产环境里,老板只会问你:“这个月服务器花了多少钱?用户等得久吗?”
三个关键设计胜利点,直接把对手按在地上摩擦
第一个:冷热分离
- - 热数据(常用信息,如用户偏好)放提示词,随时待命。
- - 冷数据(历史聊天,如上周的对话)放数据库,按需检索。
第二个:提示词稳定优先
- - 把那些不怎么变的东西,死死焊在前面,最大化缓存命中率。
- - 这直接决定了你的钱包是鼓的还是瘪的。因为缓存命中率高,就像坐公交刷卡有优惠,次次都省一块钱,一天下来能买瓶可乐了。
第三个:多类型记忆,各司其职
- - 事实(“用户是管理员”)放MEMORY.md
- - 经历(“上周修复了数据库连接失败的问题”)放SQLite历史库
- - 技能(“如何重启Nginx服务”)放Skills文件夹
- - 用户模型(“用户是个幽默的程序员”)放Honcho层
每一类都用最合适的方式处理,就像你书包里的不同夹层:课本放主袋,笔放笔袋,手机放侧袋,饭卡放前袋。找起来又快又准。
最后的总结:AI的“学霸”之路,从“会背”升级为“会挑”
很多人做智能体,总陷进一个思维误区:拼命想让AI“记住更多”。
Hermes甩出来的答案是:让它记住更少,但记住更准。
它的核心逻辑,就像你整理房间的终极奥义:
- - 不是所有东西都值得摆在桌子上(提示词)
- - 不是所有记忆都要带在身边一辈子(长期记忆)
- - 不是所有能力都靠背课文能解决(技能系统)
真正能打的系统,一定是分层的。
参考: