这是什么(30 秒看懂,先纠正一个错法)
- 群聊里的“机器人 / bot / 成员”,不是 Telegram,也不是即时通讯入口:它是跑在某台网关上的 agent 身份——本机某个 profile,或远端机器网关上的 profile。每个成员有 handle(比如 Ada、Linus),@的就是它。
- 房间 = 网关托管的 Bot Mode 房间。你(human)发消息,成员们接;成员在本题里就是干活的 agent,不是 IM 联系人。
- Telegram 是另一回事:网关的消息平台入口。cron 投递里
--deliver telegram(发到 IM 聊天)和--deliver room:<room_id>(发到房间)是并列的两条路,互不隶属。 - 什么时候用房间:要两个以上 agent 身份配合,或要定时任务把结果扔到一个能追问的地方;一对一聊天继续用普通会话。
前提检查(2 分钟)
- 桌面是 v0.23.0(设置 → 关于里看)。
- 网关在线:终端跑
hermes gateway status,看到active (running)就行。 - 远端成员要进房,对方机器的网关也得在线(还要给它进房授权)。
步骤 1:建房间
- 桌面 → 群聊 → 新建房间 → 起个名(比如“运维群”“回测群”)。
- 房间建好先不管,后面第 5 步要用它的 ID。
步骤 2:加成员(加的是 agent 身份)
- 房间 → 加成员,选本机某个 profile,或远端网关上的 profile;进来后给它 handle(@用的名字)。
- 所以“跨机器同房”的意思是:max2 的 profile 和 VPS 网关上的 profile 在同一房间,不是要把 Telegram 联系人拉进来。
- 加完看一眼:每个成员头上会实时显示在干嘛(比如
scout · terminal · 7s),没显示就是没连上,先查对方网关。
步骤 3:选接话规则(先看懂默认)
- 默认是 everyone:人人都回。人多的房先改路由再用,不然很吵。
- lead:没点名的消息先到 lead,它在自己的 member session 里跑一轮路由,只点名该接的 handle(桌面会显示“Ada gave this to Linus”);它谁都不点就自己上;lead 永远不能广播。
- auto:一个小模型按房间 purpose、共享笔记、成员名单、上下文挑人;挑失败就大家一起回。
- 建议:先用 lead(稳),跑顺了再试 auto。
步骤 4:在房间里说话(三种)
@handle + 内容:点名,指定成员干活。- 直接说话不点名:lead 或 auto 按第 3 步接;everyone 房则是人人都回。
- 贴图 / 拖文件:附件粘贴、拖拽、行内图片预览都支持,截图类问题直接扔图。
- 不会双跑:一条消息只跑一次(单网关 single queue),放心追问。
步骤 5:定时任务投进房间(cron → 房间)
- 语法(CLI 已核实):
hermes cron create --deliver room:<room_id> "时间" "任务内容" room_id在桌面房间详情里看(点房间名/设置,里面有一串 ID,复制它)。如果你的界面叫法不一样,把看到的字样贴回来,我来对。- 只叫醒点名的人:投递内容里
@某个成员handle,就只唤醒它,别的成员不动。 - 漏跑策略:建任务时加
--catch-up on(关机错过的回来补跑一次)或off(跳过)。例:hermes cron create --name 每日版本简报 --deliver room:<room_id> --catch-up on "0 8 * * *" "汇总 hermes-agent 昨日 release 并给出是否升级建议"
步骤 6:沉淀(房间主题 + 共享笔记)
- 给房间写个 purpose(主题):这房是干嘛的,一句话。auto 路由挑人时会看它,认真写。
- 结论进房间的共享笔记:以后同类问题先翻共享笔记,不用爬楼。
步骤 7:散会
- 房间可改名;事办完直接解散。解散不影响各成员 profile 自己的一对一会话。
三个现成套餐(照抄即用)
| 运维群 | max2 的 profile + micro/arm 网关上的 profile 同房。@micro 的 handle 跑远端命令,@arm 的 handle 回包,你在房里看全程,不用来回切 Telegram topic。 |
| 回测群 | sdk-algo 定时任务 --deliver room:<room_id> 把结论投房间,你直接在房里追问“换个参数重跑”。 |
| 版本简报群 | 上面步骤 5 的例子:每天 8 点一条 release 汇总,共享笔记自动攒成版本日志。 |
出问题看这里
| 说话没人回 | 先看成员头上有没有状态(没状态 = 那边网关离线);再看路由是 lead/auto/everyone,有没有设对。 |
| 远端成员不回 | 那台机器网关掉线,或进房授权没给(桌面应同时连着各机器网关)。 |
| 人人都回很吵 | 房间还是默认 everyone,改成 lead 或 auto。 |
| cron 投递没进房 | hermes cron runs 看那次运行状态;检查 room_id 复制对没有;内容里没 @ 时看 lead/auto 是否在。 |
| 两个成员互相@停不下来 | 不会:限跳,到了就停并明示。真撞上把房间记录贴回来。 |
边界(诚实话)
- lead/auto 的界面选项以你桌面为准;先拿测试房跑一遍再上正式房。
- 桌面和 Webapp 共用同一房间列表,两边看到的一样。
- 本条上版曾把“机器人”写成 Telegram 入口,是错的(2026-11-06 已按源码 hosted rooms / lead / router 实现纠正)。