Skip to content

プラットフォームアダプタ

源码版本v2026.7.20

職務

各プラットフォーム(Telegram、Discord、Slack、Signal、WhatsApp、微信、QQ…)にアダプタがあり、プラットフォームネイティブイベントを統一 MessageEvent に翻訳し、統一送信アクションをプラットフォーム API に翻訳し戻す。アダプタは BasePlatformAdapter を継承し、少数の抽象メソッドを実装するだけでよい。アダプタは内蔵 gateway/platforms/ またはプラグイン plugins/platforms/ から提供され、どちらも PlatformRegistry に登録される。

主要ファイル

データフロー

  1. 起動期 GatewayRunner(gateway/run.py:3029) が _start_one_profile_adapter:9389 経由でアダプタを起動する。
  2. アダプタは PlatformRegistry(gateway/platform_registry.py:162) から名前で探し、deferred ロードをサポート(安価にプレースホルダを置き、実際に使う時にインポート)。
  3. アダプタはプラットフォームイベントを監視し、MessageEvent:1759 に翻訳して _handle_message:9947 に渡す。
  4. agent がストリーミング出力を出すと、アダプタは統一インターフェース(send:3008 / send_draft)で内容をプラットフォームに配信する。メディアは CachedMedia:1638 でキャッシュする。
  5. プラットフォーム差異(メッセージ長、リッチテキスト、画像上限)はすべてアダプタ内部に吸収され、ゲートウェイコアは関与しない。

まとめ

アダプタ = 「プラットフォーム方言 ↔ 統一イベント」の翻訳器。新規プラットフォームは BasePlatformAdapter を継承していくつか抽象メソッドを実装し登録するだけでよく、gateway/platforms/ADDING_A_PLATFORM.md を参照。Telegram/Discord/Slack はプラグインパスを通り、内蔵アダプタと同等に扱われる。

非公式コミュニティ学習サイト。MIT ライセンスの NousResearch/hermes-agent ソースに基づく。