Table of Contents

Google ADK

Google Agent Development Kit (ADK) is an open-source, code-first Python framework for building, evaluating, and deploying AI agents. With 18.6K GitHub stars, ADK is Google's official agent framework — optimized for Gemini models but fully model-agnostic, supporting deployment from local development to Google Cloud at scale.

framework python google gemini agents multi-agent cloud

Overview

Google ADK was released as part of Google's push to make agent development accessible through software engineering best practices rather than prompt-centric approaches. The framework emphasizes a code-first philosophy where agents are defined in Python with clear structure, tools are regular functions, and deployment scales from adk run on a laptop to Vertex AI Agent Engine in production. ADK 2.0 Alpha introduced graph-based orchestration for complex multi-agent workflows, signaling Google's commitment to the framework as a first-class development platform.

Key Features

Architecture

ADK follows a modular project structure with clear separation of concerns:

graph TD subgraph Runtime["ADK Runtime"] subgraph RootAgent["Root Agent"] A[Model: Gemini / OpenAI] B[Instructions: System Prompt] C[Tools: Functions / Built-in] end D[Sub-Agents / Graph Orchestration: Hierarchical / Agents-as-Tools / DAG] end RootAgent --> D D --> E[adk run: CLI] D --> F[adk web: Dev UI] D --> G[Vertex AI: Cloud]

Code Example

Building an agent with Google ADK:

from google.adk.agents.llm_agent import Agent
from google.adk.runners import Runner
from google.adk.sessions import InMemorySessionService
 
# Define a tool as a regular Python function
def get_current_weather(city: str) -> dict:
    """Get the current weather for a city."""
    # Real API call would go here
    return {
        "city": city,
        "temperature": "22C",
        "condition": "Sunny",
        "humidity": "45%"
    }
 
def search_news(topic: str) -> dict:
    """Search for recent news on a topic."""
    return {
        "topic": topic,
        "articles": ["Article 1", "Article 2", "Article 3"]
    }
 
# Define the agent
root_agent = Agent(
    model="gemini-2.0-flash",
    name="assistant",
    description="A helpful assistant with weather and news tools.",
    instruction=(
        "You are a helpful assistant. Use available tools to "
        "answer questions about weather and current events."
    ),
    tools=[get_current_weather, search_news],
)
 
# Run interactively
session_service = InMemorySessionService()
runner = Runner(agent=root_agent, app_name="my_app", session_service=session_service)

Google Cloud Integration

ADK integrates deeply with Google Cloud services:

Service Integration
Vertex AI Agent Engine Production deployment with CLI config
Cloud Run Containerized agent deployment
BigQuery Forecast tools, project/app naming
GKE GKECodeExecutor for sandboxed code execution
Bigtable Experimental toolset for database operations
OAuth Configurable audience/prompt for Google services

Recent Updates (2025-2026)

References

See Also