GO

Google ADK

5,500Python/TypeScript/Go/JavaOfficial SDK

Google's official Agent Development Kit for building production AI agents with Gemini.

GoogleGeminiOfficialMulti-LanguageEnterprise

Overview

Google ADK (Agent Development Kit) is Google's official framework for building AI agents powered by Gemini models. Released in 2025, the ADK provides a comprehensive set of tools, abstractions, and integrations for developing production-ready AI agents that can reason, plan, and execute tasks across Google's ecosystem and beyond.

Features

  • Gemini-first design with all model variants
  • Multi-language SDKs (Python, TypeScript, Go, Java)
  • Function calling with automatic tool registration
  • Built-in memory management
  • Deep Google Cloud integration
  • Enterprise security with IAM and audit logging

Installation

pip install google-adk

Pros

  • +Deep GCP integration
  • +Best-in-class Gemini performance
  • +Enterprise ready with compliance features
  • +Multi-language support
  • +Scalable deployment options

Cons

  • Google ecosystem lock-in
  • Newer framework with less maturity
  • Smaller community ecosystem
  • Some SDKs less mature than others

Alternatives

Documentation

Google ADK (Agent Development Kit)

Overview

Google ADK (Agent Development Kit) is Google's official framework for building AI agents powered by Gemini models. Released in 2025, the ADK provides a comprehensive set of tools, abstractions, and integrations for developing production-ready AI agents that can reason, plan, and execute tasks across Google's ecosystem and beyond.

The ADK builds on Google's extensive experience with AI infrastructure and provides first-class support for Gemini models, Google Cloud services, and enterprise-grade features. It's designed to be framework-agnostic, allowing developers to use their preferred programming language while still benefiting from Google's AI capabilities.

Key differentiators include deep integration with Google Cloud Platform, built-in support for Gemini's advanced capabilities (like multimodal reasoning and long context windows), and enterprise features like audit logging, compliance controls, and scalable deployment options.

Features

  • Gemini-First Design: Native support for all Gemini model variants (Flash, Pro, Ultra)
  • Multi-Language SDKs: Official SDKs for Python, TypeScript/JavaScript, Go, and Java
  • Function Calling: Automatic tool registration and structured output handling
  • Memory Management: Built-in conversation memory and long-term context storage
  • Google Cloud Integration: Seamless integration with GCP services (BigQuery, Cloud Storage, etc.)
  • Enterprise Security: IAM integration, audit logging, and compliance certifications
  • Scalable Deployment: Support for serverless, container, and hybrid deployment
  • Multimodal Support: Native handling of text, images, audio, and video inputs

Installation

Python

pip install google-adk

Node.js

npm install @google/adk

Go

go get google.golang.org/adk

Quick Start

Python Example

from google_adk import Agent, GeminiModel, Tool

# Define a simple agent
agent = Agent(
    name="research-agent",
    model=GeminiModel("gemini-2.0-flash"),
    instructions="You are a research assistant that helps find and summarize information."
)

# Add tools
@agent.tool
def search_web(query: str) -> str:
    """Search the web for information."""
    # Implementation using Google Search API
    pass

# Run the agent
response = agent.run("Find the latest news about AI agent frameworks")
print(response.text)

TypeScript Example

import { Agent, GeminiModel } from '@google/adk';

const agent = new Agent({
  name: 'research-agent',
  model: new GeminiModel('gemini-2.0-flash'),
  instructions: 'You are a research assistant.',
});

const response = await agent.run('Find the latest news about AI agent frameworks');
console.log(response.text);

Core Concepts

Agent Architecture

The ADK follows a modular architecture:

┌─────────────────────────────────────────┐
│              Agent Core                  │
├─────────────────────────────────────────┤
│  ┌──────────┐  ┌──────────┐  ┌────────┐│
│  │ Planner  │  │ Executor │  │ Memory ││
│  └──────────┘  └──────────┘  └────────┘│
├─────────────────────────────────────────┤
│           Tool Registry                  │
├─────────────────────────────────────────┤
│     Model Adapter (Gemini)              │
└─────────────────────────────────────────┘

Tool System

Tools in the ADK are first-class citizens with automatic registration:

from google_adk import tool

@tool
def calculate_tax(amount: float, rate: float) -> float:
    """Calculate tax for a given amount and rate."""
    return amount * rate

@tool
def fetch_weather(location: str) -> dict:
    """Get current weather for a location."""
    # Uses Google Weather API
    pass

Memory Management

The ADK provides multiple memory options:

from google_adk import Agent, ConversationMemory, LongTermMemory

# Short-term conversation memory
agent = Agent(
    model=GeminiModel("gemini-2.0-flash"),
    memory=ConversationMemory(max_messages=20)
)

# Long-term memory with vector storage
agent = Agent(
    model=GeminiModel("gemini-2.0-flash"),
    memory=LongTermMemory(
        provider="vertexai",
        collection="agent-memory"
    )
)

Advanced Features

Multi-Agent Orchestration

from google_adk import MultiAgentOrchestrator, Agent

