Gemini EnterpriseとLookerを連携!AIエージェントによる会話型データ分析を実現
投稿者:杉山
目次
- はじめに
- 連携環境の構築手順
- Gemini Enterpriseでの会話型分析を体験
- さいごに
1.はじめに
こんにちは、杉山です。
生成AI時代において、自然言語で質問し、正確で実用的な洞察を得る能力は不可欠です。しかし、その答えの質は、基となるデータの一貫性とガバナンスに依存します。本記事では、この課題を解決するため、Lookerのセマンティックレイヤー(ビジネス指標の単一ソース)と、Google CloudのAIエージェント開発環境を統合する手法を紹介します。
具体的には、Agent Development Kit (ADK) でエージェントを開発し、Model Context Protocol (MCP) Toolbox を介してLookerに接続、最終的に作成したアプリをGemini Enterpriseにてエージェントとしてエンドユーザーに公開する手順を解説します。
2.連携環境の構築手順
- 参考手順
- 実行環境
- Google CloudのCloud Shell
MCP Toolboxのダウンロードについては、こちらのブログをご参照ください。
ステップ1:APIの有効化とIAM設定
必要なAPIを有効にし、Cloud RunがSecret Managerにアクセスするためのサービスアカウントを作成します。
cd mcp-toolbox # 利用するtoolboxが存在するフォルダへ移動
export PROJECT_ID="YOUR_PROJECT_ID" #今回利用するGoogleプロジェクトID
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com \
iam.googleapis.com \
secretmanager.googleapis.com
gcloud iam service-accounts create toolbox-identity
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
--role roles/secretmanager.secretAccessor
ステップ2:Looker認証情報の設定とMCP Toolboxのデプロイ
Lookerの接続情報を記述したtools.yamlを作成し、Secret Managerにロード後、ToolboxをCloud Runにデプロイします。
【重要】 tools.yamlのbase_url, client_id, client_secretをご自身のLooker情報に置き換えてください。
gcloud secrets create tools --data-file=tools.yaml
export IMAGE=us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:latest
gcloud run deploy toolbox \
--image $IMAGE \
--service-account toolbox-identity \
--region us-central1 \
--set-secrets "/app/tools.yaml=tools:latest" \
--args="--tools_file=/app/tools.yaml","--address=0.0.0.0","--port=8080"
上記のプロンプト実行後、認証に関するプロンプトが表示されますが、Allow Unauthenticated: N(認証を許可しない)と回答してください。
ステップ3:ADK環境のセットアップとエージェントのひな形作成
新しい作業フォルダを作成し、その中で仮想環境を作成してからADKをインストールします。
cd ~
mkdir my-agents
cd my-agents
python -m venv .venv
source .venv/bin/activate
pip install google-adk toolbox-core
adk create looker_app
上記のプロンプト実行後、使用するモデルとバックエンドに関するプロンプトが表示されます。モデルは 1 (gemini-2.5-flash-001)、バックエンドは 2 (Vertex AI)と回答してください。プロジェクトIDとリージョンはデフォルト値で問題ありません。
ステップ4:agent.pyの編集とMCP連携の実装
生成されたlooker_app/agent.pyファイルを編集し、ステップ 2でデプロイしたCloud RunのMCPサーバーURLと認証ロジックを組み込みます。
# agent.py内の編集箇所
MCP_SERVER_URL = "YOUR_CLOUD_RUN_URL/mcp"
Cloud RunのURLは、Cloud Runのページの以下赤枠に表示されているURLをコピーしてください。

ステップ5:Agent Engineへのデプロイ
デプロイ用の一時ファイル格納にGCSバケットを使用します。
# GCSバケットの作成(必要に応じて)
gcloud storage buckets create gs://YOUR_BUCKET_NAME --location=us-central1 --project $PROJECT_ID
export PROJECT_ID="YOUR_PROJECT_ID"
adk deploy agent_engine \
--project $PROJECT_ID \
--region us-central1 \
--staging_bucket gs://YOUR_BUCKET_NAME \
--display_name "looker-agent1" looker_app
デプロイ成功後、出力される Reasoning Engine Resource Name の完全なパスをメモしておきます。
ステップ6:IAM権限の最終調整
Reasoning EngineがCloud Run (MCP Toolbox) を呼び出せるように、IAMでVertex AI Reasoning Engine サービス エージェントに対し、Cloud Run 起動元ロールを付与します。

ステップ7:Gemini Enterpriseへの登録と最終連携
Gemini Enterpriseインターフェースでアプリを作成し、後続の作業に必要なAgent ID (AS_APP) を下記の赤枠箇所から取得します。
- Gemini Enterprise にアクセス
- [Apps] → [アプリを作成する] を選択します。
- 「アプリ名」 には、任意のアプリ名を記入します。
- 「リージョン」 では、globalを選択します。

