Google Agent Development Kit (ADK)
Google ADK is an open-source toolkit from Google for writing AI agents in code, giving them tools, a record of each chat and helper agents.
Google ADK, short for Agent Development Kit, is an open-source toolkit for building AI agents. Open source means anyone can read and reuse its code. An agent is a program that uses a language model to decide what to do next, such as calling a tool or answering. Google first showed ADK during its Cloud NEXT 2025 event. ADK’s Python version is code-first. You set up agents, their tools and how they work together by writing ordinary Python code. ADK also exists for Java, Kotlin, Go and TypeScript. It is tuned for Google’s Gemini models, but it can work with other models and run in many places.
Every ADK agent has three basic parts. There is a model, which is the thinking engine. There are instructions, which describe its job in plain words. And there is an optional list of tools, which are actions it may take. A function is a small named piece of code that does one job. If you write one and add it to the tools list, ADK wraps it as a function tool. ADK reads the function’s name, description and inputs to build a schema. A schema is a short, structured description the model can understand. If the model forgets a required input, ADK sends back an error so the model can try again. Agents can also use ready-made tools, such as search. They can use tools shared over the Model Context Protocol (MCP), a common way to plug tools into AI apps, too.
Picture a weather helper. You write a function called get_weather that takes a city. A user types, “What is the weather in Paris?” A part of ADK called the Runner passes it to the agent. The model reads its instructions and decides the tool would help. ADK calls get_weather with the city Paris and hands the result back to the model. The model writes a reply. Each result or reply is saved as an event, a small record of one thing that happened.
The session is how an agent remembers a chat. It is one ongoing conversation, and it holds the full list of events. It also has state. State is a scratchpad for facts that matter only now, such as what is in a shopping cart. Memory is different. It is a searchable store the agent can use to recall things from outside the current chat. The simplest storage keeps everything in the computer’s working memory. That is fine for testing, but it loses it all when the app restarts. For real apps, ADK offers cloud and database options.
Sometimes one agent is not enough. A task can hold more data than the model’s context window, the amount of text it can read at once. A long list of instructions can also become too much for one agent to follow well. ADK lets you split the job, but it never forces you to. Template workflows run agents one after another, in a loop, or side by side. In a collaborative workflow, one agent acts as coordinator and passes work to specialised sub-agents. Graph-based workflows mix AI agents with plain code steps. They can also branch, taking different paths depending on what happens.
An agent can call another agent like a tool and stay in charge, or hand the job over completely.
ADK also comes with a command-line tool (one you type commands into) and a visual web page for testing and debugging on your own computer. Its evaluation feature checks the final answer and the steps the agent took against test cases you saved. When you are ready, you can package the agent and run it on a service such as Cloud Run.
Building an agent from scratch means writing a lot of plumbing before it does anything useful.
Follow one weather question through an ADK agent.
- 1 · receiveThe Runner hands the user's message to the main agent so it can begin.
- 2 · decideThe agent's model reads its instructions and chooses whether one of its tools would help.
- 3 · callADK turns the chosen Python function into a tool call with the arguments the model supplied.
- 4 · reportThe agent reports each result or reply as an event, and the Runner saves any changes before the agent continues.
In ADK a plain Python function becomes a tool once you put it in the agent's tools list.
| Who | What they ask | What it works with |
|---|---|---|
| Support team | “Can one agent answer order questions and hand refunds to a specialist agent?” | A coordinator agent and its sub-agents |
| Backend developer | “How do I let the agent look up stock levels in our database?” | A custom function tool |
| Product team | “Does the agent still get the right answers after we change the prompt?” | Built-in evaluation against saved test cases |
| Student project | “Can the agent remember what is in the shopping cart during this chat?” | Session state |
- It gives you ready-made parts for agents, tools, sessions and multi-agent workflows in code.
- It turns a normal function into a tool the model can call, with a schema built from the code.
- It keeps each conversation's history and temporary data in a session.
- It lets you split work across several specialised agents.
- It does not make the model's reasoning correct; you still need to test the agent.
- Its in-memory session storage loses everything when the app restarts.
- It does not choose between a single agent and a team for you; that is your design call.
- A tool can only do what your own code lets it do.
Sources used
This explainer is written in original language. The links below support its factual claims.
- officialAgent Development Kit: Making it easy to build multi-agent applications, Google Developers Blog · read 28 Sept 2026
- repogoogle/adk-python, Google (GitHub) · read 28 Sept 2026
- docsAgents, Google Agent Development Kit documentation · read 28 Sept 2026
- docsFunction tools, Google Agent Development Kit documentation · read 28 Sept 2026
- docsConversational Context: Session, State, and Memory, Google Agent Development Kit documentation · read 28 Sept 2026
- docsWorkflows: multi-agent, multi-node applications, Google Agent Development Kit documentation · read 28 Sept 2026
- docsRuntime Event Loop, Google Agent Development Kit documentation · read 28 Sept 2026