EMQX Agents
EMQX Agentsは、EMQX Cloud上でホストされるサービスで、MQTTおよび時系列データを基にイベント駆動型のAIエージェントを構築・実行するためのものです。カスタムの自動化コードを書く代わりに、エージェントにやってほしいことを自然言語で記述すると、プラットフォームがそれを構築してデプロイします。
エージェントはMQTTメッセージに反応し、時系列データをクエリし、デバイスに対してアクションをパブリッシュします。追加のミドルウェアや長時間実行されるサービスループを管理する必要はありません。
EMQX Agents in EMQX Cloud
EMQX AgentsはEMQX Cloudプラットフォームの自動化レイヤーです:
| サービス | 役割 | タグ |
|---|---|---|
| EMQX ブローカー | MQTTメッセージの転送 | CONNECT |
| EMQX Tables | 時系列データのストレージ | STORE |
| EMQX Fleets | デバイスレジストリおよび状態管理 | MANAGE |
| EMQX Agents | イベント駆動型AI自動化 | AUTOMATE |
EMQX AgentsはEMQX ブローカーおよびEMQX Tablesとコネクターを通じて連携します。Agentsのデプロイメントは他のサービスの前後どちらでも作成可能です。デプロイメント作成時に、EMQX ブローカー、EMQX Tables、またはEMQX Fleetsのデプロイメントで使用されている互換性のあるネットワークを選択すると、同じVPC内にサービスを配置してプライベート接続が可能です。異なるネットワークにあるサービスはパブリックアドレスを通じて通信します。
コアコンセプト
チャット
チャットは組み込みのLLM(大規模言語モデル)との対話で、エージェントにやってほしいことを記述します。LLMがリクエストを解釈し、エージェントの指示やスキルを作成し、デプロイ可能なエージェント定義を組み立てます。チャット内で動作の調整、トリガートピックの変更、ロジックのテストを繰り返し行い、デプロイ前に完成度を高められます。
チャットは継続的に実行する必要のない一時的なタスク(例:最近のデバイスデータのクエリや運用インシデントの要約)にも便利です。
テンプレート
テンプレートはよくあるエージェントシナリオの再利用可能な組み込みの出発点です。テンプレートには指示、トリガー、ツール、サポート用のワークスペースファイルが含まれます。テンプレートはそのまま使うことも、チャット開始時に指示や変数、コネクターの選択をカスタマイズすることも可能です。
テンプレートは読み取り専用で、新規作成・編集・削除はできません。テンプレートをカスタマイズすると、新しいチャットとワークスペースが作成され、元のテンプレートは変更されません。
エージェント
エージェントはデプロイされた長時間実行のプロセスで、イベントに反応してインフラ上でアクションを実行します。各エージェントはチャットセッションから生成されたエージェント定義に基づき、隔離されたサンドボックス環境で動作します。トリガーとなるMQTTメッセージが届くと、エージェントは実行を開始し、指示やスキルを読み込み、必要なツールを呼び出してタスクを完了します。
エージェントには名前、説明、指示、トリガー、ツール、スキルがあります。エージェント詳細ページからデプロイ済みの設定やワークスペースファイルを確認できます。
コネクター
コネクターはエージェントやチャットが利用できる外部サービスへの設定済み接続です。各コネクターはエージェントが呼び出せる型付きのアクションセットを公開します。EMQX Agentsは以下のコネクタータイプをサポートしています:
- EMQX ブローカー:MQTTトピックをトリガーとしてサブスクライブし、アクションとしてメッセージをパブリッシュします。
- EMQX Tables:SQLを通じて時系列データのクエリと書き込みを行います。
- EMQX Fleets:EMQX Fleetsのデバイスレジストリおよび関連するデバイス管理機能を操作します。
- MCPコネクター:Model Context Protocol(MCP)を通じてGmailやSlackなどの外部ツールに接続します。MCPコネクターは作成時にコネクター名のみを指定し、作成後にEMQX Agentsが自動的に認証フローを開始します。
コネクターはデプロイメント単位で作成・管理され、複数のエージェントやチャットで再利用可能です。
実行(Run)
実行はエージェントが1つのインバウンドイベントによってトリガーされる単一の処理です。各実行にはステータス、実行時間、トークン使用量、エージェントが行った操作(呼び出したツール、受け取ったレスポンス、最終結果)を示すイベントタイムラインがあります。
実行ステータスは以下の通りです:
| ステータス | 意味 |
|---|---|
| Queued | 実行キューで待機中です。 |
| Running | 実行中です。 |
| Succeeded | 実行が正常に完了しました。 |
| Dropped | 実行キューが満杯のため開始されませんでした。 |
| Failed | 実行エラーにより終了しました。 |
| Timeout | 実行時間制限を超過しました。 |
スキル
スキルはエージェントのワークスペースにバンドルされた再利用可能な機能です。スキルはドメイン固有のロジック(例:デバイスごとの温度測定値のローリング平均の維持)をカプセル化し、エージェントが一貫して呼び出せるようにします。Builderはチャット中にスキルを生成したり、テンプレートから継承したスキルを更新したりできます。
動作の流れ
コネクターを追加する。 EMQX ブローカー、EMQX Tables、EMQX Fleets、またはMCPサービスを接続し、エージェントがデータ、メッセージング基盤、デバイスレジストリ、外部ツールにアクセスできるようにします。
作成方法を選択する。 チャットを開始して自動化内容を自然言語で記述するか、組み込みテンプレートを選択して指示をカスタマイズします。
ワークスペースを確認・調整する。 Builderがエージェントの指示、トリガー、ツール、スキル、スクリプト、アセットを作成または更新します。チャットを続けて不足している変数やコネクターを提供し、動作を調整します。
エージェントをデプロイする。 エージェント定義が検証を通過したら、チャット内のDeploy Agentをクリックして生成された定義から実行中のエージェントを作成します。
イベントが実行をトリガーする。 トリガートピックにMQTTメッセージが届くたびにエージェントが実行を開始します。ロジックを適用し、
mqtt.publish、tables.sql、またはMCPコネクターが公開するツールを呼び出してタスクを完了します。監視と反復。 エージェント詳細ページから実行履歴、成功率、トークン使用量、実行ごとのタイムラインを確認します。動作を変更するにはチャットに戻って再デプロイします。
主なユースケース
- 異常検知:デバイスのテレメトリを監視し、ローリング平均が閾値を超えたらアラートをパブリッシュする。
- インシデント要約:最近のMQTTイベントを集約し、必要に応じて人間が読める要約を生成する。
- 条件付きアクション:センサーデータが定義条件を満たしたときにデバイストピックにコマンドをパブリッシュする。
- データ強化:MQTTイベントに応じてEMQX Tablesをクエリし、その結果をブローカーにパブリッシュする。
- 外部ワークフロー自動化:MCPコネクターを使ってGmailやSlackなどのサービスと連携する。
- 運用通知:デバイスの停止やハートビートの欠如を検知し、オンコールチームに通知する。
プランと提供状況
EMQX AgentsはすべてのユーザーにPublic BetaとしてStarterプランで提供されています。EMQX Cloudコンソールから直接Agentsのデプロイメントを作成可能です。Public Beta期間中は利用無料です。
| 仕様 | 値 |
|---|---|
| プラン | Starter |
| 提供状況 | Public Beta |
| ベータ期間中の課金 | 無料 |
| クラウドプラットフォーム | Google Cloud |