Big TechPython

Google ADK

by GoogleUpdated Jun 15, 2025

Google's comprehensive Agent Development Kit for building multi-agent systems powered by Gemini and other models. It provides a layered architecture supporting simple LLM agents, pipeline agents with sequential/parallel/loop workflows, and custom agents with arbitrary orchestration logic. Deep integration with Google Cloud services and Vertex AI.

Architecture Overview

ADK uses a hierarchical agent architecture where a root agent can delegate to sub-agents. Agents are organized as a tree, with each agent having access to tools, a model, and optional sub-agents. The framework supports three agent types: LLM agents (model-driven), pipeline agents (workflow-driven with SequentialAgent, ParallelAgent, LoopAgent), and custom agents (code-driven). Session and memory services handle state persistence.

When to Use Google ADK

  • Gemini-powered multi-modal agents
  • Google Cloud-integrated enterprise workflows
  • Multi-agent systems with hierarchical delegation
  • Pipeline-based data processing agents
  • Vertex AI deployed production agents

Strengths & Weaknesses

Strengths

  • Multi-modal support via Gemini (text, image, video, audio)
  • Deep Google Cloud and Vertex AI integration
  • Flexible agent hierarchy: LLM, pipeline, and custom agents
  • Built-in session management and memory services
  • A2A protocol support for cross-framework interop

Weaknesses

  • Google ecosystem focus may limit portability
  • Newer framework with a rapidly evolving API
  • Smaller community compared to LangChain or CrewAI

Quick Start

python
from google.adk.agents import Agent
from google.adk.runners import Runner
from google.adk.sessions import InMemorySessionService

def get_weather(city: str) -> dict:
    """Get the current weather for a city."""
    return {"status": "success", "report": f"Sunny, 25°C in {city}"}

weather_agent = Agent(
    name="weather_agent",
    model="gemini-2.0-flash",
    description="An agent that provides weather information.",
    instruction="You are a helpful weather assistant. Use tools to answer weather queries.",
    tools=[get_weather],
)

# Set up session and runner
session_service = InMemorySessionService()
runner = Runner(agent=weather_agent, app_name="weather_app", session_service=session_service)

session = session_service.create_session(app_name="weather_app", user_id="user1")

# Run the agent
from google.adk.runners import RunConfig
response = runner.run(
    user_id="user1",
    session_id=session.id,
    new_message="What's the weather in Paris?",
)
for event in response:
    if event.is_final_response():
        print(event.content.parts[0].text)

Features at a Glance

DeveloperGoogle
LanguagePython
LicenseApache-2.0
GitHub Stars18k+
MCP SupportYes
Multi-AgentYes

Notable Users

GoogleKaggleDeepMindWayfair

Resources

Explore Related Content