Orchestrator
orchestrator
¶
Parallel delegation — Coordinator fans out to DomainAgents concurrently.
Uses ADK ParallelAgent for the fan-out topology while keeping a
synchronous convenience wrapper for non-async callers.
Orchestrator
¶
Orchestrator(coordinator: CoordinatorAgent)
Orchestrates parallel fan-out from a CoordinatorAgent to multiple DomainAgents.
Provides build_parallel_agent() to construct an ADK ParallelAgent
for use within the ADK runtime, and fan_out() / fan_out_sync()
for direct programmatic parallel execution.
Source code in libs/ninja-agents/src/ninja_agents/orchestrator.py
build_parallel_agent
¶
Build an ADK ParallelAgent for fan-out execution.
Creates fresh LlmAgent instances (ADK enforces single-parent,
so the coordinator's own sub_agents cannot be reused here).
Source code in libs/ninja-agents/src/ninja_agents/orchestrator.py
fan_out
async
¶
fan_out(
request: str,
target_domains: list[str] | None = None,
trace: TraceContext | None = None,
) -> dict[str, Any]
Fan out request to multiple domains concurrently, collect results.
| PARAMETER | DESCRIPTION |
|---|---|
request
|
The user request to process.
TYPE:
|
target_domains
|
Domains to route to. Defaults to all domains.
TYPE:
|
trace
|
Optional trace context for observability.
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
dict[str, Any]
|
Dict mapping domain name to its result. |
Source code in libs/ninja-agents/src/ninja_agents/orchestrator.py
fan_out_sync
¶
fan_out_sync(
request: str,
target_domains: list[str] | None = None,
trace: TraceContext | None = None,
) -> dict[str, Any]
Synchronous wrapper around fan_out for non-async contexts.