Agent Development Kitを試してみた

クイックスタートをCloud Shellで試してみる。

import datetime
from zoneinfo import ZoneInfo
from google.adk.agents import Agent

def get_weather(city: str) -> dict:
    """指定された都市の現在の天気情報を取得します。

    引数:
        city (str): 天気を取得したい都市名。

    戻り値:
        dict: ステータスと結果、またはエラーメッセージ。
    """
    if city.lower() == "ニューヨーク":
        return {
            "status": "success",
            "report": (
                "ニューヨークの天気は晴れで、気温は25度(摂氏、華氏では77度)です。"
            ),
        }
    else:
        return {
            "status": "error",
            "error_message": f"'{city}' の天気情報は利用できません。",
        }


def get_current_time(city: str) -> dict:
    """指定された都市の現在時刻を返します。

    引数:
        city (str): 現在時刻を取得したい都市名。

    戻り値:
        dict: ステータスと結果、またはエラーメッセージ。
    """

    if city.lower() == "ニューヨーク":
        tz_identifier = "America/New_York"
    else:
        return {
            "status": "error",
            "error_message": (
                f"申し訳ありませんが、{city} のタイムゾーン情報は持っていません。"
            ),
        }

    tz = ZoneInfo(tz_identifier)
    now = datetime.datetime.now(tz)
    report = (
        f'{city} の現在時刻は {now.strftime("%Y-%m-%d %H:%M:%S %Z%z")} です。'
    )
    return {"status": "success", "report": report}


root_agent = Agent(
    name="weather_time_agent",
    model="gemini-2.0-flash",
    description=(
        "都市の時刻と天気に関する質問に答えるエージェントです。"
    ),
    instruction=(
        "あなたは都市の時刻と天気に関するユーザーの質問に答える親切なエージェントです。"
    ),
    tools=[get_weather, get_current_time],
)

チュートリアルのコードを和訳したもの。
ブラウザのインターフェースで動かすことができる。


また公式のチュートリアルのColabを和訳してマルチエージェントも試してみた。