3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Google ADKを使ってAIエージェントを爆速開発する

Last updated at Posted at 2025-08-01

はじめに

こんにちは!Ryuです!
今回はGoogle製のAIエージェント開発ツールであるADKを使って爆速でAIエージェントを作ってみようと思います。
AIエージェントと言っても色々ありますが、検索を一緒に行ってくれるエージェントを作っていこうと思います。

Google ADKとは

Google ADKは、LLM(Large Language Model)を活用したエージェントシステムを簡単に構築できるフレームワークです。
GoogleのVertex AIなどの既存サービスとも柔軟に連携できるため、既にGoogle Cloudを利用されている場合は親和性が高いものかなと思います。

環境構築

必要なパッケージのインストール

pip install google-adk google-genai google-cloud-aiplatform

Google Cloud認証の設定

GeminiをVertex AI経由で利用する場合のみ必要な手順です。

gcloud auth application-default login

ディレクトリ構造

my-adk-agent/
├── agent.py                  # エージェント定義
├── search.py               # 検索ツール実装
└── requirements.txt          # 依存関係

商品検索エージェントの実装

1. 検索ツールの作成

商品を検索するツール(関数)を実装します。
ここでのツールとはAIエージェントが利用するツールのことです。

ADKのエージェントはdocstringの情報を読み取って「どのようなツールであるか」を把握するため、引数や返り値、ツールの概要などをしっかりと記載しておきましょう。

検索API等は用意せず、検索結果をモックで定義しておきます。
実際にサービス等で使いたい場合はここでrequestsモジュール等を使ってAPIを叩く処理を追加します。

また、返り値を辞書形式で渡すと、Keyの名前も認識してくれます。
そのため、検索結果数などを返すことで「◯件ヒットしました!」のような応答を生成させることも可能です。

search.py
from google.genai import types

async def search_tool(
    keyword: str, 
) -> dict:
    """
    商品を検索するツール
    
    Args:
        keyword (str): 検索キーワード
    
    Returns:
        dict: 検索結果
    """
    # 実際のAPIやデータベースから商品を検索
    # ここではサンプルデータを返す
    products = [
        {
            "name": f"{keyword}関連商品1",
            "price": "¥3,980",
            "description": "高品質な商品です",
            "image_url": "https://xxx.xx/product1.jpg"
        },
        {
            "name": f"{keyword}関連商品2", 
            "price": "¥2,480",
            "description": "お手頃価格の商品です",
            "image_url": "https://xxx.xx/product2.jpg"
        }
    ]
    
    return {
        "count": len(products),
        "products": products
    }

2. 検索エージェントの作成

続いてAIエージェント自体を作っていきます。
モデル名やエージェント名、プロンプト等を定義していきます。

namedescriptionはマルチエージェント構成にした際、他のエージェントにお互いがどのようなエージェントかを認識させるために利用します。
今回はシングルエージェント構成で作るので、何を指定しても特に影響はありません。

instructionはエージェントのシステムプロンプトになるので、非常に重要です。
定義したツールの使い方や使い時をここで指定します。

最後にtools部分にリスト形式でツールを渡してあげます。
リスト形式で渡せるので、例えば検索とは別に商品の返品をサポートするツールなどを追加することも可能です。

agent.py
from google.adk.agents import Agent
from search_tool import search_tool

# プロンプトの定義
SEARCH_AGENT_INSTRUCTION = """
あなたは商品検索アシスタントです。

## 役割
- ユーザーの要望を理解し、適切な商品を検索
- 検索結果を分かりやすく表示
- 商品の特徴や価格を説明

## ツールの使用
- search_toolを使用して商品を検索
- ユーザーの曖昧な要求も適切に解釈

## 応答スタイル
- 親しみやすい口調で対応
- 商品の魅力を伝える
- 必要に応じて追加の質問をする
"""

# 商品検索エージェントの作成
root_agent = Agent(
    name="product_search_assistant",
    model="gemini-2.5-flash",
    description="商品検索をサポートするエージェント",
    instruction=SEARCH_AGENT_INSTRUCTION,
    tools=[search_tool]
)

なんとここまででAIエージェントの開発は終了です。
ADKには開発したAIエージェントを簡単に試すWeb Kitも存在するので、そちらでAIエージェントを試してみましょう!

ADK Webでデモを動かしてみる

ADK Webとは

ADK WebとはADKを使った開発とデバッグを容易にするため、ADKに組み込まれているWebのUIツールです。

ADK Webの起動方法

エージェントをroot_agentという変数に入れないとADK Webが認識してくれないため注意です。

adk web

これにより、http://localhost:8080 でWebインターフェースが起動します。

ADK Webを使ってみる

上記のコマンドを打ってから http://localhost:8080 にアクセスすると以下のような画面が現れます。

image.png

「Tシャツを探して」と言ってみると、このようにsearch_toolが呼び出され、結果を報告してくれました。
ADK Webを利用することで、エージェントがどのタイミングでどんなツールが呼び出されたかがわかるので、開発中は非常に便利です。

image.png

エージェントアイコンをクリックすると左側にリクエスト情報や生成AIからのレスポンスが表示されるので、こちらもデバッグに活用できます。

image.png

おわりに

このように、GoogleのADKを使うことで簡単にAIエージェントが開発できるほか、
ADKの強みは他のGoogle Cloudサービスとの連携が容易である点なので、そちらについては別の記事で紹介しようと思います。

ここまで閲覧いただきありがとうございました!
モチベーションにつながるので、いいねやストックしていただけると嬉しいです!!

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?