An open-source, code-first Python toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.
Go to file
Jack Wotherspoon 11ca528090 feat!: remove ToolboxTool in favor of using toolbox-core directly
Copybara import of the project:

--
9cefcdde97685bc6966a13019bfb80cc232a399b by Jack Wotherspoon <jackwoth@google.com>:

chore: delete toolbox_tool.py
--
b2607eb0397e72b6b616ac592920f74d42a8ee5d by jackwotherspoon <jackwoth@google.com>:

feat: expose toolbox

--
a4a0859997af9a68e240f78ff351f0fded6a52e2 by Jack Wotherspoon <jackwoth@google.com>:

chore: update formatting
--
070dc93cdc289a5ee5935bd5995d3005bf8396a0 by jackwotherspoon <jackwoth@google.com>:

chore: add base toolbox tests

--
ab84a0f49eccc9b993317b3ffe2b5b6cad278d70 by jackwotherspoon <jackwoth@google.com>:

chore: remove ToolboxTool

--
87f4f909acc294468bcb3053e300f4df252bdb27 by Jack Wotherspoon <jackwoth@google.com>:

chore: update formatting
--
ddc1a11c0ce45fe34e5f2dd43c808d88a7d6af0b by Jack Wotherspoon <jackwoth@google.com>:

chore: Update pyproject.toml
--
aee173d8df40ffefe535b266e1bd6528c9aeb1b9 by Jack Wotherspoon <jackwoth@google.com>:

chore: Update pyproject.toml
--
22fc95922b500ddb0ec4901dccbe2fbfcc53b35f by Jack Wotherspoon <jackwoth@google.com>:

chore: Update __init__.py
COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/763 from jackwotherspoon:expose-toolbox 3cb629a9d0d18aaeeeed59fb0d0d1e1b225b7437
PiperOrigin-RevId: 759744557
2025-05-16 13:56:58 -07:00
.github Create a developer folder and add samples. 2025-05-07 09:26:19 -07:00
assets Update the adk-web-dev-ui-function-call screenshot. 2025-05-16 10:57:24 -07:00
contributing/samples Copybara import of the project: 2025-05-16 09:18:48 -07:00
src/google/adk feat!: remove ToolboxTool in favor of using toolbox-core directly 2025-05-16 13:56:58 -07:00
tests Copybara import of the project: 2025-05-16 13:20:57 -07:00
.gitignore Add .gitignore file to exclude common Python, IDE, and environment files (#109) 2025-04-12 07:35:53 -07:00
CHANGELOG.md ADK v0.5.0 release. 2025-05-08 12:15:46 -07:00
CONTRIBUTING.md Move uv install under install dependencies 2025-05-09 20:33:42 -07:00
LICENSE Agent Development Kit(ADK) 2025-04-08 17:25:47 +00:00
pylintrc Copybara import of the project: 2025-04-20 22:53:15 -07:00
pyproject.toml chore: Adds mypy to dev extra. 2025-05-15 22:57:54 -07:00
README.md update readme 2025-04-24 15:50:09 -07:00

Agent Development Kit (ADK)

License Python Unit Tests r/agentdevelopmentkit

<html>

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

Important Links: Docs & Samples.

</html>

Agent Development Kit (ADK) is a flexible and modular framework for developing and deploying AI agents. While optimized for Gemini and the Google ecosystem, ADK is model-agnostic, deployment-agnostic, and is built for compatibility with other frameworks. ADK was designed to make agent development feel more like software development, to make it easier for developers to create, deploy, and orchestrate agentic architectures that range from simple tasks to complex workflows.


Key Features

  • Rich Tool Ecosystem: Utilize pre-built tools, custom functions, OpenAPI specs, or integrate existing tools to give agents diverse capabilities, all for tight integration with the Google ecosystem.

  • Code-First Development: Define agent logic, tools, and orchestration directly in Python for ultimate flexibility, testability, and versioning.

  • Modular Multi-Agent Systems: Design scalable applications by composing multiple specialized agents into flexible hierarchies.

  • Deploy Anywhere: Easily containerize and deploy agents on Cloud Run or scale seamlessly with Vertex AI Agent Engine.

🚀 Installation

You can install the latest stable version of ADK using pip:

pip install google-adk

The release cadence is weekly.

This version is recommended for most users as it represents the most recent official release.

Development Version

Bug fixes and new features are merged into the main branch on GitHub first. If you need access to changes that haven't been included in an official PyPI release yet, you can install directly from the main branch:

pip install git+https://github.com/google/adk-python.git@main

Note: The development version is built directly from the latest code commits. While it includes the newest fixes and features, it may also contain experimental changes or bugs not present in the stable release. Use it primarily for testing upcoming changes or accessing critical fixes before they are officially released.

📚 Documentation

Explore the full documentation for detailed guides on building, evaluating, and deploying agents:

🏁 Feature Highlight

Define a single agent:

from google.adk.agents import Agent
from google.adk.tools import google_search

root_agent = Agent(
    name="search_assistant",
    model="gemini-2.0-flash", # Or your preferred Gemini model
    instruction="You are a helpful assistant. Answer user questions using Google Search when needed.",
    description="An assistant that can search the web.",
    tools=[google_search]
)

Define a multi-agent system:

Define a multi-agent system with coordinator agent, greeter agent, and task execution agent. Then ADK engine and the model will guide the agents works together to accomplish the task.

from google.adk.agents import LlmAgent, BaseAgent

# Define individual agents
greeter = LlmAgent(name="greeter", model="gemini-2.0-flash", ...)
task_executor = LlmAgent(name="task_executor", model="gemini-2.0-flash", ...)

# Create parent agent and assign children via sub_agents
coordinator = LlmAgent(
    name="Coordinator",
    model="gemini-2.0-flash",
    description="I coordinate greetings and tasks.",
    sub_agents=[ # Assign sub_agents here
        greeter,
        task_executor
    ]
)

Development UI

A built-in development UI to help you test, evaluate, debug, and showcase your agent(s).

Evaluate Agents

adk eval \
    samples_for_testing/hello_world \
    samples_for_testing/hello_world/hello_world_eval_set_001.evalset.json

🤖 A2A and ADK integration

For remote agent-to-agent communication, ADK integrates with the A2A protocol. See this example for how they can work together.

🤝 Contributing

We welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, please see our

📄 License

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

Preview

This feature is subject to the "Pre-GA Offerings Terms" in the General Service Terms section of the Service Specific Terms. Pre-GA features are available "as is" and might have limited support. For more information, see the launch stage descriptions.


Happy Agent Building!