

兄弟们,今天来晚了,昨晚回家了,早上陪娃玩了一上午。 Hermes的双Bot已经各自跑起来了 但是有一个让我烦心的事情出现了 它们是都跑起来了,但是在同一个群里一起抢答。 今天把 Hermes + Telegram 双 Bot 这件事跟大家一起讨论一下 1)双 Bot 可以同时跑 2)但必须做实例隔离 3)难点不是启动,而是同群不乱回 正确思路: 一个 bot = 一个 token = 一个 HERMES_HOME = 一个独立进程 别再用同一个 ~/.hermes 起两个gateway 那样最容易串的是 配置、token、memory、模型,最后连行为都一起串。 我最后用的结构是: ~/hermes ~/hermes-bot2 每个目录各自放: .env config.yaml .hermes.md 这一步不是整理文件,是在做真正的运行时隔离。 模型分工也建议直接拆开: bot1 → 强模型 负责复杂任务、代码、推理 bot2 → 轻模型 负责日常问答、群内高频回复 这样双 bot 才不是重复部署,而是有明确分工。 最稳的是两个终端,我的实例: HERMES_HOME=~/hermes hermes gateway HERMES_HOME=~/hermes-bot2 hermes gateway 如果想长期挂着,直接用 tmux。 简单、清晰,也不容易串环境。 但真正最大的麻烦,是群聊。 你发一句:“你好” 结果两个 bot 都回。 你以为只 @ 了 bot1,结果 bot2 也回。 这才是双 bot 最烦的地方。 为什么会这样? 因为 Telegram 群消息会被两个 bot 同时收到。 要注意的的点是: • /setprivacy Enable 只是一层弱过滤 • .hermes.md 只是 prompt 软约束 • reply 链消息也可能触发 bot 所以只靠配置和提示词,不够稳。 最后我发现,真正靠谱的办法 在代码入口做硬拦截。 逻辑很简单: 先判断发消息的人是不是 allowlist 用户; 再判断消息里有没有明确 @ 当前 bot; 如果没有,就直接 return; 不要把消息交给模型。 这一步特别关键。 因为你要的不是尽量少乱回,而是规则不满足就根本不进入模型层。 做到这一步以后,效果才会变成: 你发:你好 → 两个 bot 都不回 你发:@bot1 你好 → 只有 bot1 回 你发:@bot2 你好 → 只有 bot2 回 别人发:@bot1 你好 → 不回 这时候,双 bot 才算真的稳定。 另外还有一层建议: 把 Telegram 数字 ID 加进 allowlist。 最简单的办法是在TG上搜 @userinfobot 拿到自己的数字 ID 后写进 .env: TELEGRAM_ALLOWED_USERS=123456789 最后我总结出来的 Hermes 双 Bot 最优组合是: bot1: 强模型 / 只回 @bot1 / 处理复杂任务 bot2: 轻模型 / 只回 @bot2 / 处理高频问答 配套原则是: • 不同 token • 不同 HERMES_HOME • 不同模型 • 不同 .hermes.md • 再加代码级 @ 规则拦截 Hermes双Bot的核心,不是怎么同时启动 而是: 怎么隔离 怎么分工 怎么保证同群不抢答。 如果你也在做 Hermes 多实例、Telegram 双 Bot 分工,这套方法可以直接复用。























