Skip to content
  1. OPERATORS
  2. CONTROLLERS

Agent Swarm

v1.0.1new

Agent Swarm coordinates a lead Agent and a roster of worker Agents. The lead gets tool calls for delegating work and completing the swarm, while workers return results through normal Agent lifecycle paths.

For release, keep the package aligned with the live validated surface and use shipping agent operators as workers.

Swarmstatus (Swarmstatus) op('agent_swarm').par.Swarmstatus Str
Default:
"" (Empty String)
Active (Active) op('agent_swarm').par.Active Toggle
Default:
False
Status (Status) op('agent_swarm').par.Status Str

idle | running | waiting | complete | error

Default:
"" (Empty String)
Session ID (Sessionid) op('agent_swarm').par.Sessionid Str
Default:
"" (Empty String)
Current Round (Currentround) op('agent_swarm').par.Currentround Int
Default:
0
Range:
0 to 50
Slider Range:
0 to 50
Lead Agent Header
Lead Agent (Leadagent) op('agent_swarm').par.Leadagent OP

Agent operator that decides when to delegate and when to finish. Must have AgentEXT.

Default:
"" (Empty String)
Extra System Prompt DAT (Leadsystemextra) op('agent_swarm').par.Leadsystemextra DAT

Optional DAT whose text is appended to the lead's system prompt during the swarm. Restored on Stop.

Default:
"" (Empty String)
Protocol Preset (Protocolpreset) op('agent_swarm').par.Protocolpreset Menu

Lead coordination protocol. Advanced users can extend agent_swarm_protocols.py for project-specific behavior.

Default:
background_parallel
Options:
background_parallel, foreground_deferred, audit_recovery, strict_pipeline
Protocol DAT (Protocoldat) op('agent_swarm').par.Protocoldat DAT

Optional DAT appended after the selected protocol. Use for project-specific user-authored protocol text.

Default:
"" (Empty String)
Task Header
Task Source (Tasksource) op('agent_swarm').par.Tasksource Menu
Default:
string
Options:
string, dat
Task (Task) op('agent_swarm').par.Task Str

Initial task description sent to the lead.

Default:
"" (Empty String)
Task DAT (Taskdat) op('agent_swarm').par.Taskdat DAT
Default:
"" (Empty String)
Controls Header
Run Swarm (Run) op('agent_swarm').par.Run Pulse
Default:
False
Stop (Stop) op('agent_swarm').par.Stop Pulse
Default:
False
Reset Session (Reset) op('agent_swarm').par.Reset Pulse
Default:
False
Workers Header
Workercount (Workercount) op('agent_swarm').par.Workercount Str
Default:
"" (Empty String)
Refresh Capability Cache (Refreshcapabilities) op('agent_swarm').par.Refreshcapabilities Pulse
Default:
False
Capability Source (Capabilitysource) op('agent_swarm').par.Capabilitysource Menu

How to describe each worker to the lead. Auto prefers worker.GetTool() metadata when Enablegettool is set.

Default:
auto
Options:
auto, gettool, name_only
Auto-Inject Tools (Autoinject) op('agent_swarm').par.Autoinject Toggle

On Run, append this swarm to the lead's Tool sequence. On Stop, remove it.

Default:
True
Worker Aggregation (Aggregation) op('agent_swarm').par.Aggregation Menu

When the lead delegates to multiple workers in one turn, decide whether to re-call the lead after each worker or after all complete.

Default:
parallel_batch
Options:
serial, parallel_batch
Workers (Worker) op('agent_swarm').par.Worker Sequence
Default:
0
Worker Agent (Worker0op) op('agent_swarm').par.Worker0op OP
Default:
"" (Empty String)
Enabled (Worker0enable) op('agent_swarm').par.Worker0enable Toggle
Default:
True
Prompt Prefix (Worker0prefix) op('agent_swarm').par.Worker0prefix Str
Default:
"" (Empty String)
Worker Agent (Worker1op) op('agent_swarm').par.Worker1op OP
Default:
"" (Empty String)
Enabled (Worker1enable) op('agent_swarm').par.Worker1enable Toggle
Default:
True
Prompt Prefix (Worker1prefix) op('agent_swarm').par.Worker1prefix Str
Default:
"" (Empty String)
Rounds Header
Max Rounds (Maxrounds) op('agent_swarm').par.Maxrounds Int

