有朋友留言问我,给 Hermes 加个记忆插件有啥好处?今天就聊聊这事。
一、我现在用的是 Hermes Agent

我用 Hermes,主要是维护 wiki、管理 iStoreOS、飞牛 NAS 和两个 casaOS 设备,只需要告诉他我想要什么效果,他会帮我实现。
其次是日常问答,比如帮我设计公众号的排版。
Hermes 自带的记忆功能,虽然很强,但是 memory.md 只有 2200 字符,能记住的东西有限,而且往里面塞的东西太多了,反而会增加 token 消耗。
按需加载才是最优解。Hermes 会把回话内容存储到数据库,需要的时候可以从数据库查询记忆,但是这个只支持关键字匹配。
比如,我之前跟 Hermes 聊过行为金融学中的“过度自信”,下次必须用“过度自信”这个词,才能匹配他的记忆,这就是关键词匹配的局限性。
所以我就琢磨着:得给它加个外挂记忆插件。
二、我给 Hermes 配上了 Hindsight
有专门的评测,Hindsight 拿到了最高分。然后我就用 Docker 部署起来,给它配了英伟达免费的 AI 模型。
Hindsight 确实很香:
语义搜索——这是最牛的地方。我不需要记住确切的词就能搜到。
我想不起来那个词叫"过度自信",只记得是"自信心膨胀",它就能匹配到。即便我脑子里只有模糊的印象,它也可以能帮我精准定位。
自动存记忆——我只管跟他聊,它自己会把重要的信息存到记忆库中,还会自动分析,完全不用手动操作。
用户画像——我用得越多,它对我的了解也就越多,然后会为我生成一个用户画像,每一次新开会话,它会把这个用户画像注入到上下文中。
你用一段时间后,看看它帮你生成的用户画像,你会发现:越用越懂你才不是空话。

用了一段时间,问题也暴露了:
延迟一轮注入——这是最让我难受的。
简单说就是:它会用你这一轮回话,去匹配记忆,然后等下一轮对话才注入上下文。这样就会有两个问题:
1. 你新开回话,第一轮回话,就没有从 hindsight 匹配到的记忆的。 2. 你下一轮回话换话题了,还在注入上一个话题的记忆,体验有点割裂。
占用资源多——hindsight 运行时占用至少 2G 运存,有时候还会把 CPU 跑满,最后我不得不限制 hindsight 只用 1 核 CPU。
三、零资源占用:Holographic
我发现 Hindsight 的问题后,就我开始琢磨有没有更好的方案。Holographic 是 Hermes 自带的另一个记忆插件。
优点:
零资源消耗——就一个 SQLite,几乎不占用资源,搜索也快。
当轮注入——这是它比 Hindsight 强的地方。你问的问题,直接把从记忆库中匹配到的结果,本轮对话就直接注入,一点也不延迟。换话题?立刻跟上,体验很顺。
信任评分——经常提起的记忆会加分,变相等于不常用的记忆就减分了,就跟记忆衰减一样。
缺点也明显:
没有语义搜索——它只能做关键词匹配。你搜"自信心膨胀"找不到"过度自信"。它找不到意思相近的内容。
没有自动记忆——自动分析对话,还得手动告诉它"把这个存起来"。
四、最终的抉择
我纠结了好几天。让 Hermes 拉了一张对比表,列了十几个维度,还扒了源码,看它们的实现差异,也去 GitHub 看了社区修复进度。
Hindsight 的缺点就是 Holographic 的优点 ,没有完美的方案。
最后我选了 继续用 Hindsight。
理由很简单:语义搜索太香了。
我的使用场景里,经常出现这种情况——"之前跟你聊过 xx 事儿,你帮我查查"。这时候 Hindsight 能搜到,Holographic 大概率搜不到。
为了语义搜索,延迟一轮注入的问题,我可以忍。
社区有两个 PR ,正在尝试修复延迟注入的问题,静静等待官方修复吧。
夜雨聆风