1. 双方向ストリーミングとは
双方向ストリーミング(bidi-streaming)により、アプリケーションと AI モデル間の同時双方向通信が可能になります。完全なメッセージを送信して完全な返信を待つ従来のリクエスト / レスポンス パターンとは異なり、双方向ストリーミングでは次のことが可能です。
- 継続的な入力: 音声、動画、テキストをキャプチャしながらストリーミングする
- リアルタイム出力: AI の回答が生成されるとすぐに受け取ることができます
- 自然な中断: ユーザーは、人間との会話と同じように、AI の回答の途中で中断できます。

重要性: 双方向ストリーミングにより、AI との会話が自然に感じられます。AI は、ユーザーがコンテキストを提供している間も応答できます。また、人間と話すときと同じように、十分な情報を得た時点で AI の応答を中断することもできます。
ADK Gemini Live API ツールキットとは
Agent Development Kit(ADK)は、Gemini Live API の高レベルの抽象化を提供し、リアルタイム ストリーミングの複雑な配管を処理するため、アプリケーションの構築に集中できます。

ADK Gemini Live API ツールキットは、次のものを管理します。
- 接続のライフサイクル: WebSocket 接続の確立、維持、復元
- メッセージ ルーティング: 音声、テキスト、画像を適切なハンドラに転送する
- セッション状態: 再接続間で会話履歴を保持する
- ツールの実行: 関数呼び出しからの自動呼び出しと再開
生の Live API ではなく ADK を使用する理由
Gemini Live API で直接構築することもできますが、ADK は複雑なインフラストラクチャを処理するため、アプリケーションに集中できます。

機能 | Raw Live API | ADK Gemini Live API ツールキット |
エージェント フレームワーク | 最初からビルドする | ツール、評価、セキュリティを備えた単一エージェント/マルチエージェント |
ツールの実行 | 手動処理 | 自動並列実行 |
接続管理 | 手動再接続 | 透過的なセッションの再開 |
イベントモデル | カスタム構造 | 統合された型付きイベント オブジェクト |
非同期フレームワーク | 手動調整 | LiveRequestQueue + run_live() ジェネレータ |
セッションの永続性 | 手動実装 | 組み込みの SQL、Vertex AI、インメモリ |
まとめ: ADK を使用すると、インフラストラクチャの開発に数か月かかっていたものが、アプリケーションの開発に数日しかかからなくなります。ストリーミングの仕組みではなく、エージェントの動作に焦点を当てます。
実際のユースケース
- カスタマー サービス: お客様が電話のカメラで欠陥のあるコーヒーメーカーを見せながら、問題について説明しています。AI がモデルと故障箇所を特定し、お客様は会話の途中で詳細を修正できます。
- e コマース: 買い物客がウェブカメラに服をかざして「このパンツに合う靴を探して」と尋ねています。エージェントはスタイルを分析し、「もっとカジュアルなものを見せて」→「このスニーカーはいかがですか?」のように、スムーズなやり取りを行います。→ 「青色のサイズ 10 を追加して。」
- フィールド サービス: スマートグラスを装着した技術者が、視界をストリーミングしながら「このコンプレッサーから変な音が聞こえるのですが、特定できますか?」と尋ねています。エージェントが手順を順を追ってハンズフリーで説明します。
- 医療: 患者が皮膚の状態のライブ動画を共有します。AI が予備分析を行い、確認のための質問をして、次のステップを案内します。
- 金融サービス: エージェントがグラフを表示して取引の影響をシミュレートする間、クライアントがポートフォリオを確認します。クライアントは画面を共有して、特定のニュース記事について話し合うことができます。
Shopper's Concierge 2 デモ: ADK Gemini Live API ツールキットと Vertex AI ベクトル検索、エンベディング、Feature Store、ランキング API を使用して構築された、e コマース向けのリアルタイム エージェント RAG デモ:

