🤖HermesBlog
Hermes 消息平台接入 · 第24篇2026/8/9· Easy Understand Hermes Agent

Photon——macOS 上的 iMessage 接入

Hermes 消息平台接入第24篇:Photon。Mac 上的 iMessage 桥接。

Photon——macOS 上的 iMessage 接入

之前我们聊过用 BlueBubbles 把 iMessage 接进 Hermes,但前提是你得有一台 Mac 当“传话筒”。今天介绍的 Photon 则完全不需要——它是一家托管服务,帮你搞定了 Apple 线路分配和防滥用层,你连自己的 Mac 中继都不用跑。

免费就能用,真的

Photon 的免费档用的是共享线路池——不同的人给你发消息,看到的号码可能不一样,但每个会话的号码是稳定的。付费 Business 档则会给所有用户分配同一个专属号码。官方推荐从免费档开始,不需要订阅,只要提供一个能收 iMessage 的手机号绑定账号就行。

架构:持久连接,没有 Webhook

Photon 和 Discord、Slack 一样走持久连接不需要公网 URL,不需要 Webhook,也不需要管理签名密钥

它内部用的是 TypeScript 写的 spectrum-ts SDK,通过 gRPC 长连接和 Photon 通信。因为 SDK 只支持 TypeScript,Hermes 就在一个受监督的 Node 边车进程里跑它,然后通过 loopback 通信:

  • 收消息:边车消费 SDK 的 app.messages gRPC 流,转发给 Python 适配器,适配器去重后交给 agent,断线自动重连
  • 发消息:回复通过 loopback POST 给边车,边车调用 space.send(...)

Python 插件会自动启动、监督和关闭这个边车。

前置条件

  • Photon 账号(去 app.photon.codes 注册)
  • Node.js 18.17 或更新版本node --version 检查)
  • 一个能收 iMessage 的手机号(用来绑定账号)

就这些,不需要公网 URL 或隧道

首次设置

可以跑统一网关向导,选 Photon iMessage

hermes gateway setup

或者直接跑 Photon 设置(向导内部也是调这个):

hermes photon setup --phone +15551234567

设置过程按顺序做六件事:设备登录 → 查找/创建项目 → 启用 Spectrum 并轮换密钥 → 注册手机号 → 打印分配给你的 iMessage 线路 → 在边车目录里跑 npm install。如果安装目录只读(比如 Docker 镜像),边车会自动回退到 ~/.hermes/photon/sidecar 下的可写镜像,也可以用 PHOTON_SIDECAR_DIR 指定位置。

运行时凭证写在 ~/.hermes/.envPHOTON_PROJECT_IDPHOTON_PROJECT_SECRET),和其他通道一样。

授权用户

Photon 和其他 Hermes 通道用同一套授权模型:

DM 配对(默认):陌生号码发消息,Hermes 回复配对码,然后:

hermes pairing approve photon <CODE>

预授权号码(在 ~/.hermes/.env 里):

PHOTON_ALLOWED_USERS=+15551234567,+15559876543

完全开放(仅开发环境):

PHOTON_ALLOW_ALL_USERS=true

注意:设置了 PHOTON_ALLOWED_USERS 后,陌生号码会被静默忽略,不会收到配对码。

群聊里要求 @ 提及

默认 Hermes 回复所有授权的 DM 和群消息。想改成群聊必须 @ 才响应,在配置里加:

gateway:
  platforms:
    photon:
      enabled: true
      require_mention: true

默认匹配 Hermes@Hermes agent 变体。想自定义名字就设正则:

gateway:
  platforms:
    photon:
      require_mention: true
      mention_patterns:
        - '(?<![\w@])@?amos\b[,:\-]?'

启动网关

hermes gateway start

看到类似输出就成功了:

[photon] connected — sidecar on 127.0.0.1:8789, streaming inbound over gRPC

给你的号码发条 iMessage,Hermes 就会回复。

状态与排障

hermes photon status

会打印凭证、边车健康状态、你的注册号码和分配的 iMessage 线路。常见问题:

  • sidecar deps : ✗ — 跑 hermes photon install-sidecar
  • device token : ✗ missing — 跑 hermes photon setup 重新登录
  • No iMessage line assigned yet — Spectrum 启用了但还没分配线路,重跑 setup 即可

Photon 把最麻烦的 Apple 线路分配全包了,免费档够用,上手成本极低。快去试试吧!

📖 官方文档

本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/messaging/photon