Gemini と Google ADK を使用してリアルタイム音声エージェントを構築する方法
Ashwini Kumar
Solution Acceleration Architect
Neeraj Agrawal
Solution Acceleration Architect
※この投稿は米国時間 2025 年 8 月 22 日に、Google Cloud blog に投稿されたものの抄訳です。
高度な会話型 AI の構築は、テキストの域をはるかに超えています。
AI を使用して、リアルタイムの音声駆動型エージェントを作成できるようになりました。しかし、これらのシステムには、低レイテンシの双方向通信、リアルタイムの情報検索、複雑なタスクを処理する能力が必要です。このガイドでは、Gemini と Google Agent Development Kit(ADK)を使用して構築する方法を説明します。インテリジェントで応答性の高い音声エージェントを作成する方法を見ていきましょう。
基盤となるエージェント
まず、ペルソナを持つエージェントを作成しますが、外部ツールにはアクセスできません。これは最もシンプルなエージェントで、事前トレーニングされた知識のみに依存しているため、優れた出発点となります。
このエージェントは会話できますが、外部情報にはアクセスできません。
高度なエージェント
エージェントを便利なものにするために、ツールを追加します。これにより、エージェントはライブデータとサービスにアクセスできるようになります。streaming_service.py では、エージェントに Google 検索と Google マップへのアクセス権を付与しています。
ツールの詳細
-
Google 検索: この事前構築された ADK ツールを使用すると、エージェントは Google 検索を実行して、最新のイベントやリアルタイムの情報に関する質問に回答できます。
-
Google マップの MCP ツールセット: Model Context Protocol(MCP)を使用して、エージェントを専用サーバー(ここでは、Google Maps API を理解するサーバー)に接続します。メインのエージェントはオーケストレーターとして機能し、処理できないタスクを専門ツールに委任します。
自然な会話の設計
RunConfig オブジェクトは、エージェントによるコミュニケーションについて定義します。これは、音声の選択やストリーミング モードなどの側面を制御します。
StreamingMode.BIDI(双方向)を使用すると、ユーザーはエージェントの話に割り込んで、より自然な会話を実現できます。
非同期コア
リアルタイムの音声チャットでは、聞く、考える、話すという複数のタスクを同時に処理する必要があります。Python の asyncio と TaskGroup は、これらの並列タスクを実行します。
エージェントの音声の翻訳
receive_service_responses タスクは、エージェントの出力を処理してユーザーに送信します。この出力には、音声とテキストの文字起こしが含まれます。
音声の処理
音声は、Base64 エンコードを使用して処理され、バイナリデータがテキスト文字列に変換されて送信されます。
テキストの処理
テキストの文字起こしがストリーミングされ、リアルタイムでフィードバックが提供されます。
開始する
ー ソリューション アクセラレーション アーキテクト、Ashwini Kumar
ー ソリューション アクセラレーション アーキテクト、Neeraj Agrawal