コンテンツにスキップ

ライブエージェントと音声エージェント

ADKでサポートPython v0.5.0Java v0.2.0プレビュー

ADK はライブエージェントと音声エージェントを構築するためのフレームワークです。ライブエージェントはユーザーと双方向の常時接続を維持します。メッセージを送信して返信を待つのではなく、ユーザーとエージェントの双方が同時に話し、聞き、応答します。また、実際の会話で人間同士が遮るように、ユーザーはエージェントの発話途中に割り込んで中断(interrupt)することができます。ライブエージェントはテキスト、音声、動画の入力を受け付け、テキストまたは音声で応答します。

ライブエージェントは、他の場所で使用するのと同じエージェント、ツール、セッションの抽象化を使用して構築された ADK エージェントです。開発者はエージェントの動作を記述し、ADK はその下でリアルタイム接続、ツール実行、セッション状態を管理します。現在、この接続は Gemini Live API 上で実行されます。プラットフォームが進化してもエージェントコードが変更されないように、ADK が配線を処理します。

ライブエージェントの構築

  • 使ってみる


    最初のライブエージェントを構築し、ブラウザで対話してみましょう。

  • 開発ガイド


    必要となる順序でおおよそ並べられた機能別ガイドです。

    • セッション — run_live()、再開、スケール
    • イベント — 返されるイベントとその処理方法
    • ツール — 自動実行とストリーミングツール
    • ワークフロー — ライブ接続下でのマルチエージェント
    • 音声と動画 — フォーマットとストリーミング
    • 設定 — RunConfig、音声、文字起こし、ターン検出
  • 本番環境への導入


    adk web を超えてライブエージェントを運用します。

どのストリーミングが必要ですか?

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 サーバーの例。