编辑
2026-05-21
折腾
00

目录

起因
第一个坑:登录就崩
排查过程
第二个坑:我被自己的机器人拒绝了
总结

起因

前阵子搞了个AI Agent框架叫 Hermes(就是希腊神话里那个跑腿之神),想着把它接上Telegram,以后随时随地使唤。

结果折腾了我大半天。

第一个坑:登录就崩

按照文档装好,配置好 DeepSeek 的 API Key,bot token 从 BotFather 拿到,一切看起来岁月静好。

启动 gateway,日志里看到:

Connected to Telegram

还没来得及高兴,3秒后:

Disconnected from Telegram Received SIGTERM as a planned --replace takeover

然后就无限循环:连上、被杀、连上、被杀……

我:???

排查过程

查了一下 systemd 服务,发现问题了:

bash
systemctl status hermes-gateway.service # 有一个 systemctl --user status hermes-gateway.service # 还有一个

好家伙,system 级别的和 user 级别的两个服务都在跑,而且启动参数里都带了 --replace(意思是「如果有别的实例在跑就干掉它然后我上位」),于是两个服务互相发 SIGTERM,互相杀,谁也起不来。

再加上我之前手动启动的那个进程还没关,三个进程在那打三国杀。

解决方案: 把 system 级别的服务卸了,只留 user 级别的:

bash
sudo hermes gateway uninstall --system systemctl --user restart hermes-gateway

世界清净了。

第二个坑:我被自己的机器人拒绝了

Gateway 终于稳定连上了,我给 bot 发消息……石沉大海。

看日志:

Unauthorized user: 6666528493 (Tang hao) on telegram No user allowlists configured. All unauthorized users will be denied.

合着我自己设的机器人不让我自己用???

.env 文件,TELEGRAM_ALLOWED_USERS 被注释掉了,等于白名单是空的。空的白名单 = 拒绝所有人。

加上我的 Telegram ID 就好了:

env
TELEGRAM_ALLOWED_USERS=6666528493

重启,终于能说上话了。

总结

这两个坑其实都是同一个根因:配置不仔细。Hermes 本身不复杂,但 systemd 双实例和授权白名单这两个细节没注意,白白浪费了俩小时。

教训:

  • 别同时用 system 和 user 两种 systemd 安装方式
  • .env 里的 ALLOWED_USERS 一定要配置,不然谁都用不了
  • 看日志!看日志!看日志!

下一篇聊聊怎么给这个 AI 装上「人格」——让它变成一只傲娇猫娘。

本文作者:haotian

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!