Skip to content

Agent Orchestrator

v1.1.2Updated

The Agent Orchestrator coordinates multiple specialized Agent LOPs to complete complex tasks. A central “validation agent” analyzes the task, decides which “action agent” to call, reviews results, and repeats until the objective is met or the round budget is exhausted.

This is an agent-as-tool architecture: each action agent’s capabilities (system prompt, available tools, specialization) are automatically analyzed and presented to the validation agent as orchestration tools, so it can delegate subtasks intelligently.

🔧 GetTool Enabled 3 tools

This operator exposes 3 tools that allow Agent and Gemini Live LOPs to assign subtasks to action agents, mark orchestration complete, and acknowledge waiting states.

The orchestrator exposes three tools that the validation agent uses to control the workflow:

  • assign_task_to_agent — delegate a subtask to a named action agent with reasoning and expected outcome
  • complete_orchestration — signal that the overall task is finished (success, partial success, or failure)
  • acknowledge_waiting — indicate the validation agent is waiting for a pending action agent to finish

These tools are automatically injected into the validation agent’s tool sequence when orchestration starts.

  1. You provide a task (via the Task DAT parameter) and pulse Start Orchestration
  2. The orchestrator scans all action agents in the Agents sequence and builds a capability profile for each (system prompt, tools, specialization keywords)
  3. The validation agent receives the task description, available agents, and their capabilities
  4. The validation agent calls assign_task_to_agent to delegate a subtask to the best-fit action agent
  5. The action agent executes the subtask and returns results
  6. Results are fed back to the validation agent, which decides what to do next — assign another task, wait for pending work, or complete
  7. This loop continues until the validation agent calls complete_orchestration or Max Rounds is reached
  1. Create an agent operator to serve as your validation agent. This agent needs a good system prompt explaining it is an orchestrator that delegates work. It does not need its own tools — the orchestrator injects the orchestration tools automatically.
  2. Create one or more agent operators as action agents. Each should have a focused system prompt and relevant tools connected (search, code execution, etc.).
  3. On the Orchestrator page, set the Validation Agent parameter to your validation agent.
  4. In the Agents sequence, add each action agent by clicking the + button. Set the OP parameter to the agent operator and ensure Active is toggled on.
  5. Set the Task DAT parameter to a textDAT or tableDAT containing your task description.
  6. Set Max Rounds to a reasonable budget (default is 10).
  7. Pulse Start Orchestration.
  • Give each action agent a distinct specialization (research, code, creative writing, data analysis)
  • The orchestrator automatically detects specialization keywords from each agent’s system prompt
  • Connect relevant tool LOPs to each action agent so the validation agent can route tasks appropriately
  • The validation agent sees each action agent’s full system prompt and tool list, so clear descriptions help it make good routing decisions

The orchestrator has three DAT outputs but no inputs. All task context is provided through the Task DAT parameter.

  • out1, out2, out3 — DAT outputs that can be connected to downstream operators for monitoring session state

Internally, each session creates a storage base containing tables for tasks, decisions, capabilities, validation turns, pending tasks, and conversation history. When Generate Summary is enabled, a markdown summary is written at session end.

When Enable Session Storage is on (default), the orchestrator creates a named base COMP inside itself for each session. This base contains:

  • tasks — round-by-round record of every action agent assignment, result, status, token count, and full output
  • decisions — every validation agent decision with reasoning and outcome
  • validation_conversation — the full conversation history between the orchestrator and the validation agent
  • log — timestamped event log for the entire session

When Rename Session is enabled, the validation agent generates a concise name for the session base after completion, making it easy to find historical sessions.

When the validation agent calls acknowledge_waiting (because an action agent is still working), the orchestrator enters a configurable waiting loop controlled by the Waiting page:

  • Wait Strategy — Fixed Interval (constant polling), Exponential Backoff (doubles interval up to 60s), or Immediate Resume
  • Wait Check Interval — base polling interval in seconds
  • Wait Timeout — maximum wait time before forcing continuation

The waiting system runs asynchronously and automatically resumes the next orchestration round once pending tasks complete or the timeout is reached.

The orchestrator includes a Script CHOP that exposes real-time channel data for TouchDesigner-native monitoring:

  • Pulse eventson_session_start, on_session_complete, on_task_assigned, on_task_completed, on_task_failed, on_validation_decision
  • Status channelsorchestration_active, has_failed_tasks, has_pending_tasks, status_idle, status_orchestrating, status_complete, status_error
  • Metricstotal_tasks_assigned, completed_tasks, failed_tasks, total_tokens_used, success_rate, progress

These channels update at 60fps and can be wired into CHOPs for UI feedback, data visualization, or triggering other TouchDesigner logic.

  • “No validation agent specified” — Set the Validation Agent parameter to an Agent LOP on the Orchestrator page.
  • “No action agents configured” — Add at least one agent to the Agents sequence and ensure its Active toggle is on.
  • “Validation agent does not have AgentEXT extension” — The operator referenced in Validation Agent must be a LOPs Agent operator, not a generic COMP.
  • Validation agent not using tools — If the validation agent responds with text instead of tool calls, the orchestrator logs a validation error and moves to the next round. Ensure the validation agent’s Tool Turn Budget is at least 1 and Tool Followup is enabled.
  • Stuck in waiting state — Reduce Wait Timeout or switch Wait Strategy to Immediate Resume. Check that the action agent is actually processing its task.
