※ 本記事は、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アプリケーションの開発が可能になります。ぜひ、これらの方法を試し、次世代の音声対話体験を構築してみてください。