# bhancockio/agent-development-kit-crash-course architecture

> Architecture diagram of the GitHub repository bhancockio/agent-development-kit-crash-course, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/bhancockio/agent-development-kit-crash-course
- Repository: https://github.com/bhancockio/agent-development-kit-crash-course

## Overview

This repository is a learning course of twelve independent Google ADK agent examples, not one integrated application. Each example demonstrates a different agent capability, from basic responses and tool use to stateful, multi-agent, and iterative workflows. The principal user-to-result pattern is a user request handled by an example’s root agent, which may invoke tools or delegate to subagents before producing a response. The graph preserves the README’s major capability branches; wiring is shown only where supported by sampled source or explicit documentation.

Main entry points: [`12-loop-agent/linkedin_post_agent/agent.py`](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/12-loop-agent/linkedin_post_agent/agent.py) (Post Pipeline), [`6-persistent-storage/main.py`](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/6-persistent-storage/main.py) (Persistent Runner), [`7-multi-agent/manager/agent.py`](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/7-multi-agent/manager/agent.py) (Manager Agent), [`8-stateful-multi-agent/customer_service_agent/agent.py`](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/8-stateful-multi-agent/customer_service_agent/agent.py) (Service Router)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_core["Agent Basics"]
  node_basic["Basic Agent<br/>[agent.py]"]
  node_tool["Tool Agent<br/>[agent.py]"]
  node_litellm["LiteLLM Agent<br/>[agent.py]"]
  node_structured["Structured Email<br/>[agent.py]"]
end

subgraph group_state["Sessions and State"]
  node_session_agent["Stateful Q&amp;A<br/>[agent.py]"]
  node_memory_agent["Reminder Agent<br/>[agent.py]"]
  node_persistent_runner["Persistent Runner<br/>[main.py]"]
  node_session_store[("Session Store")]
end

subgraph group_coordination["Agent Workflows"]
  node_manager["Manager Agent<br/>[agent.py]"]
  node_stock["Stock Analyst<br/>[agent.py]"]
  node_news["News Analyst<br/>[agent.py]"]
  node_customer_service["Service Router<br/>[agent.py]"]
  node_specialists["Service Specialists"]
  node_sequential["Lead Pipeline<br/>[agent.py]"]
  node_parallel["System Monitor<br/>[agent.py]"]
  node_linkedin["Post Pipeline<br/>[agent.py]"]
  node_generator["Post Generator<br/>[agent.py]"]
  node_reviewer["Post Reviewer<br/>[agent.py]"]
  node_refiner["Post Refiner<br/>[agent.py]"]
end

subgraph group_lifecycle["Callbacks"]
  node_callbacks["Callback Examples"]
end

node_user(("User"))

node_user -->|"asks"| node_basic
node_user -->|"asks"| node_tool
node_user -->|"asks"| node_litellm
node_user -->|"requests email"| node_structured
node_user -->|"chats"| node_persistent_runner
node_persistent_runner -->|"runs"| node_memory_agent
node_persistent_runner -->|"reads/writes sessions"| node_session_store
node_user -->|"asks"| node_manager
node_manager -->|"delegates"| node_stock
node_manager -->|"invokes tool"| node_news
node_user -->|"asks"| node_customer_service
node_customer_service -->|"routes"| node_specialists
node_user -->|"submits lead"| node_sequential
node_user -->|"requests status"| node_parallel
node_user -->|"requests post"| node_linkedin
node_linkedin -->|"runs first"| node_generator
node_linkedin -->|"loops through"| node_reviewer
node_linkedin -->|"loops through"| node_refiner
node_user -->|"triggers example"| node_callbacks

