`McpTool` registered under the verbatim name the remote server advertised, with no check against the names the framework itself puts on the wire. A server that advertised `adk_request_credential`, `adk_request_confirmation`, `adk_request_input` or `transfer_to_agent` therefore had its own tool dispatched in place of the framework's, so it could harvest the credentials meant for an auth callback or route the conversation to an agent of its choosing. `McpToolset.get_tools` now drops any tool carrying one of those four names and logs that it did, and `McpTool.__init__` refuses the name outright. The listing skips rather than raises because a single reserved name would otherwise fail the whole `list_tools` call and take the server's honest tools down with it; the constructor check is the backstop for anything that builds an `McpTool` directly. Only exact matches are refused, so `transfer_to_agent_v2` still registers. Co-authored-by: Kathy Wu <wukathy@google.com> PiperOrigin-RevId: 963544587
Agent Development Kit (ADK) 2.0
An open-source, code-first Python framework for building, evaluating, and deploying sophisticated AI agents with flexibility and control.
Important Links: Docs, Samples & ADK Web.
⚠️ BREAKING CHANGES FROM 1.x
This release includes breaking changes to the agent API, event model, and session schema. Sessions generated by ADK 2.0 are readable by ADK 1.28+ (extra fields will be ignored), but are incompatible with older 1.x versions.
🔥 What's New in 2.0
-
Workflow Runtime: A graph-based execution engine for composing deterministic execution flows for agentic apps, with support for routing, fan-out/fan-in, loops, retry, state management, dynamic nodes, human-in-the-loop, and nested workflows.
-
Task API: Structured agent-to-agent delegation with multi-turn task mode, single-turn controlled output, mixed delegation patterns, human-in-the-loop, and task agents as workflow nodes.
🚀 Installation
pip install google-adk
Requirements: Python 3.10+.
For transitive dependency protection, we recommend to install with our companion constraints files (for python 3.10 to 3.14).
Choose the constraints file matching your Python version:
# For example, for Python 3.10
curl -o constraints-3.10.txt https://raw.githubusercontent.com/google/adk-python/main/constraints-3.10.txt
pip install google-adk -c constraints-3.10.txt
rm constraints-3.10.txt
To install optional integrations, you can use the following command:
pip install "google-adk[extensions]"
The release cadence is roughly bi-weekly.
Quick Start
Beginner Note: ADK applications are built using two main classes:
Agent(defines an AI's instructions, tools, and behavior) andWorkflow(orchestrates agents and tasks in a graph-based flow).
Agent
from google.adk import Agent
root_agent = Agent(
name="greeting_agent",
model="gemini-2.5-flash",
instruction="You are a helpful assistant. Greet the user warmly.",
)
Workflow
from google.adk import Agent, Workflow
generate_fruit_agent = Agent(
name="generate_fruit_agent",
instruction="Return the name of a random fruit. Return only the name.",
)
generate_benefit_agent = Agent(
name="generate_benefit_agent",
instruction="Tell me a health benefit about the specified fruit.",
)
root_agent = Workflow(
name="root_agent",
edges=[("START", generate_fruit_agent, generate_benefit_agent)],
)
Run Locally
# Interactive CLI
adk run path/to/my_agent
# Web UI (supports multi-agent directories or pointing directly to a single agent folder)
adk web path/to/agents_dir
📚 Documentation
- Getting Started: https://google.github.io/adk-docs/
- Guides: See
docs/guides/for task-oriented walkthroughs of agents, tools, events, plugins, and workflows. - Samples: See
contributing/samples/for runnable example agents.
🤝 Contributing
See CONTRIBUTING.md for details.
📄 License
This project is licensed under the Apache 2.0 License — see the LICENSE file for details.
