hermes peer:让 agent 跨配置、跨机器互发私信

你的调研 agent 刚找到了你找了一个小时的答案——而你现在要做的是多 agent 计算里最枯燥的活:把文字从聊天窗口里复制出来,切到写代码的 agent,粘进去,祈祷格式没乱。v0.21.0 带来一条命令,把这步彻底省掉:hermes peer 让任何 Hermes agent 都能按名字给别的 agent 发消息,跨配置、跨网关——在终端里发,或在对话中直接发起。你的调研 bot 可以把结论直接递给写代码的 bot,回复再原路传回你眼前。
hermes peer 到底是什么
hermes peer 是 Hermes 网关之间的 bot 私信通道。不用你当中间人,一个 agent 直接给另一个 agent 的地址——<peer> 或 <peer>/<agent>——发消息,消息会投递进对方 agent 的标准 Bot Chat:每个 agent 都有一份为 bot 间流量保留的持久会话。agent 之间的对话可查、可追溯,不是发完就忘。它是 hermes -p <bot> chat 的跨机器版,走的是各网关的 API server。
前置条件
你要发消息的对端必须是一个启用了 api_server 平台的 Hermes 网关——这是 hermes peer 的通信面。它的 API_SERVER_KEY 就是你要在本地注册的凭证,会存进 ~/.hermes/.env,密钥本身不会出现在配置文件或聊天消息里。
注册一个 peer
hermes peer add spark --url http://spark.lan:8377 --key <API_SERVER_KEY> --note "homelab 网关"
hermes peer list
hermes peer add(别名 set)注册网关;hermes peer list(别名 ls)查看已有列表;hermes peer remove spark(别名 rm)删除。如果对端是跑多 profile 的多路复用网关,用斜杠指名:spark/researcher。
发消息
hermes peer dm spark "家里服务器的磁盘还好吗?"
hermes peer dm <peer>[/<agent>] "<消息>" 把消息投递进远端 agent 的 Bot Chat,并在 agent 回应后打印回复。也可以从 stdin 传消息(hermes peer dm spark < long-task.txt);脚本需要结构化输出时加 --json。
长任务:run / status / stop
DM 会阻塞到回复返回——问个快问题没问题,跑 20 分钟的分析就错了。为此 hermes peer 提供异步三件套:
hermes peer run spark "分析一下这份完整日志" --idempotency-key ticket-123
hermes peer status spark run_abc123
hermes peer stop spark run_abc123
hermes peer run 异步启动这一轮并返回 run ID。--idempotency-key 让重试变得安全:脚本丢失响应后用同一个键重发,对端不会把任务跑两遍。hermes peer status 读取运行进度与最终输出;hermes peer stop 取消运行并返回已有结果。
用退出码写脚本
命令保持脚本友好:0 = 成功、1 = 投递/peer 错误、2 = 用法错误。配合 --json,你可以把 bot 间通信接进自己的自动化——监控 agent 呼叫写代码 agent、夜间任务把报告递给简报 bot、家庭服务器看门狗在磁盘满时私信你。
在多 agent 图景中的位置
hermes peer 与 Bot Mode 群聊互补(v0.21.0 里 Bot Mode 已内置进桌面应用:多个 bot 加你在一个房间里)——Bot Mode 是社交面,hermes peer 是不同机器上 agent 之间的直连。同一会话内的并行工作仍用子代理实时编排。如果要把 cron 输出接进 bot,配套的按 profile 投递修复保证每个 profile 用自己的身份投递。