ライブエージェントと音声エージェント¶
ADK はライブエージェントと音声エージェントを構築するためのフレームワークです。ライブエージェントはユーザーと双方向の常時接続を維持します。メッセージを送信して返信を待つのではなく、ユーザーとエージェントの双方が同時に話し、聞き、応答します。また、実際の会話で人間同士が遮るように、ユーザーはエージェントの発話途中に割り込んで中断(interrupt)することができます。ライブエージェントはテキスト、音声、動画の入力を受け付け、テキストまたは音声で応答します。
ライブエージェントは、他の場所で使用するのと同じエージェント、ツール、セッションの抽象化を使用して構築された ADK エージェントです。開発者はエージェントの動作を記述し、ADK はその下でリアルタイム接続、ツール実行、セッション状態を管理します。現在、この接続は Gemini Live API 上で実行されます。プラットフォームが進化してもエージェントコードが変更されないように、ADK が配線を処理します。
ライブエージェントの構築¶
-
使ってみる
最初のライブエージェントを構築し、ブラウザで対話してみましょう。
-
開発ガイド
必要となる順序でおおよそ並べられた機能別ガイドです。
-
本番環境への導入
adk webを超えてライブエージェントを運用します。- ガードレール — ユーザーの発言とエージェントの応答をスクリーニング
- 評価 — リリース前に音声会話をスコアリング
- カスタムサーバーの構築
- LiveKit — カスタムサーバー不要の WebRTC および電話通信
- サポート対象モデル
どのストリーミングが必要ですか?¶
ADK における「ストリーミング」は 3 つの異なる機能をカバーしており、間違ったものを選択することが混乱の一般的な原因です。
| 機能 | ユーザーによる割り込み | ユースケース | 場所 | |
|---|---|---|---|---|
| サーバーサイドストリーミング | ライブフィードのように、サーバーからクライアントへの一方向の流れ。 | 不可 | 会話ではなくダッシュボードやフィードの更新をプッシュする場合。 | ADK 外部 |
| トークンレベルストリーミング | テキストが単語ごとに到着するが、次の送信前に完了を待機する。 | 不可 | 応答性の高いテキストチャットが必要な場合。 | StreamingMode.SSE(設定) |
| 双方向ストリーミング | 1つのオープンな接続を介して双方が同時に話し、聞き、応答する。 | 可能 | 音声または動画による会話を構築する場合。 | runner.run_live() — このセクションのドキュメント |
このセクションのドキュメントは 3 行目について説明しています。
sequenceDiagram
participant Client as ユーザー
participant Agent as エージェント
Client->>Agent: "日本の歴史を説明してください"
Agent->>Client: "はい!日本の歴史は..." (途中)
Client->>Agent: "あ、ちょっと待って。"
Agent->>Client: "はい、どうされましたか?" [interrupted: true]
なぜ ADK でライブエージェントを構築するのか¶
Live API はストリーミングプロトコルを提供します。ADK はその周辺のすべてを提供するため、ストリーミングインフラストラクチャではなくエージェントの動作の記述に集中できます。
生の Live API (google-genai) |
ADK | |
|---|---|---|
| ツール実行 | 手動 | 自動 |
| 再接続 | 手動 | 自動セッション再開 |
| イベント | カスタム構造 | 統合イベントモデル |
| 非同期調整 | 手動 | LiveRequestQueue + run_live() |
| セッションの永続化 | 手動 | SQL、Agent Platform、インメモリ |
| マルチエージェント | 未提供 | ワークフロー、サブエージェント、移譲 |
デモとリソース¶
-
LensMosaic: ライブ AI によるビジュアルショッピング
ライブカメラ入力、音声、製品検索を融合。カメラを任意のオブジェクトに向けて類似製品を見つけます。ADK ライブエージェント、Gemini Embedding、Vector Search、FastAPI で構築されています。
-
双方向ストリーミングのビジュアルガイド
ストリーミングの仕組みと ADK で対話型エージェントを構築する方法を解説した図解とイラスト。
-
Google ADK + Gemini Live API
リアルタイムの音声/動画向けライブエージェントの使用と、
LiveRequestQueue上に構築された Python サーバーの例。