Files
Anas Khan 13e311b0e4 chore: add codespell pre-commit hook to catch typos
Merge https://github.com/google/adk-python/pull/6406

Add a codespell hook to catch typos automatically.
Fix existing typos flagged by codespell.

PiperOrigin-RevId: 952416492
2026-07-22 17:13:05 -07:00
..

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})