※ 本記事は、Agora 公式ドキュメントを含む以下情報を基に、編集・構成しました。
・https://docs.agora.io/en/conversational-ai/models/llm/dify
・https://docs.agora.io/en/conversational-ai/get-started/manage-agora-account
・https://marketplace.dify.ai/plugins/plutoless/convoai
近年、LLM (大規模言語モデル) を活用したアプリケーション開発が急速に進んでいますが、より高度でインタラクティブな体験を提供するためには、外部サービスとの柔軟な連携が鍵となります。
本記事では、特に音声対話 AI の開発において、Agora の AI エンジンと Dify という 2つの強力なツールを連携させる具体的な方法に焦点を当てます。それぞれのツールの概要から、連携の手順、そしてユースケースに応じた連携方法の比較までを掘り下げていきます。
Agora Conversational AI Engine (以下、Agora ConvoAI) は、リアルタイム通信技術のグローバルリーダーである Agora が提供する会話型 AI ソリューションです。低遅延かつ高品質な音声認識・合成技術を基盤とし、人間のように自然な対話が可能なボイスアシスタントや AI エージェントを開発できます。
Dify は、LLM アプリケーションを効率的に構築・運用するためのオープンソースプラットフォームです。プロンプトエンジニアリング、RAG (Retrieval-Augmented Generation)、エージェント機能などを GUI ベースで直感的に操作でき、バックエンドサービスとして API エンドポイントを簡単に作成できる点が特徴です。
本格的な連携手順に入る前に、以下の準備が完了している必要があります。
Agora コンソールでアカウント登録を完了し、ログインできる状態にしておきます。
上記の準備が整ったら、Dify 側で Agora のプラグインをインストールし、API エンドポイントを作成します。
※ 入力例
"tts": {
"vendor": "elevenlabs",
"params": {
"key": "<your_elevenlabs_key>",
"model_id": "eleven_flash_v2_5",
"voice_id": "pNInz6obpgDQGcFmaJgB",
"sample_rate": 24000
}
}
Agora ConvoAI と Dify を連携させる方法には、大きく分けて以下の 3つのアプローチがあります。
ここでは、これら 3つの方法を順に詳しく見ていきましょう。
これは、Dify の Agora Conversational AI プラグインで API エンドポイントを作成すると自動的に利用可能になる、テスト・デモ用の Web ページです。「連携前の準備」で取得した Endpoint URL の末尾を /convoai-web/index.html に置き換えてブラウザでアクセスするだけで、設定した Dify エージェントと音声で会話できます。
アクセス URL の例
https://[.....].ai-plugin.io/convoai-web/index.html
この方法では、 Dify プラグインが生成したエンドポイントを操作して、会話セッションを開始・停止します。
会話開始
会話を開始するために必要なパラメータは以下の通りです。
サンプルコード (cURL)
# 会話を開始する
curl 'https://[.....].ai-plugin.io/convoai/convoai-start' \
-H 'accept: application/json, text/plain, */*' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
--data-raw '{"base_url":"https://[.....].ai-plugin.io","channel":"..."}'
成功すると、対話相手であるエージェント ID ( agent_id ) を含むレスポンスを返します。
この値は、会話を停止する際に必要な情報となります。
{"agent_id":"A42AE72JP99LM29DH77DP24EJ76KP49Y","create_ts":1760956899,"status":"RUNNING"}
会話を停止するために必要なパラメータは以下の通りです。
agent_id: 対話相手のエージェント ID
サンプルコード (cURL)
# 会話を停止する
curl 'https://[.....].ai-plugin.io/convoai/convoai-stop' \
-H 'accept: application/json, text/plain, */*' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
--data-raw '{"agent_id":"A42AE72JP99LM29DH77DP24EJ76KP49Y"}'
Agora ConvoAI が用意する join RESTful API を使い、エージェントを起動する方法です。この方法では、設定パラメータの一部として Dify を LLM プロバイダーとして組み込む形になります。
以下は、ConvoAI エージェントを起動する join API に渡すリクエストボディのうち、llm パラメータ設定のサンプルです。
"llm": {
"url": "https://xxxxxx.ai-plugin.io/convoai/dify-completion",
"api_key": "<API Key generated by Dify plugin>",
"style": "dify",
"params": {
"model": "default"
}
}
この方法では、Dify は単なる LLM プロバイダーとして機能するため、 Dify プラグイン側の ASR/TTS 設定ではなく、API リクエストで設定した方が使われます。
Dify プラグインの設定は「App」の選択と「Endpoint URL」「API Key」の取得さえできれば、他の項目はダミーでも動作します。
必要なパラメータ:
この API が必要とするその他のパラメータ含む、具体的な情報は、下記ドキュメントからご確認ください。
https://docs.agora.io/en/conversational-ai/rest-api/join
ここまで 3つの連携方法を紹介してきましたが、開発者はどれを選択すべきでしょうか。ここで、それぞれの方法がどのようなユースケースに適しているか、概要を説明します。
「方法1: 動作確認用 Web ページ」が適しているケース:
「方法2: Dify エンドポイント実行型」が適しているケース:
「方法3: Agora API 実行型」が適しているケース:
詳細は以下の表で比較します。
|
項目 |
方法1: 動作確認用 Web ページ |
方法2: Dify エンドポイント実行型 |
方法3: Agora API 実行型 |
|
操作対象 |
ブラウザ |
Dify のプラグインエンドポイント |
Agora の RESTful API |
|
実装のしやすさ |
不要 (コーディング不要) |
中程度: シンプルな API リクエストのみ。 |
高度: ConvoAI の詳細な JSON 設定が必要。 |
|
ASR/TTS の設定 |
Dify プラグインでの事前設定に依存 |
Dify プラグインでの事前設定に依存 |
API 実行時に動的に指定可能 |
|
機能更新の追従性 |
Dify プラグインの開発状況に依存 |
Dify プラグインの開発状況に依存 |
Agora の公式 API に準拠 (常に最新) |
|
適したユースケース |
・動作確認、デモンストレーション |
・シンプルな API で迅速に組み込みたい ・Dify 側での事前設定で完結させたい |
・ASR/TTS などを動的に設定したい ・Agora ConvoAI の全機能を活用したい |
本記事では、Agora ConvoAI と Dify を連携させるための 3つの具体的な方法と、それぞれの特徴について解説しました。
プロジェクトの要件や開発フェーズに応じて適切な連携方法を選択することで、より洗練された会話型 AI アプリケーションの開発が可能になります。ぜひ、これらの方法を試し、次世代の音声対話体験を構築してみてください。