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