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などの外部ツールと接続します。MCPコネクターは作成時にコネクター名のみ必要で、作成後にEMQX Agentsが自動的に認可フローを開始します。
コネクターはデプロイ単位で作成・管理され、複数のエージェントやチャットで再利用可能です。
実行(Run)
実行は単一のインバウンドイベントによってトリガーされるエージェントの一回の実行です。各実行にはステータス、実行時間、クレジット使用量、エージェントが実際に行った操作(呼び出したツール、受け取ったレスポンス、最終結果)を示すイベントタイムラインがあります。
実行ステータスは以下の通りです:
| ステータス | 意味 |
|---|---|
| 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プランのPublic Betaとして提供されています。EMQX Cloudコンソールから直接Agentsデプロイを作成可能です。Public Beta期間中の利用は無料です。
| 仕様 | 内容 |
|---|---|
| プラン | Starter |
| 提供状況 | Public Beta |
| ベータ期間中の課金 | 無料 |
| クラウドプラットフォーム | Google Cloud |