Session ID (Sessionid) op('agent_orchestrator').par.Sessionid Str

Current orchestration session ID

Default:
"" (Empty String)
Status (Status) op('agent_orchestrator').par.Status Str

Current orchestration status

Default:
idle
Current Round (Currentround) op('agent_orchestrator').par.Currentround Int

Current orchestration round

Default:
0
Range:
0 to 1
Slider Range:
0 to 1
Start Orchestration (Start) op('agent_orchestrator').par.Start Pulse

Begin orchestrating the task

Default:
False
Stop Orchestration (Stop) op('agent_orchestrator').par.Stop Pulse

Stop the current orchestration session

Default:
False
Reset Session (Reset) op('agent_orchestrator').par.Reset Pulse

Reset and clear the current session

Default:
False
Max Rounds (Maxrounds) op('agent_orchestrator').par.Maxrounds Int

Maximum number of orchestration rounds before stopping

Default:
10
Range:
0 to 1
Slider Range:
1 to 20
Task DAT (Taskdat) op('agent_orchestrator').par.Taskdat DAT

DAT containing the initial task description

Default:
"" (Empty String)
Validation Agent (Validationagent) op('agent_orchestrator').par.Validationagent OP

Agent that makes decisions about which action agent to use

Default:
"" (Empty String)
Agents (Agent) op('agent_orchestrator').par.Agent Sequence
Default:
0
OP (Agent0op) op('agent_orchestrator').par.Agent0op OP
Default:
"" (Empty String)
Active (Agent0active) op('agent_orchestrator').par.Agent0active Toggle
Default:
True
Enable Session Storage (Enablesessionstorage) op('agent_orchestrator').par.Enablesessionstorage Toggle

Store detailed session data in per-session tables

Default:
True
Auto Refresh Capabilities (Autorefreshcapabilities) op('agent_orchestrator').par.Autorefreshcapabilities Toggle

Automatically refresh agent capabilities before each round

Default:
True
Generate Summary (Generatesummary) op('agent_orchestrator').par.Generatesummary Toggle

Generate a comprehensive markdown summary at session end

Default:
True
Rename Session (Renamesession) op('agent_orchestrator').par.Renamesession Toggle

Ask validation agent to generate a concise name for the session

Default:
True
Enable Wait Management (Waitenabled) op('agent_orchestrator').par.Waitenabled Toggle

Enable automatic waiting state management and resumption

Default:
True
Wait Check Interval (seconds) (Waitcheckinterval) op('agent_orchestrator').par.Waitcheckinterval Int

How often to check if waiting condition is resolved

Default:
5
Range:
0 to 1
Slider Range:
0 to 1
Wait Timeout (seconds) (Waittimeout) op('agent_orchestrator').par.Waittimeout Int

Maximum time to wait before giving up and continuing

Default:
60
Range:
0 to 1
Slider Range:
0 to 1
Wait Strategy (Waitstrategy) op('agent_orchestrator').par.Waitstrategy Menu

Strategy for handling waiting states

Default:
exponential_backoff
Options:
fixed_interval, exponential_backoff, immediate_resume
v1.1.22026-03-01
  • Fix validation agent tag from 'orchestrator_call' to 'validation_agent' for trace clarity
  • Add proper tags to orchestrator API calls
  • Initial commit
v1.1.12025-10-29

Bug Fixes

  • CRITICAL: Removed 26+ data truncations that were blinding the validation agent
  • Fixed agent capabilities descriptions being truncated to 100 characters (now full prompt provided)
  • Fixed task descriptions and expected outcomes truncated to 100 characters
  • Fixed validation decision reasoning truncated to 150 characters
  • Fixed task results and agent outputs truncated to 150-500 characters
  • Fixed validation responses truncated to 200 characters in session storage
  • Fixed error messages with truncated task descriptions
  • Fixed agent tool lists limited to 5 tools (now shows all available tools)

Impact

  • Validation agent now has full context for decision making
  • Can properly learn from previous failures without missing critical information
  • Complete agent output history available for accurate orchestration decisions
  • Improved session summaries with full detail instead of truncated previews
v1.1.02025-08-17

Added Advanced Swarm Session Logic, including renaming. Also extended the tool calling main agent to have a perfect history of the entire loop.

v1.0.02025-08-15

Initial creation of the op I'm replacing the orchestrator operator with this one because the agent session kind of replaced that orchestrator functionality and now the agent orchestrator is a operator with a main agent and as many action agents as you want and this is now currently working with updated multi turn agent stuff working nicely but not currently using the agent context of the agent as well as I could, I plan to make the next version of this one have a better loop with the actual main agent.- ...