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の上に構築されています。EMQX Agentsのデプロイメントは、同じリージョン内に少なくとも1つのブローカーまたはTablesのデプロイメントが存在する既存のネットワークに関連付ける必要があります。
コアコンセプト
チャット
チャットは組み込みの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つのインバウンドイベントによってトリガーされたエージェントの単一実行です。各実行にはステータス、実行時間、トークン使用量、エージェントが実行した内容(呼び出したツール、受け取ったレスポンス、最終結果)を示すイベントタイムラインがあります。
実行ステータスには以下があります:
| ステータス | 意味 |
|---|---|
success | エージェントがタスクを完了しました。 |
failed | エージェントが回復不能なエラーに遭遇しました。 |
timeout | 実行が設定された時間制限を超えました。 |
cancelled | 実行が完了前にキャンセルされました。 |
スキル
スキルはチャット中にLLMが生成し、エージェント定義にバンドルされる再利用可能な機能です。スキルはドメイン固有のロジック(例:デバイスごとの温度のローリング平均の維持)をカプセル化し、エージェントが実行ごとに一貫して呼び出せるようにします。スキルは自動生成され、手動で作成する必要はありません。
動作の流れ
コネクターを追加します。 EMQX ブローカー、EMQX Tables、EMQX Fleets、またはMCPサービスを接続し、エージェントがデータ、メッセージング基盤、デバイスレジストリ、外部ツールにアクセスできるようにします。
チャットで自動化内容を記述します。 新しいチャットを開き、使用したいコネクターを選択し、やりたいことを自然言語で説明します。LLMがトリガー、ツール、スキル、プロンプトを含む完全なエージェント定義を生成します。
エージェントをデプロイします。 チャット内のDeploy Agentをクリックして、生成された定義から実行中のエージェントを作成します。エージェントは設定されたMQTTトピックの監視を即座に開始します。
イベントが実行をトリガーします。 トリガートピックにMQTTメッセージが届くたびに、エージェントが実行されます。ロジックを適用し、
mqtt.publish、tables.sql、またはMCPコネクターが公開するツールを呼び出してタスクを完了します。監視と反復。 エージェント詳細ページで実行履歴、成功率、トークン使用量、実行ごとのタイムラインを確認します。動作を変更したい場合はチャットに戻り、再デプロイします。
主なユースケース
- 異常検知:デバイスのテレメトリを監視し、ローリング平均が閾値を超えた際にアラートをパブリッシュする。
- インシデント要約:最近のMQTTイベントを集約し、オンデマンドで人間が読める要約を生成する。
- 条件付きアクション:センサーデータが定義された条件を満たしたときにデバイストピックへコマンドをパブリッシュする。
- データ強化:MQTTイベントに応じてEMQX Tablesをクエリし、その結果をブローカーにパブリッシュする。
- 外部ワークフロー自動化:MCPコネクターを使ってGmailやSlackなどのサービスと連携する。
- 運用通知:停止したデバイスやハートビートの欠落を検知し、オンコールチームに通知する。
プランと提供状況
EMQX Agentsは現在、Starterプランのプライベートベータとして提供されています。アクセスを希望する場合は、コンソールのEMQX AgentsカードでJoin Betaをクリックし、事前入力済みのサポートチケットを送信してください。リクエストが承認されると、EMQXチームがプロジェクト用にデプロイメントをプロビジョニングします。ベータ期間中の利用は無料です。
| 仕様 | 値 |
|---|---|
| プラン | Starter |
| 提供状況 | プライベートベータ |
| ベータ期間中の課金 | 無料(トライアル) |
| クラウドプラットフォーム | AWS、Google Cloud |