你的 Hermes 一重启就变笨,啥也记不住?原因可能是这个

2026-05-27 13:46:12 7点赞 66收藏 13评论

很多使用 docker 部署 Hermes 的小伙伴,都会发现一个现象,明明之前安装过的插件、工具,怎么转眼 Hermes 就忘记了。

明明前面文字里还提到它,现在让它去找,它怎么都找不到,还反过来让你给它提供信息,笨的要死。

你的 Hermes 一重启就变笨,啥也记不住?原因可能是这个

比如我刚刚让它安装了一个飞书 CLI,完整完成之后重启了一下容器。

你的 Hermes 一重启就变笨,啥也记不住?原因可能是这个

好家伙,这个 feishu cli 直接找不到了。容器路径里找不到,指令找不到,甚至在安装记录里都找不到。

你的 Hermes 一重启就变笨,啥也记不住?原因可能是这个

因为答案很简单,不是它变笨了,而是 Hermes 丢了环境变量。npm 包,是目前通用型 Agent 最主流的插件、工具包安装指令之一,之前很多未集成到官方服务内的工具都是以 npm 工具包的形式存在,比如之前的微信。

你的 Hermes 一重启就变笨,啥也记不住?原因可能是这个

而在 Hermes 的官方 yaml 文件中,默认默认只对 /opt/data(~/.hermes),即 Hermes 的自身数据进行持久化存储。而 aptnpmpip 等常用的软件包配置路径和工具,Hermes 是一个也不保存的。

所以 npm 包的丢失,原因是因为我们没有做容器的持久化存储,这是 docker 的特性,重启后会初始化容器内的一切数据,并且重新挂载映射的文件夹、容器卷。

🔻在极空间的 Hermes 应用中,也可以看到仅有 /opt/data 映射,与官方一致。

你的 Hermes 一重启就变笨,啥也记不住?原因可能是这个

那么如何解决呢?有两种方案:

1️⃣ 改变工具包路径

以 npm 为例,默认 prefix 是 ~/.local,这是一个不持久化存储的路径,所以任何安装进去的工具,都会在 docker 重启后被清空。

因此我们要做的是,就是将 prefix 设置到 $HOME 路径。在 Hermes 中,容器化部署的时候会传入 HERMES_HOME 这个环境变量来作为容器内的 $HOME

所以聪明的大模型,会在安装完 npm 工具后,提醒用户配置 bashrc 里的 PATH 参数,或者自动执行,同时将 bashrc 持久化。但是笨的模型么,那就呵呵哒了。

很多人觉得自己没遇到过这个问题,原因是你的模型某几次安装的时候聪明了,帮你解决了这个坑。

你的 Hermes 一重启就变笨,啥也记不住?原因可能是这个

2️⃣ 持久化存储容器根目录

有人会说了,那我是不是直接把 /root/usr/.config 等等路径都映射到容器外,就能确保安装不丢失?

没错,力大飞砖出奇迹。你可以在 Hermes 的 docker volume 里,增加 docker volume 对应的容器内路径来解决。

但是这种方法会增加整个容器系统存储到 NAS 里,虽然可能只有几十G,但是时间久了难免占用过多空间。

两种方案里,我更倾向的是第一种,因此我基于 Hermes 的官方 Hooks 渠道,做了一个 hook,将依靠模型的不确定性路径持久化,变为安全可靠的路径持久化。

Hermes Hooks 采用 0 侵入式修复,可以在网关启动的时候同步完成 PATH 路径重新映射到 /opt/data/(home) ,跟随容器的 /opt/data 长期存储,所以安装的 NPM 包都不会丢失。

只要 Hooks 机制不变,永远可以迁移存储,和 Hermes 版本升级无关。我把这个 hook 分享出来,直接放到 Hermes 的项目根目录下的 Hooks 文件夹下就行了。

夸氪 /s/3635877615f0

你的 Hermes 一重启就变笨,啥也记不住?原因可能是这个

重新启动容器之前,告诉 Hermes 查看一下 Hooks 下的文件,让它帮你迁移一下服务和现有的工具包。

接着重启容器,可以看到新的持久化路径被写入 $HOME 下的 /.profile/.bashrc 两个文件里。

你的 Hermes 一重启就变笨,啥也记不住?原因可能是这个

这个时候你再去问 Hermes 之前安装过的 NPM 工具,它都可以回答上来。至此,你将拥有一个永远不会因重启容器而变蠢的 Hermes-Agent。

你的 Hermes 一重启就变笨,啥也记不住?原因可能是这个

在极空间的持久化路径里,你可以看到安装过的工具包。

你的 Hermes 一重启就变笨,啥也记不住?原因可能是这个

如果,你是在其它 Hermes 里使用,而且自己更改了 HERMES_HOME 这个环境变量的,那么可以在 hooks 下的 py 脚本里修改 DATA_DIRHOME_DIR 为容器内的实际路径。

你的 Hermes 一重启就变笨,啥也记不住?原因可能是这个

好消息是,如果你已经更新了极空间应用中心的 Hermes-Agent,那么这个插件已经被内置在软件里了,无需配置即可启用。

你的 Hermes 一重启就变笨,啥也记不住?原因可能是这个

HOOKS 可能是大家使用通用型 Agent 时候经常忽略的一个机制,它虽然不如 skill、plugin 那么常用,但是它的机制是独一无二的,而且更稳定。

可以在 Agent 启动前、会话启动前通过提示词、配置的方式修改 Agent 的参数,甚至改变 Agent 的行为习惯。只需要符合 Hermes 对 Hooks 的定义即可。

你的 Hermes 一重启就变笨,啥也记不住?原因可能是这个

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
13评论

  • 精彩
  • 最新
  • 我现在用的docker的hermers。请问我怎么把他记忆迁移到官方的里面……是之前官方没出的时候弄的,docker里的升级很不方便

    校验提示文案

    提交
    如果两个docker目录和配置映射兼容的话,docker镜像直接改成官方镜像,然后重新拉取一下就行了

    校验提示文案

    提交
    差不多楼上说的,你只要保存好原来的文件,单独再拉一套就行了 再让hermes 自己去弄

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 歪头杀好可爱 [吃药]

    校验提示文案

    提交
    嘿嘿 就是专门做的可爱

    校验提示文案

    提交
    收起所有回复
  • 您这个是windows下使用的吧?请问有linux下使用的吗?因为我看到是.exe文件。

    校验提示文案

    提交
    exe解压,是因为夸克不传exe容易和谐

    校验提示文案

    提交
    收起所有回复
  • Hermes容易记住奇怪的东西 [皱眉]

    校验提示文案

    提交
  • hook再 分享一下吧

    校验提示文案

    提交
  • 封面太可爱了

    校验提示文案

    提交
    嘿嘿 抓到了文章的最核心

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
66
扫一下,分享更方便,购买更轻松