Martin Heller
Contributing Writer

Hands-on with the Google Agent Development Kit

reviews
Apr 13, 20269 mins

The Google ADK is a capable and mostly complete framework for developing agents, with support for multiple agent types, multi-agent architectures, and multiple programming languages.

A human hand against a midnight-black background holds a tablet like a platter with the word "AI" resting on top. AI tools, AI technology, AI innovation.
Credit: Deemerwha studio / Shutterstock

The Google Agent Development Kit (ADK) is a flexible and modular open-source framework for developing and deploying AI agents. It is optimized for Gemini and the Google ecosystem, but the ADK is model-agnostic, deployment-agnostic, and built for compatibility with other frameworks. The ADK was designed to make agent development feel more like software development, to help developers create, deploy, and orchestrate agentic architectures.

Google recommends deploying your ADK agent to its own Vertex AI Agent Engine Runtime, which is a fully managed Google Cloud service designed for deploying, managing, and scaling AI agents built with frameworks such as ADK. Alternatively, you can containerize your agent and deploy it essentially anywhere, including Google Cloud Run.

Direct competitors to the ADK include Amazon Bedrock AgentCore, Azure AI Foundry Agents, and Databricks Agent Bricks. Additional competitors include the OpenAI Agents SDK, LangChain/LangGraph, CrewAI, and SmythOS. I reviewed Amazon Bedrock AgentCore in March.

ADKs for Python, Go, Java, and TypeScript

There are currently four Google ADK languages: Python, Go, Java, and TypeScript. In addition, there is an ADK for Web that is a developer UI, which we will discuss later.

The Python ADK seems to be the oldest of the four, based on its commit history, and has the most samples. It features a rich tool ecosystem, code-first development, agent config (which lets you build an ADK workflow without writing code), a tool confirmation flow (HITL), modular multi-agent systems, and near-universal deployment. The newest features include custom service registration, the ability to rewind a session to before a previous invocation, and a class that supports executing agent-generated code using the Vertex AI Code Execution Sandbox API. The ADK supports the A2A protocol for remote agent-to-agent communication.

You can install the latest stable version of the Python ADK using pip (or pip3, depending on your Python installation):

pip install google-adk

There are quite a few dependencies. You can also install the ADK with uv, as demonstrated in some of the samples. Using a virtual environment is recommended.

The Go ADK offers essentially the same features as the Python ADK, plus idiomatic Go. You can add ADK Go to your project, by running: 

go get google.golang.org/adk

The Java ADK boasts the same features, development UI, and interface as the Python ADK. The installation requires adding google-adk to your Maven dependencies.

The TypeScript ADK has the same features, development UI, and interface as the Python ADK. To install it, you can run:

npm install @google/adk

ADK Quickstarts

There are at least five quick starts for the ADK. One is for Python and the Vertex AI SDK. The other four, as you might expect, are for Python, Go, Java, and TypeScript. Those four follow the same pattern.  Basically, you install the ADK, use the ADK to create an agent project, add a little code to the agent project, set your Gemini API key, and run your agent both as a CLI and using a web interface.

Google ADK CLI Screenshot 02

Running the sample ADK agent as a CLI. Note that the time is hard-wired (mocked) in the sample.

Foundry

Google ADK web Screenshot 03

Running the sample ADK agent as a web UI. 

Foundry

ADK Web: Local development environment

ADK Web is the built-in dev UI that comes with the ADK for easier development and debugging. The prerequisites are npm, Node.js, Angular CLI, google-adk (Python), and google-adk (Java). To install, you clone the ADK Web repo, install its node dependencies, then run both the ADK Web and ADK API servers, in separate terminals.

If all is well, the UI will be at localhost:4200. It shows you events, traces, artifacts, and evaluations, and offers you an agent builder and assistant.

Google ADK web builder Screenshot 04

ADK Web agent builder and assistant.

Foundry

Core ADK concepts and capabilities

ADK agents can either use language models or be deterministic workflow agents or custom agents, which allow you to define arbitrary orchestration logic. Agents can call tools to interact with external APIs, search, or run code. They can also load and save artifacts.

You can provide callbacks to run at specific points in the agent’s process. The ADK handles the context of a session, its events, and the agent’s short-term state, much like a web server supports a web application. The ADK also supports long-term memory across multiple sessions.

Planning is a way to break down goals before trying to accomplish them. Runners manage the execution flow and orchestrate agent interactions.

The ADK supports applications composed of multiple, specialized agents that can interact. 

The ADK includes a command-line interface (CLI) and a developer UI for running agents, inspecting execution steps (events, state changes), debugging interactions, and visualizing agent definitions.

The framework includes tools to create multi-turn evaluation data sets and run evaluations. It also strives to be open and extensible. As I mentioned earlier, the ADK is optimized for Gemini and the Google ecosystem, but is nevertheless model-agnostic, deployment-agnostic, and compatible with other frameworks.

Agent skills