click node_basic "https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/1-basic-agent/greeting_agent/agent.py"
click node_tool "https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/2-tool-agent/tool_agent/agent.py"
click node_litellm "https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/3-litellm-agent/dad_joke_agent/agent.py"
click node_structured "https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/4-structured-outputs/email_agent/agent.py"
click node_session_agent "https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/5-sessions-and-state/question_answering_agent/agent.py"
click node_memory_agent "https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/6-persistent-storage/memory_agent/agent.py"
click node_persistent_runner "https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/6-persistent-storage/main.py"
click node_manager "https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/7-multi-agent/manager/agent.py"
click node_stock "https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/7-multi-agent/manager/sub_agents/stock_analyst/agent.py"
click node_news "https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/7-multi-agent/manager/sub_agents/news_analyst/agent.py"
click node_customer_service "https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/8-stateful-multi-agent/customer_service_agent/agent.py"
click node_specialists "https://github.com/bhancockio/agent-development-kit-crash-course/tree/main/8-stateful-multi-agent/customer_service_agent/sub_agents"
click node_sequential "https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/10-sequential-agent/lead_qualification_agent/agent.py"
click node_parallel "https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/11-parallel-agent/system_monitor_agent/agent.py"
click node_linkedin "https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/12-loop-agent/linkedin_post_agent/agent.py"
click node_generator "https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/12-loop-agent/linkedin_post_agent/subagents/post_generator/agent.py"
click node_reviewer "https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/12-loop-agent/linkedin_post_agent/subagents/post_reviewer/agent.py"
click node_refiner "https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/12-loop-agent/linkedin_post_agent/subagents/post_refiner/agent.py"
click node_callbacks "https://github.com/bhancockio/agent-development-kit-crash-course/tree/main/9-callbacks"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_basic,node_tool,node_litellm,node_structured,node_user toneBlue
class node_session_agent,node_memory_agent,node_persistent_runner,node_session_store toneAmber
class node_manager,node_stock,node_news,node_customer_service,node_specialists,node_sequential,node_parallel,node_linkedin,node_generator,node_reviewer,node_refiner toneMint
class node_callbacks toneRose
```

## Components

### Agent Basics

- [Basic Agent](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/1-basic-agent/greeting_agent/agent.py): `1-basic-agent/greeting_agent/agent.py`
- [Tool Agent](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/2-tool-agent/tool_agent/agent.py): `2-tool-agent/tool_agent/agent.py`
- [LiteLLM Agent](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/3-litellm-agent/dad_joke_agent/agent.py): `3-litellm-agent/dad_joke_agent/agent.py`
- [Structured Email](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/4-structured-outputs/email_agent/agent.py): `4-structured-outputs/email_agent/agent.py`

### Sessions and State

- [Stateful Q&A](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/5-sessions-and-state/question_answering_agent/agent.py): `5-sessions-and-state/question_answering_agent/agent.py`
- [Reminder Agent](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/6-persistent-storage/memory_agent/agent.py): `6-persistent-storage/memory_agent/agent.py`
- [Persistent Runner](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/6-persistent-storage/main.py): `6-persistent-storage/main.py`
- **Session Store**

### Agent Workflows

- [Manager Agent](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/7-multi-agent/manager/agent.py): `7-multi-agent/manager/agent.py`
- [Stock Analyst](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/7-multi-agent/manager/sub_agents/stock_analyst/agent.py): `7-multi-agent/manager/sub_agents/stock_analyst/agent.py`
- [News Analyst](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/7-multi-agent/manager/sub_agents/news_analyst/agent.py): `7-multi-agent/manager/sub_agents/news_analyst/agent.py`
- [Service Router](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/8-stateful-multi-agent/customer_service_agent/agent.py): `8-stateful-multi-agent/customer_service_agent/agent.py`
- [Service Specialists](https://github.com/bhancockio/agent-development-kit-crash-course/tree/main/8-stateful-multi-agent/customer_service_agent/sub_agents): `8-stateful-multi-agent/customer_service_agent/sub_agents`
- [Lead Pipeline](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/10-sequential-agent/lead_qualification_agent/agent.py): `10-sequential-agent/lead_qualification_agent/agent.py`
- [System Monitor](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/11-parallel-agent/system_monitor_agent/agent.py): `11-parallel-agent/system_monitor_agent/agent.py`
- [Post Pipeline](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/12-loop-agent/linkedin_post_agent/agent.py): `12-loop-agent/linkedin_post_agent/agent.py`
- [Post Generator](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/12-loop-agent/linkedin_post_agent/subagents/post_generator/agent.py): `12-loop-agent/linkedin_post_agent/subagents/post_generator/agent.py`
- [Post Reviewer](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/12-loop-agent/linkedin_post_agent/subagents/post_reviewer/agent.py): `12-loop-agent/linkedin_post_agent/subagents/post_reviewer/agent.py`
- [Post Refiner](https://github.com/bhancockio/agent-development-kit-crash-course/blob/main/12-loop-agent/linkedin_post_agent/subagents/post_refiner/agent.py): `12-loop-agent/linkedin_post_agent/subagents/post_refiner/agent.py`

### Callbacks

- [Callback Examples](https://github.com/bhancockio/agent-development-kit-crash-course/tree/main/9-callbacks): `9-callbacks`

### Other components

- **User**

## Connections

- User → Basic Agent: asks
- User → Tool Agent: asks
- User → LiteLLM Agent: asks
- User → Structured Email: requests email
- User → Persistent Runner: chats
- Persistent Runner → Reminder Agent: runs
- Persistent Runner → Session Store: reads/writes sessions
- User → Manager Agent: asks
- Manager Agent → Stock Analyst: delegates
- Manager Agent → News Analyst: invokes tool
- User → Service Router: asks
- Service Router → Service Specialists: routes
- User → Lead Pipeline: submits lead
- User → System Monitor: requests status
- User → Post Pipeline: requests post
- Post Pipeline → Post Generator: runs first
- Post Pipeline → Post Reviewer: loops through
- Post Pipeline → Post Refiner: loops through
- User → Callback Examples: triggers example
