Kathy Wu 77d4647c8e fix: refuse MCP tools that take a reserved ADK tool name
`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
2026-08-12 10:58:01 -07:00
2026-08-10 17:25:52 -07:00
2025-11-03 13:33:53 -08:00

Agent Development Kit (ADK) 2.0

License PyPI version Python versions PyPI downloads Continuous Integration Docs

An open-source, code-first Python framework for building, evaluating, and deploying sophisticated AI agents with flexibility and control.


⚠️ 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) and Workflow (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

🤝 Contributing

See CONTRIBUTING.md for details.

📄 License

This project is licensed under the Apache 2.0 License — see the LICENSE file for details.

S
Description
An open-source, code-first Python toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.|GitHub 镜像 21.3k · 🍴 3.9k
https://github.com/google/adk-python Readme Apache-2.0 79 MiB
Languages
Python 77.5%
JavaScript 20.7%
Jupyter Notebook 1.3%
HTML 0.3%