Agent skills are a simple, open format for giving agents new capabilities and expertise. They are folders of instructions, scripts, and resources that agents can discover and use. Skills provide the context that agents need to do real work. Skills can enable domain expertise, new capabilities, repeatable workflows, and interoperability.

The agent skills format was originally developed by Anthropic and released as an open standard. It is supported by many AI development tools in addition to the ADK, such as Visual Studio Code, GitHub, Frontier LLMs, agentic coding tools, and AI-capable databases such as Snowflake and Databricks.

Agent runtimes

ADK offers several ways to run your agents for development and test. These include:

  1. adk web, which launches a browser-based interface
  2. adk run, which lets you interact with your agents in the terminal, and
  3. adk api_server, which exposes your agents through a RESTful API.

ADK samples and community repos

The ADK Samples Repo contains ADK sample agents for the four supported languages, although Python agents dominate. The ADK Python community repo is home to a growing ecosystem of community-contributed tools, third-party service integrations, and deployment scripts that extend the core capabilities of the ADK.

Examining the customer service sample

The ADK Samples Customer Service example is a conversational, multimodal Python agent for a fictional big-box retailer specializing in home improvement, gardening, and related supplies. I chose it as the sample closest to the customer service agent I tried for my Amazon Bedrock AgentCore review. The agent’s flow diagram is below.

The customer service agent uses mocks for its tools, so not everything works exactly as you’d expect. To implement this agent with actual back-end integration, you will need to edit customer_service/tools/tools.py, which is where all the agent tools are currently mocked with wired-in responses, and replace the mocks with API calls.

customer_service/tools/agent.py imports those tools and lists them all in its root_agent/tools array, part of the Agent constructor. The tools/config.py logic defines this agent as deployable to Vertex AI in the us-central region, and deployment/deploy.py defines a Vertex AI bucket and agent wheel file.

Comparing this sample to the Amazon Bedrock AgentCore sample, I find the ADK sample more capable in general. The one feature of AgentCore that the ADK seems to lack is policies external to the agent that are implemented in the framework; in the AgentCore example, a limit on discounts is implemented in Python code, which seems like a more reasonable approach to me, and probably to most programmers.

Google ADK customer_service_workflow Screenshot 05

Workflow diagram of the cymbal_retail_agent, which is the core of the ADK Customer Service Example from the ADK Samples repo.

Foundry

The bottom line

The Google Agent Development Kit is a capable and mostly complete framework for developing agents. It can build workflow agents and custom agents in addition to LLM agents, supports multi-agent architectures, and allows you to extend your agent capabilities with AI models, artifacts, tools, integrations, plug-ins, skills, and callbacks. An ADK agent can act as a Model Context Protocol (MCP) client, and you can expose ADK tools via an MCP server. The downside of all those capabilities would be the time and effort needed to learn the framework.

Overall, I like the Google ADK, and its architecture makes more sense to me than Amazon Bedrock AgentCore. The ADK also offers more programming language options than AgentCore, as well as better development tooling.

For my review, I only went deep on the Python ADK and its customer service example. If there are deficiencies in the other three language ADKs other than a paucity of examples, I wouldn’t know about them.

Cost

The Google ADK framework is free open source; Vertex AI Agent Engine pricing is primarily usage-based.

Platform

Development requires Python, TypeScript, Go, or Java environments. You can deploy to the Vertex AI Agent Engine, to Google Cloud Run, to Google Kubernetes Engine, or to any other container or Kubernetes environment.

Pros

  1. Capable and mostly complete framework for developing agents
  2. Supports Python, TypeScript, Go, and Java
  3. Optimized for Gemini models, but model-agnostic
  4. Many Python examples

Cons

  1. Few TypeScript, Go, or Java examples
  2. Extensive framework has a significant learning curve
Martin Heller

Martin Heller is a contributing writer at InfoWorld. Formerly a web and Windows programming consultant, he developed databases, software, and websites from his office in Andover, Massachusetts, from 1986 to 2010. From 2010 to August of 2012, Martin was vice president of technology and education at Alpha Software. From March 2013 to January 2014, he was chairman of Tubifi, maker of a cloud-based video editor, having previously served as CEO.

Martin is the author or co-author of nearly a dozen PC software packages and half a dozen Web applications. He is also the author of several books on Windows programming. As a consultant, Martin has worked with companies of all sizes to design, develop, improve, and/or debug Windows, web, and database applications, and has performed strategic business consulting for high-tech corporations ranging from tiny to Fortune 100 and from local to multinational.

Martin’s specialties include programming languages C++, Python, C#, JavaScript, and SQL, and databases PostgreSQL, MySQL, Microsoft SQL Server, Oracle Database, Google Cloud Spanner, CockroachDB, MongoDB, Cassandra, and Couchbase. He writes about software development, data management, analytics, AI, and machine learning, contributing technology analyses, explainers, how-to articles, and hands-on reviews of software development tools, data platforms, AI models, machine learning libraries, and much more.

More from this author