マルチモーダル エージェント チュートリアル: Gemini、Langchain、LangGraph を使用してオブジェクト検出エージェントを構築する方法
Matthew Dalida
Technical Account Manager, Google Cloud
May Shin Lyan
Technical Account Manager, Google Cloud
※この投稿は米国時間 2025 年 6 月 6 日に、Google Cloud blog に投稿されたものの抄訳です。
AI エージェントを構築する際によく出てくる疑問として、「最新の Gemini モデルと、LangChain や LangGraph といったオープンソースのフレームワークをどう組み合わせれば、オブジェクトを検出できるマルチモーダル エージェントを作れるのか」というものがあります。
オブジェクト検出は、コンテンツのモデレーションからマルチメディア検索、情報の取り出しに至るまで、さまざまなユースケースで極めて重要な機能です。LangChain は LLM の呼び出しと外部データを組み合わせるためのツール群を提供しており、LangGraph はより制御の自由度が高い、複雑なマルチエージェント アプリケーションを構築するためのグラフ構造を提供しています。
この投稿では、Gemini、LangChain、LangGraph を組み合わせて、オブジェクトを識別できるマルチモーダル エージェントを構築する際に必要となる判断をご紹介します。これを出発点として、以下のようなエンタープライズ向けのユースケースの構築にもつなげていくことができるでしょう。
-
コンテンツ モデレーション: 広告掲載のポリシー、映画の評価、ブランド侵害のチェック
-
オブジェクトの識別: さまざまなデータソースから、あるオブジェクトが地図上に存在するかどうかを検証
- マルチメディア検索と情報取得: 特定のオブジェクトを含むファイルを見つける
最初の判断: ノーコード / ローコード、それともカスタム エージェント?
企業が最初に判断すべきなのは、「ノーコード / ローコードのオプションを使用するか、それともカスタム エージェントを構築するか?」という点です。たとえば、カスタマー サービス向けの chat bot のようなシンプルなエージェントを構築する場合は、Google の Vertex AI Agent Builder を使用すれば数分でシンプルなエージェントを作成できます。また Google Agentspace の Agent Gallery にある事前構築済みのエージェントから始めることもできます。
一方で、複数のエージェントのオーケストレーションやカスタムツールとのインテグレーションが必要なユースケースでは、カスタム エージェントを構築する必要があります。ここで次の疑問が出てきます。
2 つ目の判断: どのエージェント フレームワークを使用するか?
毎週のように新機能が追加されている数多くのエージェント フレームワークの中から、どれを選ぶべきか判断するのは容易ではありません。主な候補には、CrewAI、Autogen、LangGraph、Google の ADK などがあります。ADK や CrewAI のように抽象化のレベルが高いものもあれば、LangGraph のように制御の自由度が高いものもあります。
そのため本ブログ投稿では、カスタム エージェントの構築に焦点を当て、エージェント フレームワークとしてオープンソースの LangChain と LangGraph を、LLM の頭脳として Gemini 2.0 Flash を活用する方法について説明していきます。
コードの詳細
こちらのサンプルコードでは、画像、音声ファイル、動画の中から特定のオブジェクトを識別します。この例では、犬を識別対象のオブジェクトとして使用します。それぞれのタスクを担当する複数のエージェント(画像分析エージェント、音声分析エージェント、動画分析エージェント)が連携しながら、共通の目的であるオブジェクトの識別を目指して動作します。


オブジェクト検出のための生成 AI ワークフロー
この生成 AI ワークフローは、指定されたファイル内に特定のオブジェクトが存在するかどうかを確認するよう、ユーザーがエージェントに指示するところから始まります。オーケストレーター エージェントは、image_agent、audio_agent、video_agent といった関連するワーカー エージェントを呼び出すとともに、ユーザーの質問と関連ファイルを渡します。各ワーカー エージェントはそれぞれに適したツールを呼び出し、指定されたファイルを Base64 エンコードに変換します。各エージェントによる最終的な検出結果はオーケストレーター エージェントに返され、オーケストレーター エージェントがそれらの結果を統合し、最終的な判断を下します。このコードは、複数の情報源から推論を行い、意思決定や結論の生成を行う必要がある場面で、エージェントにそうした作業を指示する際の出発点となるテンプレートとして活用できます。
ADK でマルチエージェント システムを構築する場合は、Google 社員が開発した動画制作エージェントの例があります。このエージェントは、ユーザーのプロンプトから動画広告を生成し、動画コンテンツの生成には Veo、音楽の作曲には Lyria、ナレーションには Google Text-to-Speech を活用します。この例は、エージェントの目的を達成するために多様な要素を組み合わせることができるという事実を示しています。つまり、このケースでは、AI エージェントが制作スタジオとして機能しているのです。ADK を試してみたい場合は、ADK クイックスタートが用意されていますので、まずはそこから始めてみてください。
3 つ目の判断: エージェントをどこにデプロイするか?
すぐに本番稼働させたいシンプルなアプリを構築しているのであれば、Cloud Run を活用してそのアプリを簡単にデプロイできます。一般的なサーバーレス ウェブアプリと同様に、Cloud Run 上へのデプロイ手順に沿って操作するだけです。Cloud Run で AI エージェントを構築する方法については、こちらの動画をご覧ください。一方で、よりエンタープライズグレードのマネージド ランタイム、品質評価、コンテキスト管理、モニタリングなどが必要な場合は、Agent Engine の利用がおすすめです。Agent Engine のクイック スタートガイドも用意されています。Agent Engine は、ADK、LangGraph、Crew.ai など、これまで紹介してきたさまざまなフレームワークと統合できるフルマネージド ランタイムです(Google Cloud の公式ドキュメントより引用した以下の画像を参照)。


始める
生成 AI を活用してインテリジェントなエージェントを構築すること、特にマルチモーダルな理解が可能なエージェントを作成することは、複雑なパズルを解くような作業です。多くの開発者は、プロトタイプとして LangChain エージェントと Gemini Flash(LLM)を組み合わせた構成を採用しています。この投稿では、Gemini モデルの機能と、LangChain や LangGraph のようなオープンソース フレームワークをどのように組み合わせて活用できるかを解説しました。すぐに始めたい方は、こちらの ADK クイックスタートを利用するか、Agent Development GitHub をご覧ください。
-Google Cloud、テクニカル アカウント マネージャー、Matthew Dalida
-Google Cloud、テクニカル アカウント マネージャー、May Shin Lyan