Files
wehub-resource-sync ec2b666284
Continuous Integration / Pre-commit Linter (push) Waiting to run
Continuous Integration / Mypy Check (Python 3.10) (push) Waiting to run
Continuous Integration / Mypy Check (Python 3.11) (push) Waiting to run
Continuous Integration / Mypy Check (Python 3.12) (push) Waiting to run
Continuous Integration / Mypy Check (Python 3.13) (push) Waiting to run
Continuous Integration / Unit Tests (Python 3.10) (push) Waiting to run
Continuous Integration / Unit Tests (Python 3.11) (push) Waiting to run
Continuous Integration / Unit Tests (Python 3.12) (push) Waiting to run
Continuous Integration / Unit Tests (Python 3.13) (push) Waiting to run
Continuous Integration / Unit Tests (Python 3.14) (push) Waiting to run
Continuous Integration / A2A v0.3 Tests (Python 3.10) (push) Waiting to run
Continuous Integration / A2A v0.3 Tests (Python 3.11) (push) Waiting to run
Continuous Integration / A2A v0.3 Tests (Python 3.12) (push) Waiting to run
Continuous Integration / A2A v0.3 Tests (Python 3.13) (push) Waiting to run
Continuous Integration / A2A v0.3 Tests (Python 3.14) (push) Waiting to run
Copybara PR Handler / close-imported-pr (push) Waiting to run
chore: import upstream snapshot with attribution
2026-07-13 13:25:13 +08:00

1.2 KiB

ADK Workflow Routing Sample

Overview

This sample demonstrates how to use routing in ADK Workflows.

It takes user input and uses an LLM node to categorize it as a question, a statement, or other. Based on the classification, it appropriately routes the execution to a specialized agent or function to handle that specific type of input.

In ADK Workflows, routing allows conditionally executing different execution paths based on the output of a previous node.

Sample Inputs

  • What is the capital of France?

  • The weather is very nice today.

  • Translate bonjour to english

Graph

graph TD
    START --> process_input
    process_input --> classify_input
    classify_input --> route_on_category
    route_on_category -->|question| answer_question
    route_on_category -->|statement| comment_on_statement
    route_on_category -->|other| handle_other

How To

  1. A node (agent or function) yields an Event with a specific route name:

    yield Event(route="your_route_name")
    
  2. In the Workflow edges definition, conditional edges are constructed using a routing map dict as the second element of the edge tuple:

    (source_node, {"your_route_name": target_node})