Agent Development Kit(ADK)是 Google 開發的一個開源框架,旨在簡化和加速 AI 代理(Agent)的開發、測試與部署。
簡單來說,ADK 讓 AI 代理的開發更像傳統的軟體開發,提供了一套結構化的工具,幫助開發者:
 - 建立多代理系統: ADK 的主要特點之一是專為多代理協作而設計。開發者可以建立一個由多個專業化代理組成的團隊,讓它們互相溝通、委派任務,以解決更複雜的問題,例如一個旅遊規劃代理團隊,裡面可能包含負責查詢航班、預訂飯店、提供景點建議等不同功能的代理。
 - 賦予代理工具: ADK 讓開發者可以輕鬆地為代理配備各種工具,例如網路搜尋、程式碼執行、與外部 API 互動等,讓代理能執行實際行動,而不只是產生文字回應。
 - 簡化開發流程: 它提供了彈性的編排方式,無論是定義固定的任務流程(例如:依序執行 A、B、C)還是讓大型語言模型 (LLM) 動態決定下一步行動,ADK 都能支援。
 - 內建評估工具: 開發者可以透過 ADK 內建的工具,系統性地評估代理的效能,確保它們在不同情境下的表現符合預期。
    python -m venv .venv
    pip install google-adk
parent_folder/
    multi_tool_agent/
        __init__.py
        agent.py
        .env
建立資料夾multi_tool_agent
    mkdir multi_tool_agent/
init.py
 echo "from . import agent" > multi_tool_agent/__init__.py
multi_tool_agent/init.py 的內容
    from . import agent
agent.py
    touch multi_tool_agent/agent.py
agent.py 的內容
import datetime
from zoneinfo import ZoneInfo
from google.adk.agents import Agent
def get_weather(city: str) -> dict:
    """Retrieves the current weather report for a specified city.
    Args:
        city (str): The name of the city for which to retrieve the weather report.
    Returns:
        dict: status and result or error msg.
    """
    if city.lower() == "new york":
        return {
            "status": "success",
            "report": (
                "The weather in New York is sunny with a temperature of 25 degrees"
                " Celsius (77 degrees Fahrenheit)."
            ),
        }
    else:
        return {
            "status": "error",
            "error_message": f"Weather information for '{city}' is not available.",
        }
def get_current_time(city: str) -> dict:
    """Returns the current time in a specified city.
    Args:
        city (str): The name of the city for which to retrieve the current time.
    Returns:
        dict: status and result or error msg.
    """
    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="weather_time_agent",
    model="gemini-2.5-flash",
    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=[get_weather, get_current_time],
)
.env
touch multi_tool_agent/.env
.env 的內容
GOOGLE_GENAI_USE_VERTEXAI=TRUE
GOOGLE_API_KEY=PASTE_YOUR_ACTUAL_EXPRESS_MODE_API_KEY_HERE
    adk web



ADK有提供 command line 和 web 介面,還滿方便的,滿足了不同角色與不同階段的需求。它不僅讓 AI 代理的開發更像現代軟體工程,也讓整個開發、測試與維運的生命週期變得更為順暢。這也是為什麼 ADK 被認為是建構強大、可靠的 AI 代理系統的一個重要工具。