最初のエージェントのビルドとデプロイ
このガイドでは、EMQX Agents を使ってイベント駆動型のエージェントを作成する手順を説明します。工場のデバイスからの MQTT メッセージを監視し、各読み取り値をローリング平均と比較して、デバイスの平均温度が閾値を超えた場合にアラートをパブリッシュする温度異常モニターを構築します。
このガイドの最後には、以下を実現しています。
- EMQX Broker に接続された EMQX Agents のデプロイメントが稼働している
- ブローカー用に設定されたコネクターがある
- ライブの MQTT イベントに反応するエージェントがデプロイされている
前提条件
- 有効なプロジェクトを持つ EMQX Cloud アカウント
- Running 状態の EMQX Broker デプロイメント
- テストメッセージをパブリッシュするための MQTT クライアント(例:MQTTX)
ステップ 1: EMQX Agents デプロイメントの作成
EMQX Agents はすべてのユーザーに Public Beta として提供されています。EMQX Cloud コンソールから直接 Agents デプロイメントを作成できます。
EMQX Cloud コンソールにログインし、プロジェクトを開きます。
EMQX Agents カードで + New をクリックします。

Agents デプロイメントのリージョンを選択します。Google Cloud のみがサポートされているクラウドプロバイダーです。
[任意] このガイドで Broker とプライベート接続を使用する場合は、Network Association (Optional) で Broker ネットワークを選択します。ネットワークの関連付けはコネクターが使用する Broker アドレスを変更しません。
Deploy をクリックして操作を確定します。
デプロイメント作成後にネットワークを変更することはできません。フィールドの詳細説明やネットワークオプションについては、Create an EMQX Agents Deployment を参照してください。
デプロイメントのステータスが Running に変わったら、そのデプロイメントをクリックして開きます。
ステップ 2: コネクターの追加
エージェントが MQTT トピックをサブスクライブしたりメッセージをパブリッシュしたりする前に、EMQX Broker を指すコネクターを設定する必要があります。
EMQX Agents デプロイメントで、左メニューの Connectors をクリックします。
Available タブで EMQX Broker を見つけて Add をクリックします。
Add Connector パネルで以下を入力します:
- Type:
EMQX Brokerが自動入力されています。 - Name: 例として
factory-brokerなど任意の名前を入力します。 - Address: ブローカーのアドレスを
host:port形式で入力します。必ずポート番号を含めてください。例:暗号化なし MQTT はbroker.example.com:1883、TLS はbroker.example.com:8883。アドレスは EMQX Broker デプロイメントの概要ページの MQTT Connection Information セクションで確認できます。 - Username と Password: EMQX Broker デプロイメントの Access Control -> Authentication で設定した認証情報を入力します。
- Client ID Prefix: 空欄のままにします。クライアントIDはシステムが自動生成します。
- このガイドでは Enable TLS/SSL はオフ、Default QoS は
1のままにします。
- Type:
Confirm をクリックします。
コネクターは Added タブに表示され、Description 列にアドレスが示されます。

ステップ 3: チャットを開始してエージェントを記述
エージェントは会話を通じて構築されます。やりたいことを説明すると、LLM がエージェント定義を生成します。
左メニューの Chats をクリックし、+ New Chat をクリックします。
入力欄の左下にあるコネクターアイコンをクリックします。Connectors パネルが表示され、設定済みのコネクターが一覧で表示されます。
factory-brokerをチェックして、このセッションで利用可能にします。
入力欄にエージェントにやってほしいことを記述します。このガイドでは以下を入力してください:
I want to monitor MQTT temperature events on the topic factory/+/+/temperature. Each message payload is JSON, for example: {"device_id": "dev-0042", "temp": 95.4} The agent should track the last 3 readings per device. If the rolling average exceeds 70, publish an alert to alerts/anomaly.[任意] Add File アイコンをクリックして、スクリーンショット、サンプルペイロード、UTF-8 テキストファイルなどを添付し、LLM により多くのコンテキストを提供できます。1つのチャットメッセージにつき最大3つの添付ファイルが可能で、各ファイルは最大
2 MiBまでです。詳細は Add Attachments を参照してください。右下のドロップダウンから好みの思考モードを選択し、送信ボタンをクリックします。
LLM がリクエストを処理し、エージェントの指示を生成し、ローリング温度履歴を維持するスキルを書き、MQTT トリガーとパブリッシュツールを設定した完全なエージェント定義を組み立てます。
ステップ 4: エージェントのデプロイ
LLM がエージェント定義の生成を完了すると、チャットの下部に Deploy Agent ボタンが表示されます。

Deploy Agent をクリックします。
ダイアログが表示され、Agent Name と Description が事前入力されています。必要に応じて編集し、Deploy Agent をクリックします。

エージェントの作成がすぐに開始され、エージェント詳細ページに移動します。
数分後にエージェントのステータスが Running になるのを確認できます。4つのタブ(Overview, Runs, Configuration, Skills)にはデプロイされたエージェントとそのワークスペースが表示されます:
- Configuration: エージェント用に生成された指示、MQTT トリガー、
mqtt.publishツール。トリガーはトピックフィルターfactory/+/+/temperature、QoS1、factory-brokerコネクターを使用。パブリッシュツールはalerts/anomalyに制限されています。 - Skills: このデプロイ済みエージェントにバンドルされた生成スキルとサポートファイル。ローリング温度履歴を維持し、アラートをパブリッシュするタイミングを判断します。これらのファイルは、左ナビゲーションメニューの Skills で管理されるデプロイメントレベルのスキルとは別です。