researcher = Agent(name="researcher", model=GeminiModel("gemini-2.0-flash"))
writer = Agent(name="writer", model=GeminiModel("gemini-2.0-flash"))
editor = Agent(name="editor", model=GeminiModel("gemini-2.0-flash"))

orchestrator = MultiAgentOrchestrator(
    agents=[researcher, writer, editor],
    strategy="sequential"  # or "parallel", "hierarchical"
)

result = orchestrator.run("Write a comprehensive article about quantum computing")

Streaming Support

for chunk in agent.run_stream("Explain quantum entanglement"):
    print(chunk.text, end="", flush=True)

Structured Outputs

from google_adk import StructuredOutput

response = agent.run(
    "Extract entities from this text",
    output_schema={
        "type": "object",
        "properties": {
            "entities": {
                "type": "array",
                "items": {
                    "type": "object",
                    "properties": {
                        "text": {"type": "string"},
                        "type": {"type": "string"},
                        "confidence": {"type": "number"}
                    }
                }
            }
        }
    }
)

Examples

Example 1: RAG Agent with BigQuery

from google_adk import Agent, GeminiModel, BigQueryTool

agent = Agent(
    model=GeminiModel("gemini-2.0-pro"),
    tools=[BigQueryTool(project="my-project", dataset="analytics")]
)

response = agent.run("""
    Query our analytics database to find the top 5 products by revenue 
    in Q4 2025, then summarize the findings in a report format.
""")

Example 2: Multimodal Document Analysis

from google_adk import Agent, GeminiModel

agent = Agent(model=GeminiModel("gemini-2.0-pro"))

# Analyze an image document
response = agent.run(
    "Extract all text and tables from this document image",
    images=["document_scan.png"]
)

Example 3: Code Generation Agent

from google_adk import Agent, GeminiModel, FileTool, GitTool

agent = Agent(
    model=GeminiModel("gemini-2.0-flash"),
    tools=[FileTool(), GitTool()],
    instructions="You are a code generation assistant. Write clean, well-documented code."
)

response = agent.run("""
    Create a Python function that calculates the Fibonacci sequence 
    using memoization. Include unit tests.
""")

Pros

  • Deep GCP Integration: Seamless connection to Google Cloud services
  • Gemini Optimization: Best-in-class performance with Gemini models
  • Enterprise Ready: Built-in security, compliance, and audit features
  • Multi-Language Support: Choose your preferred language
  • Scalable Infrastructure: Serverless to hybrid deployment options
  • Strong Documentation: Comprehensive guides and examples
  • Cost Effective: Competitive pricing with Gemini Flash

Cons

  • Google Ecosystem Lock-in: Best experience requires GCP
  • Newer Framework: Less mature than LangChain or CrewAI
  • Limited Community: Smaller ecosystem of third-party tools
  • Language Coverage: Some SDKs less mature than others
  • Vendor Dependency: Tied to Google's development roadmap

When to Use

Ideal for:

  • Applications already on Google Cloud Platform
  • Enterprise deployments requiring compliance and audit trails
  • Projects leveraging Gemini models for their capabilities
  • Teams already using Google's developer ecosystem
  • Multimodal applications requiring image/audio/video processing

Not ideal for:

  • Projects requiring multi-cloud deployment
  • Teams heavily invested in other ecosystems (AWS, Azure)
  • Applications needing maximum framework flexibility
  • Projects with strict open-source requirements

Use Cases

Use CaseWhy Google ADK
GCP-Native ApplicationsDeep integration with BigQuery, Cloud Storage, Vertex AI
Enterprise AIBuilt-in security, compliance, and audit logging
Multimodal AINative support for text, images, audio, video
Gemini-Powered AgentsBest-in-class Gemini model optimization

Comparison with Alternatives

FeatureGoogle ADKLangChainCrewAIPydanticAI
Gemini Native✅ Yes⚠️ Via provider⚠️ Via provider⚠️ Via provider
GCP Integration✅ Deep⚠️ Limited❌ No❌ No
Multi-Language✅ 4 SDKs✅ Python/JS✅ Python✅ Python
Enterprise Ready✅ Yes⚠️ Manual⚠️ Manual⚠️ Manual
Multimodal✅ Native⚠️ Via tools❌ No❌ No
Learning CurveMediumHighLowMedium
Best forGCP + GeminiFlexibilityMulti-agentType safety

Best Practices

  1. Use Gemini Flash for speed — Best cost/performance for most tasks
  2. Leverage GCP tools — Use BigQuery, Cloud Storage integrations
  3. Configure memory properly — Choose between ConversationMemory and LongTermMemory
  4. Enable structured outputs — Use output schemas for reliable data extraction
  5. Plan multi-agent workflows — Use orchestrator patterns for complex tasks

Troubleshooting

IssueSolution
Gemini API errorsVerify API key and model availability in your region
Memory not persistingCheck LongTermMemory collection name and Vertex AI access
Tool registration failsEnsure tool functions have proper docstrings
Streaming not workingUse run_stream() method correctly

Resources