Maximum number of lead-agent turns. A "round" is one lead Call.

Default:
10
Range:
1 to 100
Slider Range:
1 to 100
Rounds Remaining (Roundsremaining) op('agent_swarm').par.Roundsremaining Int
Default:
0
Range:
0 to 1
Slider Range:
0 to 1
Cost / Tokens Header
Max Total Cost ($) (Maxcost) op('agent_swarm').par.Maxcost Float

Hard stop when sum of lead+worker session cost exceeds this. 0 = unlimited.

Default:
0.0
Range:
0 to 10
Slider Range:
0 to 10
Session Cost ($) (Sessioncost) op('agent_swarm').par.Sessioncost Float
Default:
0.0
Range:
0 to 1
Slider Range:
0 to 1
Session Tokens (Sessiontokens) op('agent_swarm').par.Sessiontokens Int
Default:
0
Range:
0 to 1000000
Slider Range:
0 to 1000000
On Budget Exhausted Header
On Exhaust (Onbudgetexhausted) op('agent_swarm').par.Onbudgetexhausted Menu

When budget is hit, stop or give the lead one tool-less call to summarize.

Default:
final_summary
Options:
stop_immediately, final_summary
Summary Prompt (Summaryprompt) op('agent_swarm').par.Summaryprompt Str
Default:
Budget reached. Summarize what the swarm accomplished and any open questions.
Expose Swarm as Tool Header
Expose This Swarm as a Tool (Enablegettool) op('agent_swarm').par.Enablegettool Toggle

When True, GetTool() returns a run_swarm tool definition so a higher-level agent can invoke this swarm.

Default:
False
Tool Name (Toolname) op('agent_swarm').par.Toolname Str
Default:
run_swarm
Tool Description (Tooldescription) op('agent_swarm').par.Tooldescription Str
Default:
Run this swarm as a callable multi-agent tool. The swarm coordinates the lead and worker agents, then returns the completed result through the Agent tool-result bridge.
Callbacks Header
Callback DAT (Callbackdat) op('agent_swarm').par.Callbackdat DAT
Default:
agent_swarm_callbacks
Create Callbacks DAT (Createcallbacks) op('agent_swarm').par.Createcallbacks Pulse
Default:
False
Record Debug Trace (Tracecallbacks) op('agent_swarm').par.Tracecallbacks Toggle

Append swarm callback and tool-chain events to callback_trace for debugging.

Default:
False
Clear Debug Trace on Run (Clearcallbacktraceonrun) op('agent_swarm').par.Clearcallbacktraceonrun Toggle

Clear callback_trace at the beginning of each swarm run.

Default:
True
Clear Debug Trace (Clearcallbacktrace) op('agent_swarm').par.Clearcallbacktrace Pulse
Default:
False
Event Toggles Header
On Swarm Start (Onswarmstart) op('agent_swarm').par.Onswarmstart Toggle
Default:
True
On Swarm Complete (Onswarmcomplete) op('agent_swarm').par.Onswarmcomplete Toggle
Default:
True
On Delegate (Ondelegate) op('agent_swarm').par.Ondelegate Toggle

Lead has called a delegate tool. callbackInfo includes worker_name, prompt.

Default:
True
On Worker Response (Onworkerresponse) op('agent_swarm').par.Onworkerresponse Toggle

A worker has finished. callbackInfo includes worker_name, response.

Default:
True
On Lead Response (Onleadresponse) op('agent_swarm').par.Onleadresponse Toggle

Lead has finished one round. callbackInfo includes response, tools_used.

Default:
True
On Budget Exhausted (Onbudget) op('agent_swarm').par.Onbudget Toggle
Default:
True
v1.0.12026-05-02
  • added process_id to lead, worker, and final_summary dispatch calls - expanded tags with role_lead, role_worker, and agent name identifiers
  • Silence panelkit debug prints in baked panel_exec DATs
v1.0.02026-05-02
  • enabled worker slots by default on fresh placement - renamed callback trace controls to debug trace with tracing off by default - fixed manifest BOM encoding
  • Initial agent_swarm structure
v0.1.02026-05-01
  • Initial production package for the Agent Swarm coordinator.
  • Provides a lead/worker multi-agent coordination surface built around the shipping Agent lifecycle.