Googleの提供するエージェント開発ツール 「ADK」を使ってみた
2025-07-30
azblob://2025/07/30/eyecatch/2025-07-30-trying-google-adk-for-shogi-agent-000.png

はじめに

先日、Google Japanの社員の方が弊社FIXERの名古屋事務所にお越しくださり、AI Agentに関する講義をして頂きました。

そこで登場したADK (agent development kit)に関して、実際に触れてみた感想や使い方についてまとめます。

ADKとは

ADKの公式ドキュメントによると、以下のような説明になっています。

Agent Development Kit (ADK) is a flexible and modular framework for developing and deploying AI agents. While optimized for Gemini and the Google ecosystem, ADK is model-agnostic, deployment-agnostic, and is built for compatibility with other frameworks. ADK was designed to make agent development feel more like software development, to make it easier for developers to create, deploy, and orchestrate agentic architectures that range from simple tasks to complex workflows.

要は、生成AIのモデルに依存しないAIエージェントの開発キットということです。

類似の製品としては、OpenAI Agents SDKやLangChainなどが挙げられます。 どれもできることは近いですが、ADKはGoogleのエコシステムに組み込まれている性質上、Google Cloud Platform(GCP)やその他のGoogleサービスとの連携がスムーズに行える点が特徴です。

ADKを使って、将棋お助けエージェントを作ってみる

それでは、実際にADKを使って将棋に関する情報を教えてくれるエージェントを作成してみます。

作成にあたり、参考にした記事を参考文献に記載しています。

環境情報

  • OS: Windows 11
  • シェル: PowerShell 7.4.11
  • パッケージマネージャー: uv 0.8.3

※ MacやLinuxではuvのインストール方法が異なります。今回はWindows環境での手順のみ記載します。

環境構築

まずは、ADKを使うためのPython環境を構築します。

   1. uvのインストール: ADKはPythonかJavaで利用できますが、今回はPythonを使います。まずはuvというパッケージマネージャーをインストールします。

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

   2. uvがインストールできたか確認

uv --version

   3. プロジェクト作成: Pythonのプロジェクトを作っていきます。パスはご自身の環境に合わせて適宜変更してください。

# フォルダ作成
mkdir C:\Users\ユーザーXX\Documents\python-adk

# 作成したフォルダに移動
cd C:\Users\ユーザーXX\Documents\python-adk

# プロジェクトの初期化
uv init

# 仮想環境の作成
uv venv

# 仮想環境の有効化
.\venv\Scripts\Activate.ps1

   4. パッケージのインストール: 仮想環境を有効化した状態で、必要なパッケージをインストールします。

# ADKのインストール
uv pip install google-adk

# feedparserのインストール
uv pip install feedparser

   5. パッケージの確認: 必要なパッケージが揃っていることを確認します。google-adkfeedparserrequests(最初からインストール済み)がインストールされていることを確認します。

uv pip list

LLMの準備

モデルに制限はありませんが、構築が楽なため、Google AI Studio経由でGeminiを使用します。

AI Studio上でAPIキーを発行し、これをADKで設定することで、AI StudioのGeminiモデルで回答を生成することができます。

  1. Google AI Studioへのログイン: Google AI Studioへアクセスし、Googleアカウントでログインします。
  2. APIキーの発行: 課金アカウントの作成やプロジェクトの作成が完了したら、AI Studioの画面上部にある「Get API Key」 > 「APIキーを作成」からAPIキーを発行します。発行したAPIキーは後で使用するので、メモしておいてください。

エージェントの作成

   1. 必要なファイル作成: 以下の構成でフォルダ・ファイルを作成してください。

python-adk/
└── shogi-info-agent/
    ├── __init__.py
    ├── agent.py
    └── .env

   2. __init__.pyの作成: shogi-info-agent/__init__.pyファイルをに以下の内容を記述します。

Pythonfrom . import agent

   3. agent.pyの作成: shogi-info-agent/agent.pyファイルを作成し、以下の内容を記述します。今回は将棋の最新ニュースを取得するエージェントのため、日本将棋連盟が提供するRSSフィードを利用して最新のニュースを取得するツールを作成します。

Pythonimport feedparser
import requests
from google.adk.agents import Agent

