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を和訳してマルチエージェントも試してみた。