Skip to content

MQTTによるA2A ​

MQTTによるA2Aは、Agent-to-Agent (A2A) プロトコルをMQTTに適用するブローカーに依存しないトランスポートプロファイルです。標準化されたトピック規約、MQTT v5プロパティのマッピング、およびディスカバリー動作を定義し、異なるフレームワーク上で構築されたAIエージェントが、相互にポイントツーポイントの統合を必要とせずにMQTTブローカーを介して登録、発見、協調できるようにします。

EMQXは、A2Aレジストリという組み込み機能を通じてMQTTによるA2Aを実装しています。これは、ディスカバリートピックにパブリッシュされたエージェントカードをインデックス化し、エージェントの生存状態を追跡し、運用者向けの管理インターフェースを提供します。

ほとんどのリスナーマウントポイントとは非互換

A2Aレジストリは、マウントポイントが設定されたリスナー経由で接続されたエージェントには対応していません。唯一の例外は、acme/のようにトピックレベルが1つだけのマウントポイントで、EMQXはこれを$a2aトピックのネームスペースプレフィックスとして解析します。その他のマウントポイントでは、マウントされたトピックが$a2a/v1/規約に合致しなくなるため、エージェントカードはインデックス化や検証、生存状態の注釈なしに通常の保持メッセージとして保存されます。クライアントにはエラーは報告されません。

なぜMQTTでA2Aなのか ​

標準のA2AプロトコルはトランスポートにHTTPを使用しています。これはクラウド環境では有効ですが、分散型、IoT、またはエッジ環境のように、エージェントが制約のあるデバイス上で動作したり、NATの背後にあったり、持続的なHTTP接続が困難な環境では制限となります。

MQTTはこれらの制約に直接対応しています。

  • 軽量かつ効率的:プロトコルオーバーヘッドが最小限で、低帯域幅や不安定なネットワークに適しています。
  • ブローカー経由のルーティング:エージェント同士が互いのアドレスを知る必要がなく、ブローカーがルーティングを担当します。
  • 保持メッセージによるディスカバリー:エージェントはエージェントカードを保持メッセージとしてパブリッシュし、専用のレジストリサービスなしに即座にサブスクライバーに提供されます。
  • ネイティブなプレゼンス検出:MQTTのLast Will and Testament(LWT)により、エージェントが予期せず切断された場合に自動的にオフライン通知が行われます。
  • 集中認証:EMQXの既存の認証および認可がすべてのエージェントトラフィックに一貫して適用されます。

主な機能 ​

  • 標準化された$a2a/v1/discovery/トピック上の保持メッセージによるエージェント登録とディスカバリー
  • エージェントカードの閲覧、登録、管理を対話的に行うダッシュボードUI
  • emqx ctl a2a-registryコマンドによるCLI管理
  • 登録時にA2Aエージェントカードスキーマの検証をオプションで強制
  • ブローカー管理の生存監視:EMQXがエージェント接続状態を反映したa2a-status MQTTユーザープロパティを付与
  • MQTT v5のリクエスト/リプライ:エージェント間のタスク委譲のための標準化されたResponse TopicおよびCorrelation Data規約

詳細情報 ​