# コネクター

コネクターは、エージェントが外部の世界に対してアクションを実行するために呼び出せるツールです。各コネクターは、MQTTメッセージのパブリッシュや時系列テーブルのクエリなど、型付けされた一連のアクションを提供する外部サービスへの設定済み接続であり、エージェントやチャットは実行時にこれらを利用できます。

EMQXエージェントは現在、以下の2種類のコネクターをサポートしています。

| 種類 | 説明 |
|---|---|
| **EMQX Broker** | MQTTトピックをイベントトリガーとしてサブスクライブし、メッセージをアクションとしてパブリッシュします。 |
| **EMQX Tables** | SQLを通じて時系列データのクエリおよび書き込みを行います。 |

コネクターはデプロイメント単位で設定され、複数のエージェントやチャットで再利用可能です。

## コネクターの表示

デプロイメントの左メニューから **Connectors** をクリックすると、コネクター一覧ページが開きます。リストには設定済みのコネクターが以下の列で表示されます。

| 列 | 説明 |
|---|---|
| **Name** | コネクターに割り当てられた表示名。 |
| **Type** | コネクターの種類：EMQX Broker または EMQX Tables。 |
| **Description** | 接続内容の概要（ホストアドレスやデータベース名など）。 |
| **Updated At** | 最終更新日時。 |
| **Actions** | コネクターの編集または削除。 |

![agents_connectors_list](./_assets/agents_connectors_list.png)

## コネクターの追加

1. 左メニューの **Connectors** をクリックします。
2. **+ Add Connector** をクリックします。
3. **Add Connector** パネルでコネクターの種類を選択し、必要な項目を入力します。
4. **Confirm** をクリックします。

### EMQX Broker

このコネクタータイプは、EMQX Brokerデプロイメント上でMQTTトピックをサブスクライブし、メッセージをパブリッシュするために使用します。

| 項目 | 必須 | 説明 |
|---|---|---|
| **Type** | はい | `EMQX Broker` が自動入力されます。 |
| **Name** | はい | コネクターの表示名（例：`factory-broker`）。先頭は英字で、英数字、ハイフン、アンダースコアを含めて最大64文字まで使用可能です。 |
| **Address** | はい | `host:port` 形式のブローカーアドレス。必ずポート番号を含めます。例：暗号化なしMQTTは `broker.example.com:1883`、TLSは `broker.example.com:8883`。EMQX Brokerデプロイメントの概要ページの **MQTT Connection Information** セクションで確認できます。 |
| **Username** | いいえ | ブローカー認証用のユーザー名。資格情報はEMQX Brokerデプロイメントの **Access Control** -> **Authentication** で設定します。 |
| **Password** | いいえ | ブローカー認証用のパスワード。 |
| **Client ID Prefix** | いいえ | このコネクターが使用するMQTTクライアントIDに付与するプレフィックス。ブローカーのログでエージェント接続を識別するのに便利です。 |
| **Enable TLS/SSL** | いいえ | 接続にTLSを有効化します。デフォルトは無効です。 |
| **Default QoS** | いいえ | サブスクライブおよびパブリッシュ時のデフォルトMQTT QoSレベル。選択肢は `0`、`1`、`2`。デフォルトは `1`。 |

### EMQX Tables

このコネクタータイプは、EMQX Tablesデプロイメントのデータをクエリおよび書き込みするために使用します。

| 項目 | 必須 | 説明 |
|---|---|---|
| **Type** | はい | `EMQX Tables` が自動入力されます。 |
| **Name** | はい | コネクターの表示名（例：`factory-tables`）。 |
| **Address** | はい | `host:port` 形式のTablesサービスアドレス。デフォルトポートは `4000`。ポート番号が省略された場合は `4000` が使用されます。EMQX Tablesデプロイメントの概要ページの **Connection Info** セクションで確認できます。 |
| **Username** | いいえ | Tablesサービス認証用のユーザー名。EMQX Tablesデプロイメントの **Connection Info** セクションで確認できます。 |
| **Password** | いいえ | Tablesサービス認証用のパスワード。EMQX Tablesデプロイメントの **Connection Info** セクションで確認できます。 |
| **Database Name** | いいえ | 接続先データベース名。デフォルトは `public`。 |
| **Enable TLS/SSL** | いいえ | 接続にTLSを有効化します。デフォルトは無効です。 |

## コネクターの編集

1. **Connectors** ページで、更新したいコネクターの **Actions** 列にある編集アイコンをクリックします。
2. **Edit Connector** パネルで必要な項目を更新します。
3. **Confirm** をクリックします。

::: warning 重要なお知らせ
稼働中のエージェントが使用しているコネクターを編集すると、変更は即時反映されます。更新した認証情報やアドレスが誤っている場合、エージェントの次回実行は失敗します。
:::

## コネクターの削除

1. **Connectors** ページで、削除したいコネクターの **Actions** 列にある削除アイコンをクリックします。
2. 削除を確認します。

::: warning 重要なお知らせ
デプロイ済みのエージェントが使用中のコネクターは削除できません。まずエージェントを停止または削除してから、コネクターを削除してください。
:::

## チャットでのコネクターの使用

チャット開始時に、LLMがアクセス可能なコネクターを選択できます。これにより、LLMはエージェント定義を生成する際に適切なコネクターを参照できます。

チャットセッションで使用するコネクターを選択するには：

1. 入力欄左下のコネクターアイコンをクリックします。**Connectors** パネルが表示され、設定済みコネクターが一覧で表示されます。
2. このセッションで利用可能にしたいコネクターにチェックを入れます。
3. 新しいコネクターを追加する場合は、パネル右上の **+** をクリックします。チャットを離れることなくAdd Connectorフォームが開きます。

![agents_chat_connector_panel](./_assets/agents_chat_connector_panel.png)

選択されたコネクターは、LLMが生成するエージェント定義内のトリガーやツールの設定に使用されます。例えば、EMQX Brokerコネクターを選択すると、LLMはそれをMQTTトリガーソースおよび `mqtt.publish` アクションのターゲットとして設定できます。

## 次のステップ

- [チャットの開始](./chats.md)
- [エージェントの管理](./agents.md)