詳細: デベロッパー ガイド
詳細については、ADK Gemini Live API ツールキット デベロッパー ガイドをご覧ください。このガイドは、アーキテクチャからプロダクション デプロイまでを網羅した 5 部構成のシリーズです。
パート | フォーカス | ラボの内容 |
基盤 | アーキテクチャ、ライブ API プラットフォーム、4 フェーズのライフサイクル | |
アップストリーム | LiveRequestQueue を介してテキスト、音声、動画を送信する | |
ダウンストリーム | イベント処理、ツール実行、マルチエージェント ワークフロー | |
構成 | セッション管理、割り当て、本番環境の制御 | |
マルチモーダル | オーディオ仕様、モデル アーキテクチャ、高度な機能 |
2. ワークショップの概要
作成する機能
このハンズオン ワークショップでは、双方向ストリーミング AI アプリケーションをゼロから構築します。このトレーニングを修了すると、次のことができる音声 AI を作成できます。
- テキスト、音声、画像の入力を受け付ける
- ストリーミング テキストまたは自然な会話音声で応答する
- 割り込みを自然に処理する
- Google 検索などのツールを使用する
ドキュメントを読むのとは異なり、各コンポーネントを段階的に調べ、増分ビルドを行いながら、各コンポーネントがどのように組み合わされているかを理解します。

学習アプローチ
増分ビルド アプローチを採用しています。
- ステップ 1: 最小限の WebSocket サーバー → 「Hello World」レスポンス
- ステップ 2: エージェントを追加する → AI の動作とツールを定義する
- ステップ 3: アプリケーションの初期化 → ランナーとセッション サービス
- ステップ 4: セッションの初期化 → RunConfig と LiveRequestQueue
- ステップ 5: 上流タスク → クライアントからキューへの通信
- ステップ 6: 下流タスク → クライアントへのイベント ストリーミング
- ステップ 7: [Add Audio](音声を追加)→ [Voice input and output](音声入力と音声出力)
- ステップ 8: 画像入力 → マルチモーダル AI を追加する
各ステップは前のステップを基にしています。各ステップの後にテストを行い、進捗状況を確認します。
前提条件
- 課金が有効になっている Google Cloud アカウント
- 基本的な Python と非同期プログラミング(async/await)の知識
- マイクとウェブカメラにアクセスできるウェブブラウザ(Chrome を推奨)
所要時間の目安
- ワークショップ全体: 約 90 分
- クイック バージョン(ステップ 1 ~ 4 のみ): 約 45 分
3. ワークショップ
ワークショップを開始するには、こちらの手順に沿って操作します。
https://github.com/kazunori279/adk-streaming-guide/blob/main/workshops/workshop.md
4. まとめと重要なポイント
構築した内容
双方向ストリーミング AI アプリケーションを最初から構築しました。このアプリケーションは、テキスト、音声、画像の入力をリアルタイム ストリーミング応答で処理します。これは、プロダクション レディな会話型 AI を構築するための基盤となります。
コンポーネント | 機能 | Step |
エージェント | AI の個性、指示、利用可能なツール(Google 検索など)を定義します。 | ステップ 2 |
SessionService | 再接続間で会話履歴を保持する | ステップ 3 |
ランナー | ストリーミング ライフサイクルを調整し、エージェントを Live API に接続します | ステップ 3 |
RunConfig | レスポンス モダリティ(TEXT/AUDIO)、文字起こし、セッション再開を構成します | ステップ 4 |
LiveRequestQueue | テキスト、音声、画像をモデルに送信するための統合インターフェース | ステップ 5 |
run_live() | モデルからストリーミング イベントを生成する非同期ジェネレータ | ステップ 6 |
send_realtime() | 継続的なストリーミング入力用の音声/画像 BLOB を送信します | ステップ 7 ~ 8 |
リソース
以下の公式リソースで学習を続けてください。ADK Gemini Live API ツールキット ガイドでは、このワークショップのすべての内容について詳しく説明しています。
リソース | URL |
ADK ドキュメント | |
ADK Gemini Live API ツールキット ガイド | |
Gemini Live API | |
Vertex AI Live API | https://cloud.google.com/vertex-ai/generative-ai/docs/live-api |
ADK サンプル リポジトリ |