Hermes Relay — インスタンスを接続する
Hermes Relay — インスタンスを接続する — 公式ドキュメントに基づく分かりやすいガイド
Hermes Relayは、「かけ直してくれる電話ボックス」 みたいなものだと思ってください。自分の家の住所を教える必要はなく、一度こっちから電話をかけておけば、相手はその同じ回線を通じて、いつでもこちらの電話に出ることができます。
Hermes Relayとは?
Hermes Relayは、Hermes Agentゲートウェイのためのコネクタシステムです。これを使うと、DiscordやTelegram、Slackといったメッセージングプラットフォームと、それらのボットトークンやパスワードを一切持たずに通信できるようになります。
代わりに、別のサービス(「コネクタ」)がそれらの認証情報を保持します。ゲートウェイは、単一の安全なWebSocket接続を通じてコネクタに発信するだけで、以降はすべてのメッセージがその開かれた回線を通じてやり取りされます。
なぜ便利なのか?
その利点を、わかりやすく説明します。
- ポートを開放する必要がない。 ゲートウェイは、家庭用ルーターの内側やクラウドのファイアウォールの内側でも動作します。送信専用の接続しか行わないため、インターネットに何かを公開する必要がありません。
- マシン上にボットの秘密情報がない。 コネクタ側がすべてのプラットフォームトークンを保持します。もしゲートウェイが盗まれても、攻撃者が得られるものは何もありません。
- 1つのゲートウェイで、複数のプラットフォームに対応。 コネクタは、接続時にゲートウェイへ、何ができるか(メッセージ長、マークダウン、編集、スレッドなど)を伝えます。ハードコードされたルールはなく、ただ適応するだけです。
使用するタイミング: 自分でボットを直接運用している場合は、Relayを使わずにネイティブアダプタ(Telegram、Discord)を使用してください。Relayは、共有またはホスト型のコネクタがプラットフォーム側を管理するセットアップ、例えばマルチテナントホスティングや、単に自分のマシンにトークンを置きたくない場合に適しています。
ゲートウェイを登録する方法
登録は一度きりのセットアップです。コマンドを1つ実行するだけで、残りはHermesが処理します。
まず、登録トークン(コネクタプロバイダーによって発行されます)があることを確認してください。次に、以下を実行します。
hermes gateway enroll \
--token <enrollment-token> \
--connector-url wss://connector.example.com/relay
処理は次のように段階的に進みます。
- Hermesは、既存のログイン情報(
~/.hermes/auth.json)を確認し、所属する組織を証明します。 - 独自のアイデンティティプロバイダーを設定している場合(エアギャップ環境や自己ホスト型セットアップ用)は、それが代わりに使用されます。
- 登録トークンを、TLS経由でコネクタの
/relay/enrollエンドポイントに送信します。 - コネクタは、トークンが有効で、一度きりで、テナントと一致することを検証します。
- 次に、ゲートウェイごとのシークレットと配信キーを生成し、一度だけ返します。
- Hermesはこれらを
~/.hermes/.envに保存します:
GATEWAY_RELAY_ID
GATEWAY_RELAY_SECRET
GATEWAY_RELAY_DELIVERY_KEY
これで完了です。これでゲートウェイは「登録済み」となり、必要なときにいつでもコネクタに発信できるようになります。
次に何が起こるのか?
登録が完了すると、ゲートウェイは次のことを行います。
- 指定されたコネクタURLに発信します。
- 機能記述子(フロントとなるプラットフォームで何ができるか)を受け取ります。
- 同じソケット上で、正規化されたメッセージとアクションの交換を開始します。
受信ポートも、追加の認証情報も、プラットフォーム固有のコードも必要ありません。
まとめと実用的なヒント
まとめ: Hermes Relayは、認証情報を所有したりポートを開放したりせずに、ゲートウェイをメッセージングプラットフォームに接続するためのクリーンな方法です。共有ホスティング、NAT環境、またはメインマシンに秘密情報を置きたくないあらゆるセットアップに最適です。
実用的なヒント: 登録トークンは常に一度きりで短命にしてください。認証情報をローテーションする必要がある場合は、新しいトークンで登録コマンドを再実行するだけです。そして、.envファイルを更新する前に、古いGATEWAY_RELAY_SECRETを必ず削除してください。ちょっとした心がけが、大きな安心につながります。
📖 公式ドキュメント
この記事は Hermes Agent の公式ドキュメントに基づいています:公式ドキュメント › user-guide/messaging/relay