2026年7月16日 「AI 塾講師システム」を Gemini Live API × ADK で開発してみた Cloud Run Gemini Google Cloud 検索する Popular tags 事例紹介 GEN-STEP 生成AI(Generative AI) Vertex AI Search Looker Studio BigQuery AlloyDB Google Workspace Cloud SQL Category Google Cloud Author ベーコンシェフ SHARE 目次 直面した3つの課題 ADK との連携で変わったこと システムの全体像 開発で工夫した2つのポイント まとめ Content 今回、Google のリアルタイム音声 AI であるGemini Live API(モデル: gemini-3.1-flash-live-preview)を使い、生徒と音声でリアルタイムに対話しながら数学の学習を支援する「AI 塾講師システム」を開発しました。 Gemini Live API の特徴は、テキストのやり取りだけではなく、人間同士の会話のように低遅延で音声を双方向にストリーミングできる点です。言い間違いや相槌にも自然に反応し、会話の流れを途切れさせない対話を実現します。 しかし、API に直接接続するだけでは、実際の授業に必要な「画像を生成する」「接続が途切れても再開できる」「正確な回答をする」といった動作を実現できませんでした。 そこで取り入れたのが ADK(Agent Development Kit)です。ADK は AI に外部のツールを使わせるためのフレームワーク(ライブラリ)で、バックエンドに組み込むことで AI の能力を大きく拡張できます。 本記事では、開発の過程で直面した課題と、それを解決するために採った設計上の工夫を紹介します。 まず、実際に動作している様子(動画)と利用方法(画像)をご覧ください。 実際に動作している様子 利用方法 動画いかがでしたか。実際に遅延なく人間と対話できているかのような会話が実現できていたと思います。 直面した3つの課題 開発初期は、ブラウザから直接 Gemini Live API に接続し、音声で対話できる状態を構築することから始めました。この段階自体は比較的スムーズに実現できましたが、実用的なシステムを目指すにあたって 3 つの課題が浮かび上がりました。 ① 言語だけでは表現に限界がある 音声だけでは視覚的な情報がわからず、画像を生成する手段がありませんでした。「画像を生成してください」と伝えても画像を生成することはできず、視覚的に伝わりにくい場面がありました。 ② Gemini 側の接続が切れると会話がリセットされる Gemini Live API はセッションの持続時間に上限があり、長時間の会話や通信の瞬断で接続が切れることがあります。バックエンドが無く Gemini Live API に直接接続している構成では、切断と同時に会話の文脈がすべて失われ、最初からやり直しになってしまいます。 ③ 誤った情報を断言するリスク 生成 AI には「ハルシネーション」の問題があります。外部情報を参照する手段がない状態では、AI が学習データのみを根拠に誤った情報を自信を持って回答するリスクを排除できませんでした。 ADK との連携で変わったこと これらの課題を解消したのが、 ADK との連携です。ADK とは「AI が外部ツールを呼び出すための仕組み」で、AI が外部のツールを「いつ・何を使うか」を自律的に判断して呼びだします。 ADK をバックエンドに組み込むことで、Gemini Live API は会話を行いながら、状況に応じて外部ツールを自律的に判断し、使用できます。フロントエンドと Gemini Live API の間にバックエンドを挟み、そこにADKを組み込むことで、単なる音声対話に留まらない処理を AI 自身の判断で実行できます。 画像生成モデルとの連携(課題①への対応) 「図を描いて説明してほしい」「画像を生成してほしい」というリクエストに対し、AI が Google の画像生成モデル「Imagen 4」を自律的に呼び出し、生成した図をチャット画面に表示できる仕組みを実装しました。音声による解説と画像が同期することで、対話の表現力が大幅に向上しました。 セッションの永続化(課題②への対応) ブラウザから Gemini Live API へ直接接続する構成では、ユーザーの回線が途切れた瞬間に AI との接続も切断され、会話の文脈がすべてリセットされてしまいます。 今回はバックエンドに Cloud Run を中継として挟むことで、接続を「ブラウザ〜バックエンド」と 「バックエンド〜Gemini」の 2 段階に分離しました(次セクションにて詳しい構成図を載せております)。 これにより、ユーザー側の回線が一時的に切断されても、バックエンドと Gemini の接続は維持されます。ユーザーが再接続した際には、Gemini のセッションをそのまま引き継げるため、会話が途切れることなく続けられます。また、会話ログは Firestore にリアルタイムで保存しているため、以前の文脈から対話を再開できます。 Google 検索による情報精度の担保(課題③への対応) Google Search API を利用し Google 検索ツールを ADK 経由で組み込むことで、AI が「自身の学習データで回答できるか、外部情報を参照すべきか」を自律的に判断できるようになりました。不確かな情報については検索を実行することで、ハルシネーションのリスクを大幅に低減できました。 システムの全体像 システムは大きく①~④の層で構成されています。 ① ユーザーが操作する画面(App Engine) React で構築したフロントエンドを Google App Engine 上に配置しています。ユーザーの音声・テキストの送受信と、AI からの返答表示を担います。 ② システムの中核となる中継サーバー(Cloud Run) Python / FastAPI で構築したバックエンドを Cloud Run 上で動かしています。このバックエンドの中に ADK を組み込み、AI の動きを制御するための処理をここで一括して担っています。 フロントエンドと Gemini Live API の間に立って以下を担います 会話の文脈に応じて Google Search API・Imagen 4 などの外部ツールをAIが使えるよう ADK 経由で管理 ネットワーク瞬断時の自動再接続処理 フロントエンドとバックエンドは WebSocket で常時接続しており、音声・テキスト・ツール実行結果がリアルタイムで行き来します。 ③ AIの音声対話エンジン(Gemini Live API) Google の最新モデル「Gemini 3.1 Flash Live Preview」をリアルタイム音声対話用に呼び出しています。通常のテキスト API(質問して回答を受け取る一往復のやり取り)と異なり、ストリーミングで音声を送受信できるのが特徴で、人間と話しているような低遅延の対話を実現します。 ADK を介してツールの呼び出しを管理することで、AI が会話の流れを判断しながら外部ツールを自律的に使い分けられるようになっています。 ④ 会話履歴の保存(Firestore) 対話の内容は Firestore にリアルタイムで保存されます。接続が切れた場合や次回起動時にも、以前の会話の文脈からそのまま再開できます。 開発で工夫した2つのポイント 開発で特に試行錯誤が多かった工夫を 2 点紹介します。 工夫① 接続エラー時の自動復旧設計 Gemini Live API との接続でエラーが発生した際、初期の設計ではユーザーとの接続ごと切断していました。これを改善し、ユーザーとの接続を維持したまま、バックエンド側だけで自動的に再接続する設計に変更しました。ユーザーが接続の切断を意識することなく、対話を継続できるようになっています。 工夫② 文字起こしの品質向上:言い淀みの除去と AI による清書 音声対話の文字起こしをそのまま表示すると、「えーと」「あのー」といった言い淀みが大量に含まれ、チャット画面が読みにくい状態でした。 そこでフロントエンドではリアルタイムに言い淀みを除去しつつ、Gemini が回答を返している間に、バックエンドが非同期でユーザーの発言内容を推測・清書したテキストを生成し、画面上の表示を自動的に上書きするようにしました。会話の流れを止めることなく、整理された文字起こしを表示できるようになっています。 まとめ 本システムの開発を通じて、Gemini Live API と ADK を組み合わせることで、AI を単純な会話ツールから実用的なエージェントへと引き上げられることが確認できました。 今回は「AI 塾講師」というかたちで実装しましたが、「音声で話しながら外部ツールを呼び出す」というこの構成自体は、用途を問わず応用できるものです。 Gemini Live API と ADK の組み合わせが、AI を実用的なシステムとして展開したいと考えている方の参考になれば幸いです。 関連コンテンツ ADKエージェントを自由にデプロイしたい!Firestoreでセッション管理を自作してみた by みっちーon 2026年3月26日 システムサポートでは、Google Cloudの導入や活用を支援しております。 Google Cloudを導入したい・導入したけど使いこなせていない…という方は、お気軽にご相談ください! Google Cloud 導入・活動支援に関するご相談はこちら 頂きましたご意見につきましては、今後のより良い商品開発・サービス改善に活かしていきたいと考えております。 よくわかった 使ってみたい 音声対話してみたい Gemini すごい Author ベーコンシェフ 2024年4月に新卒入社のインフラエンジニアです。 ベーコンとウインナーを焼くのにハマっています。 Cloud Run Gemini Google Cloud 2026年7月16日 「AI 塾講師システム」を Gemini Live API × ADK で開発してみた Category Google Cloud 前の記事を読む 【参加無料】typeエンジニア転職フェア 出展のお知らせ(2026/7/11) Recommendation オススメ記事 2023年9月5日 Google Cloud 【Google Cloud】Looker Studio × Looker Studio Pro × Looker を徹底比較!機能・選び方を解説 2023年8月24日 Google Cloud 【Google Cloud】Migrate for Anthos and GKEでVMを移行してみた(1:概要編) 2022年10月10日 Google Cloud 【Google Cloud】AlloyDB と Cloud SQL を徹底比較してみた!!(第1回:AlloyDB の概要、性能検証編) BigQuery ML ワークショップ開催のお知らせ 生成AI導入支援パッケージ Discovery AI導入支援パッケージ Google Cloud ホワイトペーパー 新着記事 2026年7月16日 Google Cloud 「AI 塾講師システム」を Gemini Live API × ADK で開発してみた 2026年7月3日 イベント・セミナー 【参加無料】typeエンジニア転職フェア 出展のお知らせ(2026/7/11) 2026年6月29日 イベント・セミナー 【2026/8/21開催】EC運営を効率化!生成AIでコンテンツ制作業務を加速させる改善術 HOME Google Cloud 「AI 塾講師システム」を Gemini Live API × ADK で開発してみた