Skip to content

最初のエージェントのビルドとデプロイ

このガイドでは、EMQX Agents を使ってイベント駆動型のエージェントを作成する手順を説明します。工場のデバイスからの MQTT メッセージを監視し、各温度測定値をローリング平均と比較して、デバイスの平均温度が閾値を超えた場合にアラートをパブリッシュする温度異常監視エージェントを構築します。

このガイドの最後には、以下を実現しています。

  • EMQX Agents のデプロイメントが稼働し、EMQX ブローカーに接続されている
  • ブローカー用のコネクターが設定されている
  • ライブの MQTT イベントに反応するエージェントがデプロイされている

前提条件

  • アクティブなプロジェクトを持つ EMQX Cloud アカウント
  • 稼働中の状態にある EMQX ブローカーのデプロイメント。ブローカーは EMQX Agents のデプロイメントと同じプロジェクトおよびリージョン内にある必要があります。
  • テストメッセージをパブリッシュするための MQTT クライアント(例:MQTTX

ステップ 1: EMQX Agents のデプロイメントをリクエストする

EMQX Agents は現在ベータ版です。デプロイメントはサポートチケットを提出後、EMQX チームによってプロビジョニングされます。

  1. EMQX Cloud コンソールにログインし、プロジェクトを開きます。

  2. EMQX Agents カードで Join Beta をクリックします。

    agents_project_home

  3. 開いた Support Tickets ページで + New をクリックしてチケットを作成します。

  4. チケットフォームが開き、件名と説明が事前入力されています。必要に応じて編集し、Confirm をクリックして送信します。

EMQX チームがプロジェクト用のデプロイメントをプロビジョニングし、通知します。デプロイメントが準備できたら、それをクリックして開きます。

ステップ 2: コネクターを追加する

エージェントが MQTT トピックをサブスクライブしたりメッセージをパブリッシュしたりする前に、EMQX ブローカーを指すコネクターを設定する必要があります。

  1. EMQX Agents のデプロイメントで、左メニューの Connectors をクリックします。

  2. + Add Connector をクリックします。

  3. Add Connector パネルで以下を設定します:

    • Type: 自動的に EMQX Broker が入力されます。
    • Name: 例として factory-broker など任意の名前を入力します。
    • Address: ブローカーのアドレスを host:port 形式で入力します。必ずポート番号を含めてください。例:暗号化なしの MQTT なら broker.example.com:1883、TLS なら broker.example.com:8883。アドレスは EMQX ブローカーのデプロイメントの概要ページにある MQTT Connection Information セクションで確認できます。
    • UsernamePassword: EMQX ブローカーの Access Control -> Authentication で設定した認証情報を入力します。
    • Client ID Prefix: 空欄のままにします。クライアントIDはシステムが自動生成します。
    • このガイドでは Enable TLS/SSL はオフ、Default QoS1 のままにします。
  4. Confirm をクリックします。

コネクターがリストに表示され、Description 列にアドレスが表示されます。

agents_add_connector

ステップ 3: チャットを開始しエージェントを説明する

エージェントは対話を通じて構築します。やりたいことを説明すると、LLM がエージェント定義を生成します。

  1. 左メニューの Chats をクリックし、+ New Chat をクリックします。

  2. 入力欄の左下にあるコネクターアイコンをクリックします。設定済みのコネクター一覧が表示されます。factory-broker をチェックして、このセッションで使用可能にします。

    agents_select_connector

  3. 入力欄にエージェントにやらせたいことを記述します。このガイドでは以下を入力してください:

    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.
  4. 右下のドロップダウンから希望の思考モードを選択し、送信ボタンをクリックします。

LLM がリクエストを処理し、ローリング温度履歴を保持するスキルを作成し、MQTT トリガーとパブリッシュツールを設定した完全なエージェント定義を生成します。

ステップ 4: エージェントをデプロイする

LLM がエージェント定義の生成を終えると、チャットの下部に Deploy Agent ボタンが表示されます。

agents_chat_response

  1. Deploy Agent をクリックします。

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

    deploy_agent

  3. エージェントの作成が即座に開始され、エージェント詳細ページに遷移します。

数分後、エージェントのステータスが Running になるのを確認できます。5つのタブ(Overview, Runs, Trigger, Tools, Prompt)にチャットから生成された完全な設定が表示されます:

  • Trigger: 種類は mqtt、トピックは factory/+/+/temperature、QoS は 1factory-broker コネクターに接続。
  • Tools: mqtt.publish、トピックは alerts/anomaly に限定。
  • Prompt: LLM がこのエージェント用に書いた指示で、各イベントに対する動作を説明。

agents_agent_detail

ステップ 5: エージェントをテストする

一連のテストメッセージをパブリッシュしてエージェントをトリガーし、動作を確認します。

  1. MQTT クライアントを開き、同じ認証情報で同じ EMQX ブローカーに接続します。

  2. factory/+/+/temperature にマッチするトピック、例えば factory/plant-a/line-3/temperature に複数のメッセージをパブリッシュします。ペイロードは JSON 形式です:

    json
    {"device_id": "dev-0022", "temp": 75.1}

    70 を超える温度で少なくとも3回パブリッシュしてください。例:75.178.380.0。これでエージェントはローリング平均を計算し、閾値超過を検知できます。

  3. EMQX Agents のデプロイメントに戻り、エージェントの Runs タブを開きます。

    トリガートピックにマッチした各メッセージが1つの実行(run)を作成し、各実行は success ステータスを示します。

  4. 実行IDをクリックして詳細ページを開きます。Timeline にはその実行のイベントの流れが表示されます:

    イベント説明
    TRIGGER実行を開始した MQTT メッセージ(トピック含む)
    BUNDLE LOADEDエージェントのスキルと設定が読み込まれた
    CONTEXT LOADED会話コンテキストが準備された
    TOOLS RESOLVED実行で使用可能なツールが解決された
    SYSTEM INITエージェントのプロンプトが適用された
    TOOL RESULTエージェントが呼び出した各ツールの結果(例:readrun_scriptmqtt.publish
    LLM CALLLLM の呼び出し、入力・出力トークン数付き
    RESPONSE実行の最終応答
    RUN END実行の終了ステータス

    ローリング平均が閾値を超えた場合、タイムラインに mqtt.publish ツールの結果が表示され、Response イベントでアラートがパブリッシュされたことが確認できます。

agents_run_detail_timeline

次にやること