【生成 AI】Agent Development Kit(ADK) でエージェント機能を簡単実装してみた!
2025.4.16
はじめに
こんにちは、フクナガです。
皆様は、Google Cloud Next 2025 キャッチアップできてますか!?
今年の Next でも生成 AI に関する様々な新機能やデモが紹介されておりましたが、中でも注目を集めたのは「Agent Development Kit」だと思います。
本日は、Google Cloud Next 2025 にて紹介された Agent Development Kit について実際にデモを交えてご紹介していきたいと思います!
Agent Development Kit とは
Google が提供するオープンソースフレームワークで、エージェントやマルチエージェントシステム開発を簡素化することが可能です。
オープンソースなので ADK そのものを利用するにあたって料金は発生しません。
マルチエージェントの実装をはじめ、様々なモデルを利用可能であったり、MCPやサードパーティのライブラリの統合など、エージェントを実装するうえで必要な機能を多数提供しています。
参考:Agent Development Kit: Making it easy to build multi-agent applications
利用方法
エージェント実装のコアな部分のコードをご紹介します。
from google.adk.agents import LlmAgent from google.adk.tools import google_Search dice_agent = LlmAgent( model="gemini-2.0-flash-exp", # Required: Specify the LLM name="question_answer_agent", # Requdired: Unique agent name description="A helpful assistant agent that can answer questions.", instruction="""Respond to the query using google search""", tools=[google_search], # Provide an instance of the tool )
出典:Agent Development Kit: Making it easy to build multi-agent applications
LlmAgent という関数に複数のパラメータを入力することで動作します。
実際の動作イメージなどは本ブログの後半のデモなどでご確認いただけます。
特長としては、「tools」という部分だと思います。
「天気を調べる」「文章を要約する」など特定の機能を持った関数をここに記載することで、
エージェント経由でツールを呼び出すことが可能になります。
かなりシンプルで実装が簡単そうですよね!
具体的な動作イメージを見たい方は、下記の動画が非常におすすめです。
Introducing Agent Development Kit
本日実装する中身
本日は、下記サイトで紹介されている「Quickstart」の内容を取り扱います。
Agent Development Kit > Quickstart
実装してみた
前提条件
私が実装に使っている環境は下記です。
※今回取り扱うデモでは、venv コマンドを使った仮想環境の利用を推奨されています
こちらからダウンロード手順をご確認いただけます
1. 仮想環境を構築し、アクティベートする
python -m venv myenv source myenv/bin/activate
2. ADK をインストールする
pip install google-adk
3. 「Quickstart」に記載のある以降のファイルを作成する
Agent Development Kit > Quickstart
親フォルダ ├── .env ├── __init__.py └── agent.py ※「.env」に記載する内容のYOUR_PROJECT_ID、LOCATIONについては、「""」で囲むこと
4. Vertex AI API を有効化する
Google Cloud コンソールへログインした状態で下記のURLへアクセスすると、有効化のためのページへ遷移します。
Enable the Vertex AI API
5. 下記コマンドを順に実施し、その後の案内に従って認証を通す
gcloud init
gcloud auth login
gcloud auth application-default login
この辺りはご自身の環境に依存して変わる可能性がある(認証済みの場合など)ため、
エラーが発生したら、エラー文で案内されている URL などを参考にしながら解決するとよいと思います。
6. 親ディレクトリの上の階層でこちらのコマンドを実施し、「dev UI」を起動する
adk web
しばらくすると、下記画像のような案内が出ますので、その後に「http://localhost:8000」へアクセスしてください。
アクセスするとこんな画面が表示されます。
7. 作成したエージェントを選択する
選択すると下記のようなチャット画面が表示されますので、これで準備完了です!
試してみた
初めましてなのであいさつしてみました。
当然のように返ってきましたね。
こういうチャットアプリケーションを一瞬で作れるというのは非常に素晴らしいですね。
では、続いて本題であるエージェントを活用してみましょう。
今回実装されたコード(agent.py)は、New York の気温や時間を聞かれたら「get_weather」「get_current_time」という関数(コード内ではツールと表現されていますね)を呼び出して処理を行うというものになっています。
ただし、あくまでサンプルですので実際に天気の情報を調べて返すのではなく、事前に決められた固定値を出す仕様になっているようです。
時間を聞かれたらこの処理、天気を聞かれたらこの処理と分岐を定義しているわけではありませんが、それぞれに合ったエージェントを呼び出しているようです。
これだけの実装でエージェントを作れるというのは非常に素晴らしいですね!
ちなみに、Web UI だけでなく、Terminal上で動作させたり、API Server として作ることも可能ですので、
様々な用途に使えそうです。
応用してみた
今回のアプリケーションにおける天気の部分は、事前に決められた値を返すというものでした。
これを Google 検索したうえで、最新の情報を出力するように変えてみようと思います!
① Google Search ツールについて
ADK 側で事前に用意されているツールがいくつか提供されています。
今回は、Web検索を必要とするため「Google Search」というツールを使ってみます。
呼び出し方
from google.adk.agents import Agent from google.adk.tools import google_search root_agent = Agent( name="basic_search_agent", model="gemini-2.0-flash", description="Agent to answer questions using Google Search.", instruction="I can answer your questions by searching the internet. Just ask me anything!", # google_search is a pre-built tool which allows the agent to perform Google searches. tools=[google_search] )
出典:Agent Development Kit > Tools > Built-in tools
import したらすぐ使えるというのは非常に便利ですね!
Vertex AI Search を利用するためのツールについても提供されており、自身で用意したデータソースに対する検索チャットツールもかなり手軽に作れそうです。
②マルチエージェント構成
ここまでは、エージェントからツールとして定義された関数を呼び出す方法をご紹介してきました。
エージェントからエージェントを呼び出すこともできますので、その内容もご紹介します。
呼び出し方
from google.adk.agents import LlmAgent from google.adk.tools import agent_tool web_searcher = LlmAgent(name="WebSearch", description="Performs web searches for facts.") summarizer = LlmAgent(name="Summarizer", description="Summarizes text.") research_assistant = LlmAgent( name="ResearchAssistant", model="gemini-2.0-flash", description="Finds and summarizes information on a topic.", tools=[agent_tool.AgentTool(agent=web_searcher), agent_tool.AgentTool(agent=summarizer)] )
出典:Agent Development Kit > Agents > Multi-Agent Systems in ADK
※実際に動作することを確認したコードは後ほどご紹介します。
tools の中で事前定義したエージェント(この例でいう「web_searcher」と「summarizer」)を記載することで、エージェントからエージェントを呼び出すことが可能になります。
これにより、Google Search をツールとして持つエージェントを、ツールとしてエージェントから呼び出すことが可能になります。
これら 2 つの要素を組み合わせて指定された都市の現在の天気を取得するコードに書きかえてみました。
応用したコードと結果
import datetime from zoneinfo import ZoneInfo from google.adk.agents import LlmAgent,Agent from google.adk.tools import agent_tool from google.adk.tools import google_search Model="gemini-2.0-flash" get_weather = LlmAgent( name="GetWeather", model=Model, description="Agent to answer questions about the weather in a city.", instruction="Answer questions about the weather in a city by using Google Search.", tools=[google_search], ) def get_current_time(city: str) -> dict: if city.lower() == "new york": tz_identifier = "America/New_York" else: return { "status": "error", "error_message": ( f"Sorry, I don't have timezone information for {city}." ), } tz = ZoneInfo(tz_identifier) now = datetime.datetime.now(tz) report = ( f'The current time in {city} is {now.strftime("%Y-%m-%d %H:%M:%S %Z%z")}' ) return {"status": "success", "report": report} root_agent = Agent( name="WeatherandTimeReport", model=Model, description="Agent to answer questions about the time and weather in a city.", instruction="You are a helpful agent who can answer user questions about the time and weather in a city.", tools=[agent_tool.AgentTool(agent=get_weather),get_current_time] # Alternatively, could use LLM Transfer if research_assistant is a sub_agent )
結果として、New York や東京の天気を調べたうえで回答してくれるようになりました!
日本語での質問にも対応できるみたいですね。
まとめ
本記事では、Agent Development Kit の使い方や使用例についてご紹介しました。
手軽に実装できるため、どうやったら業務をエージェントで改善できるかの検討や PoC にも役立ちそうです。
世に出たことでフィードバックも増え、この一年で大きな進化を遂げることに期待ですね!
テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!
Follow @twitter2024 Japan AWS Top Engineers / Google Cloud Partner Top Engineer 2025 に選出されました! 生成 AI 多めで発信していますが、CI/CDやIaCへの関心も高いです。休日はベースを弾いてます。
Recommends
こちらもおすすめ
Special Topics
注目記事はこちら

データ分析入門
これから始めるBigQuery基礎知識
2024.02.28

AWSの料金が 10 %割引になる!
『AWSの請求代行リセールサービス』
2024.07.16