Agent Orchestrator
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.
Agent Tool Integration
Section titled “Agent Tool Integration”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.
Use the Tool Debugger operator to inspect exact tool definitions, schemas, and parameters.
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.
How It Works
Section titled “How It Works”- You provide a task (via the Task DAT parameter) and pulse Start Orchestration
- The orchestrator scans all action agents in the Agents sequence and builds a capability profile for each (system prompt, tools, specialization keywords)
- The validation agent receives the task description, available agents, and their capabilities
- The validation agent calls
assign_task_to_agentto delegate a subtask to the best-fit action agent - The action agent executes the subtask and returns results
- Results are fed back to the validation agent, which decides what to do next — assign another task, wait for pending work, or complete
- This loop continues until the validation agent calls
complete_orchestrationor Max Rounds is reached
Minimum Configuration
Section titled “Minimum Configuration”- 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.
- Create one or more agent operators as action agents. Each should have a focused system prompt and relevant tools connected (search, code execution, etc.).
- On the Orchestrator page, set the Validation Agent parameter to your validation agent.
- 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. - Set the Task DAT parameter to a textDAT or tableDAT containing your task description.
- Set Max Rounds to a reasonable budget (default is 10).
- Pulse Start Orchestration.
Action Agent Design Tips
Section titled “Action Agent Design Tips”- 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
Outputs
Section titled “Outputs”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.
Session Storage
Section titled “Session Storage”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.
Waiting State Management
Section titled “Waiting State Management”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.
CHOP Monitoring
Section titled “CHOP Monitoring”The orchestrator includes a Script CHOP that exposes real-time channel data for TouchDesigner-native monitoring:
- Pulse events —
on_session_start,on_session_complete,on_task_assigned,on_task_completed,on_task_failed,on_validation_decision - Status channels —
orchestration_active,has_failed_tasks,has_pending_tasks,status_idle,status_orchestrating,status_complete,status_error - Metrics —
total_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.
Troubleshooting
Section titled “Troubleshooting”- “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.
Parameters
Section titled “Parameters”Orchestrator
Section titled “Orchestrator”op('agent_orchestrator').par.Sessionid Str Current orchestration session ID
- Default:
"" (Empty String)
op('agent_orchestrator').par.Status Str Current orchestration status
- Default:
idle
op('agent_orchestrator').par.Currentround Int Current orchestration round
- Default:
0- Range:
- 0 to 1
- Slider Range:
- 0 to 1
op('agent_orchestrator').par.Start Pulse Begin orchestrating the task
- Default:
False
op('agent_orchestrator').par.Stop Pulse Stop the current orchestration session
- Default:
False
op('agent_orchestrator').par.Reset Pulse Reset and clear the current session
- Default:
False
op('agent_orchestrator').par.Maxrounds Int Maximum number of orchestration rounds before stopping
- Default:
10- Range:
- 0 to 1
- Slider Range:
- 1 to 20
op('agent_orchestrator').par.Taskdat DAT DAT containing the initial task description
- Default:
"" (Empty String)
op('agent_orchestrator').par.Validationagent OP Agent that makes decisions about which action agent to use
- Default:
"" (Empty String)
op('agent_orchestrator').par.Agent Sequence - Default:
0
op('agent_orchestrator').par.Agent0op OP - Default:
"" (Empty String)
op('agent_orchestrator').par.Agent0active Toggle - Default:
True
op('agent_orchestrator').par.Enablesessionstorage Toggle Store detailed session data in per-session tables
- Default:
True
op('agent_orchestrator').par.Autorefreshcapabilities Toggle Automatically refresh agent capabilities before each round
- Default:
True
op('agent_orchestrator').par.Generatesummary Toggle Generate a comprehensive markdown summary at session end
- Default:
True
op('agent_orchestrator').par.Renamesession Toggle Ask validation agent to generate a concise name for the session
- Default:
True
Waiting
Section titled “Waiting”op('agent_orchestrator').par.Waitenabled Toggle Enable automatic waiting state management and resumption
- Default:
True
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
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
Changelog
Section titled “Changelog”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.- ...