以下の環境変数を、各ステップで取得した値に置き換えて実行します。
export PROJECT_NUMBER="YOUR_PROJECT_NUMBER"
export REASONING_ENGINE="projects/YOUR_PROJECT_NUMBER/locations/us-central1/reasoningEngines/YOUR_RE_RESOURCE_NAME" # ステップ 5で取得したパス
export DISPLAY_NAME="Looker Agent"
export DESCRIPTION="Looker's MCP Capability."
export TOOL_DESCRIPTION="用途に合わせてどのような役割を担うエージェントかを説明"
export AS_APP="YOUR_AGENT_ID" # ステップ 7で取得したAgent ID
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: ${PROJECT_NUMBER}" \
"https://discoveryengine.googleapis.com/v1alpha/projects/${PROJECT_NUMBER}/locations/global/collections/default_collection/engines/${AS_APP}/assistants/default_assistant/agents" \
-d '{
"displayName": "'"${DISPLAY_NAME}"'",
"description": "'"${DESCRIPTION}"'",
"adk_agent_definition": {
"tool_settings": {
"tool_description": "'"${TOOL_DESCRIPTION}"'"
},
"provisioned_reasoning_engine": {
"reasoning_engine":
"'"${REASONING_ENGINE}"'"
}
}
}'
PROJECT_NUMBERは、Google Cloud コンソールにログインした画面で確認できます。プロジェクトIDとは異なるため注意してください。

3.Gemini Enterpriseでの会話型分析を体験
設定が完了しましたので、早速エージェントを使ってみたいと思います。

作成したエージェントを呼びだす際は、左側のメニューバーにあるLooker Agentを選択するか、チャット欄に@ Looker Agentを入力します。
機能について質問してみる
まずはこのエージェントがどんなことができるのか質問してみます。

裏ではLooker MCP Toolboxが連携されているため、MCP Toolboxでできることが分かりやすくまとめられていますね。
分析~グラフ作成まで
エージェントを介してどんなことができるのかわかったので、分析業務を始めたいと思います。いくつか販売チャネルがあるというシナリオのもと、ECサイトに限定した売上分析を行います。まずはざっくりと以下の質問を投げかけてみます。

「売上分析」といっても「期間」「顧客別」「地域別」など、粒度が決まっていません。すると、エージェントが細かい要望を追加質問してくれます。この機能により、分析経験が浅いユーザーでも、まるでダッシュボードでいう『ドリルダウン』のように、必要な情報を絞り込みながら分析を進めることが可能になります。また、次の質問の候補も表示されるため、迷うことなくスムーズに分析を進められます。

今回は候補にもある通り、以下の質問を追加で投げてみたいと思います。

対応しそうなモデルを探し出し、対象となるExploreと各項目まで教えてくれました。さらに、結果を表示するために必要な情報が記載されており、追加プロンプトを入力することで結果の表示までできそうです。

残念ながらすぐに結果表示とはならず、thelookモデルが見つからないというエラーが発生しました(検証環境で多くのモデルが存在し、混乱させてしまったようです)。しかし、エラーが発生して終わりではなく、利用可能なモデルとExploreのリストを取得する代替案を紹介してくれたので、試してみたいと思います。

モデルの名前から、今回利用できそうな2つのモデルを提案してくれました。実際、2つのモデルの中身は同じなので、ECサイトデータ_BQのExploreのリストを取得してもらいたいと思います。

また、同一の回答内で、当初質問していた2025年の各月の売上を表示してくれました!

回答に従い、棒グラフで表示してみた結果がこちらです。

上記の場合、[コードを表示]というタブを開くと、Pythonが動いていることがわかります。Pythonではなく、既存のLookMLの定義を利用する場合は、その旨を明確に指示を追加する方が良さそうです。念のためLookerで同じ結果を表示してみましたが、Pythonで計算した場合でも数値に差異はありませんでした。

ちなみに、最も売上の良い9月の売上を深掘りする際、『可視化』というワードをいれてみると、LookerのExploreにつながるリンクが生成されましたので、ぜひお試しください。

参考)遷移先のExploreはこちら↓

(番外編)ダッシュボード作成~要因分析
分析した内容を1つのダッシュボードにまとめることも可能で、アドホックな分析から定期的に確認したい項目をダッシュボードの形で保存したい場合におすすめです。※「分析~グラフ作成まで」のデータとは異なります

エージェントが作成したダッシュボードは、通常のダッシュボードと同様に編集可能であるため、見やすい形に配置を変えたり、Vizを変更することができます。

上記分析結果から『一番売上の良い店舗(渋谷センター街店)』の要因分析を行うため、Google検索で情報収集することも可能です。まさにこのフローはGemini Enterpriseをフロントに持ち、Looker Agentを通してLookerを利用する強みだと思います◎

4.さいごに
Gemini EnterpriseでLookerと連携したAIエージェントを触ってみた結果はいかがでしたでしょうか?
Lookerプラットフォーム自体にもConversational Analyticsをはじめとした会話型分析機能は充実していますが、他のAIエージェントと同じ環境にLookerと連携したAIエージェントが利用可能になることで、より業務に活用しやすくなったのではないでしょうか。
弊社ではGemini Enterprise / Looker いずれも、導入から運用までご支援可能ですので、ご興味がございましたらお気軽にお問い合わせください。
——
danect⁺でAIをつかったBIダッシュボード実装支援サービスを展開中です!→danect⁺AIダッシュボード支援サービス
——



