Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
第164回 雲勉 Agent Development Kit と MCP Toolbox fo...
Search
iret.kumoben
June 20, 2025
Technology
270
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
第164回 雲勉 Agent Development Kit と MCP Toolbox for Databases で MCP 連携してみた
下記、勉強会での資料です。
https://youtu.be/u4TQpM_NAxw
iret.kumoben
June 20, 2025
More Decks by iret.kumoben
See All by iret.kumoben
第182回 雲勉 【Gemini 3.0 Pro】AI ベンチマーク徹底比較!他モデルに比べ優れている点まとめ
iret
0
110
第181回 雲勉 WEB制作者のちょっとした面倒をAWSで解決!Amazon S3とAWS Lambda活用術
iret
0
89
第180回 雲勉 Abuse report の調査・確認方法について
iret
0
110
第179回 雲勉 AI を活用したサポートデスク業務の改善
iret
0
150
第178回 雲勉 Amazon EKSをオンプレで! Amazon EKS Anywhere 実践構築ガイド
iret
1
120
第177回 雲勉 IdP 移行を楽に!Amazon Cognito でアプリへの影響をゼロにするアイデア
iret
0
120
第176回 雲勉 VPC 間サービス接続を考える!Private Service Connect 入門
iret
0
110
第175回 雲勉 Amazon ECS入門:コンテナ実行の基本を学ぶ
iret
0
150
第174回 雲勉 Google Agentspace × ADK Vertex AI Agent Engineにデプロイしたエージェントを呼び出す
iret
0
180
Other Decks in Technology
See All in Technology
AWS Security Hub CSPMの成功・失敗体験
cmusudakeisuke
0
610
サイバーエージェントにおけるAI推進戦略と変革への取り組み
shotatsuge
0
630
「ビジネスがわかるエンジニア」とは何か?
ryooob
0
420
感情と身体を置き去りにしない、エンジニアの生きのこり方 ──いまから、ここから「自分の状態」を扱うという選択
saorimurooka
0
420
プライバシー保護の理論と実践
lycorptech_jp
PRO
1
130
AIに障害切り分けを全部やってもらった。 。 。 。
estie
0
290
初めてのDatabricks勉強会
taka_aki
2
210
4人目のSREはAgent
tanimuyk
0
310
“ID沼入口” - 基本とセキュリティから始める、考え続けるためのID管理技術勉強会 告知&イントロ
ritou
0
300
スタートアップにおけるアジャイルの実践について #shibuyagile
murabayashi
1
470
WebGIS AI Agentの紹介
_shimizu
0
600
toB プロダクトから見たWAF
tokai235
0
260
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
1.2k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
400
Visualization
eitanlees
152
17k
Building AI with AI
inesmontani
PRO
1
1.1k
Marketing to machines
jonoalderson
1
5.5k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
870
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Navigating Weather and Climate Data
rabernat
0
250
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
550
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
260
Transcript
第164回 雲勉 Agent Development Kit と MCP Toolbox for
Databasesで MCP 連携してみた
講師自己紹介 2 ▪ 山際 哲哉 • DX開発事業部 モダンエンジニアリングセクション • 2025年2月
アイレットに入社 • 2025年5月に Google Cloud 資格全冠しました! • ご質問は YouTubeのコメント欄で受け付けております。 後日回答させていただきます!
アジェンダ 3 1. 本日のゴール 2. AI エージェントと MCP 3. 実践
4. まとめ
1. 本日のゴール 4
1.本日のゴール 5 ▪ Agent Development Kit ◦ AI エージェントとは何か
◦ Agent Development Kit とは何か ▪ MCP Toolbox for Databases ◦ MCP とは何か ▪ これらのツールを Google Cloud にデプロイし、動作確認を行う
2. AI エージェントと MCP 6
2.AI エージェントと MCP 7 ▪ AI エージェント • 目標を達成するために、必要なタスクを自律的に思考、アクション、観察を繰り返す
AI のこ と • Tools を使用して外部データやサービスと連携可能 会話 AI エージェント 思考 アクション 観察 Tools Tool 1 Tool 2
2.AI エージェントと MCP 8 ▪ Agent Development Kit (ADK)
• Google Cloud が提供する AI エージェントを構築するための Python ライブラリ • 特徴 https://google.github.io/adk-docs/ マルチエージェント設計 複数の専門化されたエージェントを階層的に構成し、複雑な連携と 委任が可能 豊富なモデルエコシステム Gemini や Vertex AI Model Garden のモデルや Anthropic、Meta、etc 多様なツールエコシステム 検索、コード実行などの事前構築済みツール、 MCP ツール、etc 組み込みのストリーミング機能 双方向のオーディオおよびビデオストリーミング 統合された開発者体験 CLI や Web UI により、開発、テスト、デバッグが容易
2.AI エージェントと MCP 9 MCP サーバー
MCP サーバー MCP サーバー MCP ホスト データソース データソース インターネット Web API ▪ MCP (Model Context Protocol) • LLM が外部アプリやデータソースやツールと通信する方法を標準化した仕組み
2.AI エージェントと MCP 10 ▪ MCP Toolbox for Databases
• DB 用のオープンソース MCP サーバー • エージェントが DB にアクセスできるように するツール • Google Cloud の DB サービスにも対応 https://github.com/googleapis/genai-toolbox
3. 実践 11
3.実践 12 ▪ 構築する AI エージェント • 架空のホテル の検索と詳細を質問できる
ルート エージェント 検索 エージェント 詳細 エージェント BigQuery Vertex AI Search
3.実践 13 ▪ MCP クライアント • ADK で構築したエージェント ▪ MCP
サーバー • MCP Toolbox for Databases で構築したサーバー ▪ DB • BigQuery ▪ 非構造化データ検索 • Vertex AI Search
3.実践 14 ▪ アーキテクチャ Architecture: Agent Development Kit &MCP Toolbox
for Databases Direct VPC Egress 許可された Google アカウントのみアクセス許可 上り(内向き)の制御:内部
3.実践 15 ▪ BigQuery にデータを格納する
3.実践 16 ▪ MCP Toolbox for Databases の記載 ◦ yaml
で Tools を定義する ▪ sources ◦ 操作するデータソース ▪ tools ◦ エージェントが使用するツール ▪ toolsets ◦ ツールグループ ◦ 異なるエージェントやアプリ毎に異なる セットを定義するのに役立つ sources: my-bigquery-source: kind: "bigquery" project: "PROJECT_ID" tools: search-hotels-by-location: kind: bigquery-sql source: my-bigquery-source description: | Search for hotels based on location. Example: {{ "location": "東京", }} parameters: - name: location type: string description: The location of the hotel. statement: SELECT * FROM `DATASET.hotels` WHERE location = @location; toolsets: my_first_toolset: - search-hotels-by-name - search-hotels-by-location - search-hotels-by-booked
3.実践 17 ▪ MCP Toolbox for Databases を Cloud Run
にデプロイ ◦ gcloud コマンド or コンソール上からデプロイする ◦ サービスアカウントには、以下ロールを付与 ▪ Secret Manager のシークレット アクセサー ▪ BigQuery データ閲覧者 ▪ BigQuery ユーザー gcloud run deploy toolbox \ --image $IMAGE \ --service-account toolbox-service-account \ --region asia-northeast1 \ --set-secrets "/app/tools.yaml=tools:latest" \ --args="--tools_file=/app/tools.yaml","--address=0.0.0.0","--port=8080" \ –ingress "internal"
3.実践 18 ▪ ADK でエージェントの構築 ▪ 検索エージェントの定義 ◦ ToolboxTool を使用して、
tools をエージェントに渡す from google.adk.agents import Agent from google.adk.tools.toolbox_tool import ToolboxTool toolbox = ToolboxTool("TOOLBOX_URL") tools = toolbox.get_toolset(toolset_name="my_first_toolset") bq_agent = Agent( model="gemini-2.0-flash", name="bq_agent", description=("都市内のホテルやホテル名、予約状況に関する質問に答えるエージェン ト。"), instruction=( "あなたは、特定の都市にあるホテルやホテル名、予約状況に関するユーザーの質問に 答えられる、役立つエージェントです。ツールを使って質問に答えましょう。" ), tools=tools, )
3.実践 19 ▪ ADK でエージェントの構築 ▪ 詳細エージェントの定義 ◦ VertexAiSearchTool を使用して、
tools をエージェントに渡す from google.adk.agents import Agent from google.adk.tools import VertexAiSearchTool vertex_search_tool = VertexAiSearchTool( data_store_id="DATA_STORE_ID" ) info_agent = Agent( model="gemini-2.0-flash", name="info_agent", description=("札幌ガーデンホテルの情報に関するユーザーの質問に答えるエージェント。"), instruction=( "あなたは札幌ガーデンホテルの情報に関するユーザーの質問に答えられる、役立つエージェ ントです。ツールを使って質問に答えましょう。" ), tools=[vertex_search_tool], )
3.実践 20 ▪ ADK でエージェントの構築 ▪ ルートエージェントの定義 ◦ Agent as
a Tool として定義した Agent を Tool に渡す ▪ Agent as a Tool ◦ Agent AがAgent Bを道具として 使い、Bの回答をAが受け取って ユーザーに応答 ▪ サブエージェント ◦ Agent AがAgent Bに処理を任せ、 ユーザーへの応答責任は完全にBに移る from google.adk.agents import Agent from google.adk.tools.agent_tool import AgentTool root_agent = Agent( model="gemini-2.0-flash", name="hotel_agent", description=("ホテルに関する質問に答えるエージェント。"), instruction=( "あなたはホテルに関するユーザーの質問に答えられる、役立つエージェントです。\n" "都市内のホテルやホテル名、予約状況に関する質問は bq_agent を使用します。\n" "札幌ガーデンホテルの情報に関する質問は info_agent を使用します。" ), tools=[AgentTool(agent=bq_agent), AgentTool(agent=info_agent)], )
3.実践 21 ▪ ADK を Cloud Run にデプロイ (Vertex AI
Agent Engine でも可) ◦ adk コマンドが用意されている ◦ サービスアカウントには、以下ロールを付与 ▪ Cloud Run サービス起動元 ▪ Vertex AI ユーザー ▪ ディスカバリー エンジン ユーザー ◦ Artifact Registry に push され、Cloud Run にサービスがデプロイされる adk deploy cloud_run \ --project=$GOOGLE_CLOUD_PROJECT \ --region=$GOOGLE_CLOUD_LOCATION \ --service_name=$SERVICE_NAME \ --app_name=$APP_NAME \ --with_ui \ $AGENT_PATH
3.実践 22 ▪ 動作確認
3.実践 23 ▪ 動作確認 ▪ MCP サーバーを経由して、BigQueryのデータを取得してきた
3.実践 24 ▪ 動作確認
3.実践 25 ▪ 動作確認 ▪ 他の定義した Tool も使用して、BigQueryのデータを取得してきた
3.実践 26 ▪ 動作確認
3.実践 27 ▪ 動作確認 ▪ Vertex AI Search を使用して、ドキュメントから検索して回答してくれた
3.実践 28 ▪ 評価 ▪ Tool の使用や最終応答の評価を行うことができる ▪ Json 形式でテストファイルを記述
[ { "name": "東京のホテル検索", "data": [ { "query": "東京のホテルを検索してください", "expected_tool_use": [{"tool_name": "bq_agent", "tool_input": {"request": "東京のホテルを検索してください"}}], "expected_intermediate_agent_responses": [], "reference": "デザイナーズホテル東京とホテル東京駅前と東 京ベイホテルがあります。" } ], "initial_session": { "state": {}, "app_name": "hotels", "user_id": "user" } ]
3.実践 29 ▪ 評価 ▪ テスト結果が表示されて、ログに詳細の結果が表示される
4. まとめ 30
4.まとめ 31 ▪ Agent Development Kit を使用すると、簡単に AI エージェントを構築できる
◦ Cloud Run や Vertex AI Agent Engine にデプロイできる ▪ MCP Toolbox for Databases を使用すると、簡単に DB の操作ができる MCP サーバーを構築できる ▪ これらのツールを Google Cloud にデプロイし、動作確認ができる