Skip to content

About

A series of Google ADK example projects increasing in complexity and to be used as a learning resource

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Google ADK Example Series

A small series of Google Agent Development Kit examples that build up from a single prompt-driven agent to tool-using, multi-agent, and sequential-agent patterns.

The goal is to keep each example narrow enough to inspect quickly while still showing practical agent engineering concepts: instructions, tool calling, sub-agent routing, structured output, external APIs, and sequential orchestration.

Examples

01 First Agent

Path: 01-first-agent/

A minimal ADK agent with a single instruction set and no tools.

What it demonstrates:

  • Defining a root agent
  • Giving an agent a name, model, description, and instruction
  • Using a simple persona to make behaviour easy to observe

Main file:

01-first-agent/pirate_agent/agent.py

02 Simple Tool Agent

Path: 02-simple-tool-agent/

An agent that calls a Python tool to retrieve the current Bitcoin price from the CoinGecko API, then responds in a theatrical style.

What it demonstrates:

  • Registering a Python function as an agent tool
  • Calling an external HTTP API from a tool
  • Separating agent instructions from tool implementation
  • Adding basic tests around tool behaviour

Main files:

02-simple-tool-agent/bitcoin_bard/agent.py
02-simple-tool-agent/bitcoin_bard/tools.py
02-simple-tool-agent/tests/test_tools.py

03 Distinct Sub-Agents

Path: 03-distinct-sub-agents/

A routing agent that determines whether the user needs help with a cat or a dog, then delegates to the relevant specialist sub-agent.

What it demonstrates:

  • Building a root agent with sub-agents
  • Routing user intent to a more specific assistant
  • Giving each sub-agent its own tools and instruction set
  • Keeping domain-specific actions isolated in separate modules

Main files:

03-distinct-sub-agents/cat_or_dog_assistant/agent.py
03-distinct-sub-agents/cat_or_dog_assistant/sub_agents/

04 Sequential Agent

Path: 04-sequential-agent/

A sequential agent that first extracts a country code, then uses that context to check public holidays and weather before suggesting activities.

What it demonstrates:

  • Sequential agent orchestration
  • Passing context between stages
  • Structured output with Pydantic
  • Calling external services from tools
  • Combining multiple signals before producing a final response

Main files:

04-sequential-agent/activity_planner/agent.py
04-sequential-agent/activity_planner/sub_agents/country_code_exrtractor/
04-sequential-agent/activity_planner/sub_agents/activity_suggestor/

External services used:

  • Nager.Date for country codes and public holidays
  • Open-Meteo for geocoding and weather forecasts

Running An Example

Each example is self-contained. From the example directory, create a Python environment and install dependencies:

cd 02-simple-tool-agent
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Configure Google ADK authentication for your environment, then run the agent with your preferred ADK workflow.

For example, from an example directory:

adk web

or:

adk run bitcoin_bard

Adjust the package name to match the example you are running.

Tests

Some examples include pytest coverage for their tool functions.

Run tests from the relevant example directory:

pytest

Why This Project Exists

This repository is a practical learning path for agent engineering with Google ADK. It is intentionally example-led: each folder isolates one pattern so it is easier to compare agent behaviours, understand tool boundaries, and experiment with orchestration styles.

The examples are useful for exploring:

  • Prompt and instruction design
  • Tool contracts
  • Agent routing
  • Multi-agent structure
  • Sequential workflows
  • External API integration
  • Structured model output

Engineering Notes

  • Each example keeps the agent boundary small so changes in instructions, tools, and orchestration are easy to compare.
  • Tool functions are separated from agent definitions, which makes behaviour easier to test and avoids hiding application logic inside prompts.
  • The sequence moves from single-agent behaviour to routing and staged orchestration, mirroring the design pressure in larger agent systems.

About

A series of Google ADK example projects increasing in complexity and to be used as a learning resource

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages