Orchestrator¶
The Orchestrator
is a general-purpose component that routes users' requests i.e., queries to the appropriate agents. It ensures that tasks are assigned to the correct agents based on their capabilities and the nature of the request.
Beyond simple routing, the Orchestrator
supports optional Responsible AI (RAI) compliance checks, optional task decomposition, and customizable prompt and context injection, making it a flexible backbone for complex multi-agent workflows.
Workflow Overview¶
- RAI Check (Optional) – Every query first passes through a Responsible-AI compliance check; unsafe queries are rejected.
- Task Plan Generation – If enabled, the query is broken down into subtasks with relevant context; otherwise it is routed directly.
- Task Execution – The Orchestrator assigns tasks to the appropriate agents and executes them.
Usage¶
The Orchestrator
can be readily integrated into a project by adding the required configuration in the project's YAML file. Developers can define which agents it coordinates and customize its routing, decomposition, and prompt behaviors.
Quickstart¶
To quickly set up a minimal Orchestrator
configuration, you can define it as follows:
orchestrator:
agent_list: # Required. List of agents orchestrator can route tasks to
- agent_name: "Planner Agent" # Must match a utility agent name below
- agent_name: "Search Agent" # Multiple agents can be listed
utility_agents:
- agent_class: PlanningAgent # Define Planner Agent
agent_name: "Planner Agent" # Name used by orchestrator
agent_description: "Turns constraints and facts into a concrete, time-ordered plan with rationale and trade-offs."
- agent_class: SearchAgent # Define Search Agent
agent_name: "Search Agent" # Name used by orchestrator
agent_description: "Search for reliable facts (hours, prices, locations, travel times)."
Template YAML Configuration for Orchestrator¶
Below is a complete template showing all available configuration options for the Orchestrator
. Detailed usage and examples of Orchestrator
customization are provided in the tutorial section.
orchestrator:
agent_list:
# Required. All names listed here must be the names of the utility agents you listed in the `utility_agents` section.
- agent_name: "<Name that you chose for Agent 1>" # Required
- agent_name: "<Name that you chose for Agent 2>" # Required
enable_routing: <true or false> # Optional routing toggle (default true). When false, all queries go to the first agent in agent_list.
decompose: <true or false> # Optional task decomposition toggle (default true). When false, tasks are not decomposed.
rai_config: null # Optional RAI-engine override
system_prompt_suffix: null # Optional extra instructions to guide orchestrator behavior
contexts: # Optional contexts available to the orchestrator
- "date" # Inserts today's date
- "env_variable" # Includes key–value pairs for agent context, which can be static or updated at runtime.
- "chat_history" # Includes recent conversation turns
- "relevant_chat_history" # Includes the most relevant chat history