ステップ 5: エージェントのテスト
エージェントをトリガーし、動作を検証するために一連のテストメッセージをパブリッシュします。
MQTT クライアントを開き、同じ認証情報で同じ EMQX Broker に接続します。
factory/+/+/temperatureにマッチするトピック(例:factory/plant-a/line-3/temperature)に複数のメッセージをパブリッシュします。JSON ペイロード例:json{"device_id": "dev-0022", "temp": 75.1}温度が 70 を超える値(例:
75.1,78.3,80.0)を少なくとも3回パブリッシュします。これによりエージェントは閾値を超えるローリング平均を計算できます。EMQX Agents デプロイメントに戻り、エージェントの Runs タブを開きます。
トリガートピックにマッチした各メッセージが1つの実行を作成し、完了した実行は Succeeded ステータスを示します。
実行IDをクリックして実行詳細ページを開きます。Timeline にはその実行のイベントシーケンスが表示されます:
イベント 説明 TRIGGER実行を開始した MQTT メッセージ(トピック含む) BUNDLE LOADEDエージェントのスキルと設定が読み込まれた CONTEXT LOADED会話コンテキストが準備された TOOLS RESOLVED実行で利用可能なツールが解決された SYSTEM INITエージェントの指示が適用された TOOL RESULTエージェントが呼び出した各ツール(例: read,run_script,mqtt.publish)LLM CALLLLM の呼び出し、入力・出力トークン数付き RESPONSE実行に対するエージェントの最終応答 RUN END実行の終了ステータス ローリング平均が閾値を超えた場合、
mqtt.publishツールの結果がタイムラインに表示され、Response イベントでアラートがパブリッシュされたことが確認できます。

任意: MCP コネクターを使ったエージェントの構築
MCP コネクターを使うと、エージェントやチャットが Model Context Protocol (MCP) を通じて外部サービスを利用できます。
Slack などの外部サービスを使うエージェントを構築したい場合は、この任意のフローを使います。このフローはメインチュートリアルの MQTT 温度モニターとは異なるリクエストのため、別のチャットを使用します。
ステップ 1: MCP コネクターの追加
EMQX Agents デプロイメントで左メニューの Connectors をクリックします。
Available タブで MCP コネクターサービスとして Slack を見つけます。
コネクターカードの Add をクリックします。
Add Connector パネルでコネクターの Name を入力します。例:
ops-slack。Type フィールドは選択したサービスで自動入力され、他の設定は不要です。Confirm をクリックします。

コネクターは Unauthorized ステータスで追加され、EMQX Agents は選択したサービスの認可ダイアログを開きます。外部認可フローを完了してください。認可が成功すると、Added タブでコネクターのステータスが Authorized に変わります。
ダイアログを閉じるか認可に失敗した場合は、Added タブに戻り、コネクターの認可再試行操作をクリックしてください。
ステップ 2: MCP コネクターを使ったチャットの開始
左メニューの Chats をクリックし、+ New Chat をクリックします。
入力欄左下のコネクターアイコンをクリックします。
Connectors パネルで作成した MCP コネクターを選択します。
以下の例では MQTT イベントと Slack 通知を使うため、
factory-brokerと認可済みの Slack コネクターの両方を選択します。Authorized な MCP コネクターのみ選択可能です。コネクターが表示されているが無効の場合は、Connectors ページに戻り認可を完了または再試行してください。

以下のリクエストを入力します:
Listen to MQTT topic /devices/#. If the temperature in the MQTT message is above 30, please send a warning message to Slack. Channel: <channel-name>.<channel-name>は通知したい Slack チャンネル名に置き換えてください。好みの思考モードを選択し、送信ボタンをクリックします。
LLM が選択した MCP コネクターのツールを含むエージェント定義を生成します。
ステップ 3: MCP エージェントのデプロイ
生成された定義が準備できたら Deploy Agent をクリックします。
事前入力された Agent Name と Description を確認し、Deploy Agent をクリックします。
エージェント詳細ページを開き、Configuration と Skills タブで生成されたエージェントが選択した MCP コネクターを使用し、リクエストされた動作を実装していることを確認します。
ステップ 4: MCP エージェントのテスト
チャットリクエストに記述された MQTT トピックと Slack アクションに従って MCP エージェントをテストします。このテストフローはメインチュートリアルの温度異常モニターとは異なります。
MQTT クライアントを使い、
/devices/#にマッチするトピック(例:/devices/device-001)にテストメッセージをパブリッシュします。json{"device_id": "device-001", "temperature": 31}リクエストで指定した Slack チャンネルに警告メッセージが届いているか確認します。
EMQX Agents に戻り、実行詳細ページを開きます。MCP コネクターの呼び出しは実行タイムラインのツール結果として表示され、最終 Response イベントで結果が要約されます。
次にやること
- 生成されたスキルの再利用 で異なるトピックや設定、出力要件のエージェントを作成する
- EMQX Tables コネクターの追加 でエージェント内から時系列データのクエリや書き込みを行う
- MCP コネクターの管理 で Gmail や Slack などの外部サービスをエージェントに利用させる
- エージェントの確認と管理 で実行履歴の監視、タイムラインの検査、動作更新による再デプロイを行う
- コネクターの更新 で認証情報の変更や追加ブローカーへの接続を設定する