EMQXエージェントをSupabaseに接続する
Supabaseコネクターを使用すると、EMQXエージェントがデータベーステーブルのクエリ実行、SQLの実行、テーブルスキーマの確認、エッジ関数の一覧表示および呼び出しを行えます。これにより、アプリケーションデータやサーバレス関数をEMQXエージェントのワークフローと組み合わせて利用できます。
よくあるユースケース
- MQTTデバイスイベントに関連するアプリケーションレコードの読み取り。
- クエリ生成前にテーブルスキーマを確認。
- SQLを通じてワークフローの結果をデータベーステーブルに書き込む。
- エージェントがイベントを検証した後にエッジ関数を呼び出す。
チャットプロンプトの例:
text
app-supabaseコネクターを使って利用可能なテーブルを一覧表示し、device_alertsのスキーマを確認し、直近の5件の重大なアラートをクエリしてください。前提条件
コネクターを追加する前に、以下を準備してください:
- 必要な組織およびプロジェクトにアクセスできるSupabaseアカウント、または認証時にそれらを作成する権限。
- データベースおよびエッジ関数操作の認可権限。
- ワークフローで必要なテーブルおよびSQL操作に対するデータベース権限。
Supabaseコネクターの追加方法
- 左側のナビゲーションメニューで Connectors をクリックします。
- Available タブで Supabase を見つけて Add をクリックします。
- 説明的なコネクター名を入力します。
- Confirm をクリックすると、Supabaseの認証フローがダイアログで開きます。
- Base URL は、セルフホスト型Supabaseを使用しない限り、デフォルトの
https://api.supabase.comのままにします。 - Connect Account をクリックします。
- Supabaseにサインインします。GitHub、SSO、メールとパスワードなどの利用可能なサインイン方法を選択してください。Supabaseアカウントをお持ちでない場合は、Sign up をクリックして作成してください。
- GitHubでサインインした場合は、アクセス要求を確認し、Authorize supabase をクリックします。
すでにSupabaseの組織とプロジェクトをお持ちの場合は、Composioの認可に進んでください。そうでない場合は、認可を完了する前に作成してください。
必要に応じてSupabaseの組織とプロジェクトを作成する
- Supabaseが利用可能な組織がないと報告した場合は、Create an organization をクリックします。
- Create a new organization ページで、組織の Name を入力し、Type と Plan を選択して、Create organization をクリックします。
- Create a new project ページで組織を選択します。必要に応じてGitHubを接続します。
- Project name と強力な Database password を入力します。
- Region を選択します。
- Enable Data API、Automatically expose new tables、Enable automatic RLS などのセキュリティ設定を確認します。
- Create new project をクリックします。
Composioの認可
- Authorize Composio ページに戻り、接続する組織を選択します。
- 選択した組織に対する読み取りおよび書き込みアクセス(データベース、シークレット、認証、エッジ関数、環境、プロジェクト、ドメイン、PostgREST、分析、ストレージなど)を確認します。
- Authorize Composio をクリックします。
- 成功メッセージが表示されるまで待ち、EMQXエージェントに戻ります。
- Added タブでコネクターのステータスが Authorized であることを確認します。
サポートされるツール
データベース
| ツール | アクセス | 説明 |
|---|---|---|
SUPABASE_BETA_RUN_SQL_QUERY | 書き込み | SupabaseプロジェクトのデータベースでSQLクエリを実行します。 |
SUPABASE_RUN_READ_ONLY_QUERY | 読み取り | 読み取り専用のSQLクエリを実行します。 |
SUPABASE_SELECT_FROM_TABLE | 読み取り | 選択したデータベーステーブルから行をクエリします。 |
SUPABASE_GET_TABLE_SCHEMAS | 読み取り | データベーステーブルのスキーマを取得します。 |
SUPABASE_LIST_TABLES | 読み取り | データベース内のテーブルを一覧表示します。 |
エッジ関数
| ツール | アクセス | 説明 |
|---|---|---|
SUPABASE_GET_FUNCTION | 読み取り | エッジ関数の詳細を取得します。 |
SUPABASE_INVOKE_EDGE_FUNCTION | 書き込み | エッジ関数を呼び出します。 |
SUPABASE_LIST_FUNCTIONS | 読み取り | プロジェクト内のエッジ関数を一覧表示します。 |
重要なお知らせ
書き込み可能なSQLツールは、認可されたロールが許可する場合、データベースのデータを変更または削除する可能性があります。書き込みを必要としないワークフローには、読み取り専用クエリと最小権限のデータベースアクセスを使用してください。
チャットでのコネクターの使用方法
- チャット入力欄でコネクターアイコンをクリックします。
- 認可済みの Supabase コネクターを選択します。
- プロンプトに、エージェントが使用すべき外部リソースと操作を指定します。
- 生成されたエージェント定義を確認し、必要なツールのみが含まれていることを確認します。
権限とデータアクセス
コネクターは認可されたSupabase組織およびアカウントの権限を使用します。データベースロール、Row Level Securityポリシー、テーブル権限、エッジ関数の認可がアクセス可能なデータおよび操作を決定します。
チャットプロンプトやエージェント指示に外部サービスの認証情報やアクセストークンを含めないでください。
制限事項
- SupabaseのAPIおよびデータベースの制限が適用されます。
- Row Level Securityによりクエリ結果や書き込み操作が制限される場合があります。
- エッジ関数の利用可能性および動作は、選択したプロジェクトと関数の設定に依存します。
トラブルシューティング
| 症状 | 解決策 |
|---|---|
| コネクターが Unauthorized のままになる。 | 認可を再試行し、Base URL を確認し、Supabaseにサインインして組織を選択し、Authorize Composio をクリックしてください。 |
| 認可ページで利用可能な組織がないと報告される。 | Create an organization をクリックし、必要に応じてプロジェクトを作成してから認可ページに戻ってください。 |
| ツールが権限エラーを返す。 | 認可されたアカウントが選択した組織、対象プロジェクト、リソース、操作にアクセスできるか確認してください。 |
| 必要なツールが利用できない。 | ツールがこのコネクターでサポートおよび承認されているか確認し、チャットで再度コネクターを選択してください。 |
| リクエストが断続的に拒否される。 | 外部サービスのステータス、APIクォータ、レート制限、アカウントプランを確認してください。 |