def get_shogi_news() -> dict:
    """Retrieves the latest news about shogi.

    Returns:
        dict: A dictionary containing the latest shogi news with a 'status' key ('success' or 'error') and a 'report' key with the news details if successful, or an 'error_message' if an error occurred.
    """

    # 日本将棋連盟が提供するRSSフィードのURL
    RSS_URL = "https://www.shogi.or.jp/atom.xml"

    try:
        response = requests.get(RSS_URL, timeout=10)
        response.raise_for_status()

        # RSSフィードを解析
        feed = feedparser.parse(response.text)

        if feed.bozo:
            # bozo_exceptionがより詳細なエラー情報を持っている場合がある
            exception_info = feed.get("bozo_exception", "Unknown parsing error")
            raise Exception(f"Failed to parse RSS feed: {exception_info}")

        # ニュース記事(エントリ)が存在するかチェック
        if not feed.entries:
            return {
              "status": "success",
              "report": "新しい将棋ニュースは見つかりませんでした。"
            }
        
        # 最新のニュースを取得(今回は最新の1件を取得)
        latest_entry = feed.entries[0]
        title = latest_entry.title
        link = latest_entry.link
        summary = latest_entry.summary

        # レポート形式の文字列を作成
        report = (
            f"最新の将棋ニュース:\n"
            f"タイトル: {title}\n"
            f"リンク: {link}\n"
            f"概要: {summary}\n"
        )

    except Exception as e:
        # ネットワークエラーやその他の問題が発生した場合
        return {
            "status": "error",
            "error_message": f"将棋ニュースの取得中にエラーが発生しました: {e}"
        }

    return {"status": "success",
            "report": report}

root_agent = Agent(
    name="shogi_info_agent",
    model="gemini-2.0-flash",
    description="Agent to answer questions about shogi.",
    instruction="I can answer your questions about shogi.",
    tools=[get_shogi_news]
)

   4. .envファイルの作成: shogi-info-agent/.envファイルを作成し、以下の内容を記述します。今回はGoogle AI Studioを使用するため、以下の構成になります。

# Google AI Studioを使用する場合
GOOGLE_GENAI_USE_VERTEXAI="False"
GOOGLE_API_KEY="your_api_key_here"

エージェントの実行

エージェントを実行する際、管理者権限がないとエラーが発生する場合があるため、PowerShellを管理者モードで実行してください。

管理者モードで開いた後、以下の手順を行ってください。

   1. プロジェクトディレクトリに移動:

cd C:\Users\ユーザーXX\Documents\python-adk

   2. 仮想環境の有効化:

powershell.\venv\Scripts\Activate.ps1

   3. エージェント直下へ移動:

cd shogi-info-agent

   4. エージェントの実行: 以下のコマンドでエージェントを起動します。

adk run ./

問答してみる

エージェント起動時、以下のように表示されれば準備は完了です。

Administrator in ~\Documents\python-adk\shogi-info-agent on  master [?] via 🐍 v3.13.2 (python-adk) on ☁️  (ap-northeast-3)
❯ adk run ./
Log setup complete: C:\Users\ユーザーXX\AppData\Local\Temp\agents_log\agent.20250728_210215.log

...(ry

[user]: 

これでコンソール上でエージェントを起動することが出来ました。

それでは試しに質問してみます。質問を入力してエンターを押すとエージェントへ質問が送信され、ツールを経由してGeminiモデルが回答を生成します。

[user]: 将棋に関するニュースを教えてください
[shogi_info_agent]: 最新の将棋ニュースをお伝えします。タイトルは「藤井聡太王位VS永瀬拓矢九段 伊藤園お~いお茶杯第66期王位戦七番勝負第3局」です。詳しくは、https://www.shogi.or.jp/news/2025/07/250729_n_01.html?utm_source=rss をご覧ください。

RSSフィードから最新のニュースを取得し、タイトルとリンクを回答することが出来ました。

↓リンク先の記事はこちら

日本将棋連盟_ニュース記事
日本将棋連盟_ニュース記事

まとめ

このように、ADKを使うことで手軽に将棋に関する最新ニュースを取得するエージェントを作ることができました。

今回はデモのため簡易的に作成しましたが、複数のツールを登録することで、より高度な機能を持つエージェントに拡張することも可能です。

この将棋情報エージェントをさらに発展させるなら、将棋の対局履歴の検索や、棋譜の解析などの機能追加が考えられます。

ぜひ、ADKを使って自分だけのエージェントを作成してみてください。

参考文献・記事