Build Production-Ready Agents

A flexible, modular framework to develop and deploy AI agents that scale. From simple prototypes to enterprise-grade workflows.

🐍 Python
pip install google-adk
🔷 TypeScript
npm install @google/adk
🐹 Go
go get google.golang.org/adk
☕ Java
com.google.adk:google-adk:0.6.0

Next-Gen Developer Tools

Go from idea to agent instantly. Leverage Skills and the Model Context Protocol (MCP) to give your agents powerful, ready-made capabilities.

Your Agent, Your Way

Use natural language to scaffold agents with `claude code`. The ADK skill automatically translates your requirements into robust, tool-equipped agents connected to any MCP server.

$ claude 'Build me a weather agent with ADK'
Using ADK skill + MCP server...
from google.adk import Agent, Tool
import requests

# Tool is automatically generated by the Skill
get_weather = Tool(
    name="get_weather",
    description="Gets weather for a city",
    fn=lambda city: requests.get(f"https://api.weather.com?q={city}").json()
)

# Agent configured with the tool
agent = Agent(
    name="weather_agent",
    model="gemini-2.0-flash",
    instruction="You are a helpful weather assistant.",
    tools=[get_weather],
)
✔ Agent created with tool bindings
ADK Web Dev UI showing a chat trace

Visualize, Debug, and Trace

The built-in Dev UI gives you a powerful, interactive web interface for testing and debugging. Chat with your agents, inspect their thoughts, and trace every step of their execution to build with confidence.

Go Beyond Vibes

Reliability is key. ADK's evaluation framework lets you systematically test and measure your agents. Go beyond subjective "vibes" by evaluating not just the final responses, but the entire agent trajectory—thoughts, tool calls, and all.

$ adk eval --suite ./tests/
Running 3 test cases...

[PASS] test_weather_agent_sunny: Responded correctly about sunny weather.
  - Trajectory: thought -> get_weather(city='Palo Alto') -> response

[PASS] test_weather_agent_rainy: Identified need for an umbrella.
  - Trajectory: thought -> get_weather(city='Seattle') -> response

[FAIL] test_weather_agent_unknown_city: Failed to handle invalid city.
  - Trajectory: thought -> get_weather(city='Nowhere') -> ToolError

2 passed, 1 failed.