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がリクエストを解釈し、エージェントの指示やスキルを作成し、デプロイ可能なエージェント定義を組み立てます。サポートされている画像やUTF-8テキストファイルを添付して追加コンテキストを提供可能です。チャット内で動作の調整、トリガートピックの変更、ロジックのテストを繰り返し行い、デプロイに進めます。
チャットは継続的に実行する必要のない単発タスク(例:最近のデバイスデータのクエリや運用インシデントの要約)にも有用です。
テンプレート
テンプレートは一般的なエージェントシナリオの再利用可能な組み込みの出発点です。指示、トリガー、ツール、および関連ワークスペースファイルを含みます。テンプレートはそのまま使用するか、チャット開始時に指示、変数、コネクターの選択をカスタマイズできます。
テンプレートは読み取り専用で、作成・編集・削除はできません。テンプレートをカスタマイズすると新しいチャットとワークスペースが作成され、元のテンプレートは変更されません。
エージェント
エージェントはデプロイされた長時間実行プロセスで、イベントに反応しインフラ上で動作します。各エージェントはチャットセッションから生成されたエージェント定義に基づき、隔離されたサンドボックス内で実行されます。トリガーとなるMQTTメッセージが到着すると、エージェントは実行を開始し、指示やスキルを読み込み、必要なツールを呼び出してタスクを完了します。
エージェントには名前、説明、指示、トリガー、ツール、スキルがあります。デプロイ済みの設定やワークスペースファイルはエージェント詳細ページで確認可能です。
コネクター
コネクターはエージェントやチャットが利用できる外部サービスへの設定済み接続です。各コネクターはエージェントが呼び出せる型付きのアクションセットを公開します。EMQX Agentsは以下のコネクタータイプをサポートします:
- EMQX ブローカー:トリガーとして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デプロイメント用にアップロード・管理する再利用可能なMarkdownガイドです。チャット内でスキルを参照して、異なるトピックや設定、出力要件の類似エージェントを作成する際のガイドにします。スキルを参照してもアップロード済みの
SKILL.mdファイルが自動的にデプロイ済みエージェントに追加されるわけではありません。詳細はManage EMQX Agents Skillsを参照してください。 - バンドルされたエージェントスキルはエージェントワークスペース内の再利用可能な機能で、ドメイン固有のロジック(例:デバイスごとの温度読み取りのローリング平均の維持)をカプセル化し、エージェントが実行ごとに一貫して呼び出せるようにします。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はすべてのユーザーに対し、StarterプランでPublic Betaとして提供されています。EMQX Cloudコンソールから直接Agentsのデプロイを作成可能です。Public Beta期間中は利用無料です。
| 仕様 | 値 |
|---|---|
| プラン | Starter |
| 提供状況 | Public Beta |
| ベータ期間中の課金 | 無料 |
| クラウドプラットフォーム | Google Cloud |