乐于分享
好东西不私藏

Hermes启用hindsight记忆插件有什么好处?

Hermes启用hindsight记忆插件有什么好处?

有朋友留言问我,给 Hermes 加个记忆插件有啥好处?今天就聊聊这事。

一、我现在用的是 Hermes Agent

我用 Hermes,主要是维护 wiki、管理 iStoreOS、飞牛 NAS 和两个 casaOS 设备,只需要告诉他我想要什么效果,他会帮我实现。

其次是日常问答,比如帮我设计公众号的排版。

Hermes 自带的记忆功能,虽然很强,但是 memory.md 只有 2200 字符,能记住的东西有限,而且往里面塞的东西太多了,反而会增加 token 消耗。

按需加载才是最优解。Hermes 会把回话内容存储到数据库,需要的时候可以从数据库查询记忆,但是这个只支持关键字匹配。

比如,我之前跟 Hermes 聊过行为金融学中的“过度自信”,下次必须用“过度自信”这个词,才能匹配他的记忆,这就是关键词匹配的局限性。

所以我就琢磨着:得给它加个外挂记忆插件。

二、我给 Hermes 配上了 Hindsight

有专门的评测,Hindsight 拿到了最高分。然后我就用 Docker 部署起来,给它配了英伟达免费的 AI 模型。

Hindsight 确实很香:

语义搜索——这是最牛的地方。我不需要记住确切的词就能搜到。

我想不起来那个词叫"过度自信",只记得是"自信心膨胀",它就能匹配到。即便我脑子里只有模糊的印象,它也可以能帮我精准定位。

自动存记忆——我只管跟他聊,它自己会把重要的信息存到记忆库中,还会自动分析,完全不用手动操作。

用户画像——我用得越多,它对我的了解也就越多,然后会为我生成一个用户画像,每一次新开会话,它会把这个用户画像注入到上下文中。

你用一段时间后,看看它帮你生成的用户画像,你会发现:越用越懂你才不是空话。

用户画像

用了一段时间,问题也暴露了:

延迟一轮注入——这是最让我难受的。

简单说就是:它会用你这一轮回话,去匹配记忆,然后等下一轮对话才注入上下文。这样就会有两个问题:

  1. 1. 你新开回话,第一轮回话,就没有从 hindsight 匹配到的记忆的。
  2. 2. 你下一轮回话换话题了,还在注入上一个话题的记忆,体验有点割裂。

占用资源多——hindsight 运行时占用至少 2G 运存,有时候还会把 CPU 跑满,最后我不得不限制 hindsight 只用 1 核 CPU。

三、零资源占用:Holographic

我发现 Hindsight 的问题后,就我开始琢磨有没有更好的方案。Holographic 是 Hermes 自带的另一个记忆插件。

优点:

零资源消耗——就一个 SQLite,几乎不占用资源,搜索也快。

当轮注入——这是它比 Hindsight 强的地方。你问的问题,直接把从记忆库中匹配到的结果,本轮对话就直接注入,一点也不延迟。换话题?立刻跟上,体验很顺。

信任评分——经常提起的记忆会加分,变相等于不常用的记忆就减分了,就跟记忆衰减一样。

缺点也明显:

没有语义搜索——它只能做关键词匹配。你搜"自信心膨胀"找不到"过度自信"。它找不到意思相近的内容。

没有自动记忆——自动分析对话,还得手动告诉它"把这个存起来"。

四、最终的抉择

我纠结了好几天。让 Hermes 拉了一张对比表,列了十几个维度,还扒了源码,看它们的实现差异,也去 GitHub 看了社区修复进度。

Hindsight 的缺点就是 Holographic 的优点 ,没有完美的方案。

最后我选了 继续用 Hindsight

理由很简单:语义搜索太香了。

我的使用场景里,经常出现这种情况——"之前跟你聊过 xx 事儿,你帮我查查"。这时候 Hindsight 能搜到,Holographic 大概率搜不到。

为了语义搜索,延迟一轮注入的问题,我可以忍。

社区有两个 PR ,正在尝试修复延迟注入的问题,静静等待官方修复吧。