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規約

詳細情報