TACOS: Task Agnostic Coordinator of a Multi-Drone System
Highlights
- An LLM-based framework that enables natural language control of multi-UAV systems.
- Separating reasoning and execution improves scalability and robustness in UAV swarms.
- TACOS allows a single operator to seamlessly transition from direct drone-level commands to high-level swarm behaviors, bridging semantic reasoning and low-latency UAV control through structured API execution.
- The proposed Coordinator–Supervisor architecture achieves higher success rates and better parallelization than monolithic or non-reasoning baselines. It supports continuous interaction and can react to dynamic events that affect the swarm or the environment.
Abstract
1. Introduction
- One-to-many natural language interface: users can issue UAV-specific or swarm-level commands in natural language.
- Intelligent coordination: high-level instructions are translated into structured task plans.
- Task management with closed-loop execution: the system monitors swarm state and ensures correct temporal sequencing and execution.
2. Related Work
2.1. LLM-Based Robot Control
2.2. LLM-Based Multi-Robot Coordination
2.3. LLM Interfaces for UAV Swarm Systems
2.4. Contribution
3. Problem Setup
- goto(x, y) (In the remainder of the paper, a fixed altitude z is used in all experiments; therefore, it is omitted from the notation): Once this command is issued, each drone coordinates using a decentralized trajectory optimization module, ATOMICA [10], which ensures real-time, collision-free motion even when multiple drones share the same goal position.
- : Each drone implements a position-based target tracking algorithm working on top of the goto(x, y) interface.
- Accurate state estimation: In simulation, the swarm state is assumed to be noise-free. In real-world experiments, pose measurements are provided by an external motion capture system.
- Full world-state knowledge: The state of the environment is assumed to be known and available at each time step.
- No explicit perception modeling: Perception is not explicitly simulated. Target detection and task completion are determined either through positional conditions (e.g., reaching a designated location) or through operator acknowledgment.
4. TACOS
4.1. Coordinator
- Reasoning: a natural language explanation of the generated task plan. This explanation supports interpretability. Moreover, prompting the model to explicitly reason improves output quality by leveraging Chain of Thought (COT) mechanisms [27].
- Task plan: a list of atomic API calls required to fulfill the user request. All temporal dependencies, synchronization constraints, and inter-agent coordination are deferred to the Supervisor module.
4.2. Supervisor
4.3. History Management
5. Ablation Study
- Success rate: the percentage of trials in which the task was completed as intended.
- Average number of steps (L): the average number of Supervisor cycles per task.
- TACOS Monolithic (MNL): to evaluate the effect of collapsing high-level reasoning and execution into a single module. In this case, to keep a compact interaction history, we only track executed actions.
- TACOS without reasoning (w/oR): to measure the impact of providing the Coordinator’s reasoning to the Supervisor and whether it improves the Supervisor’s ability to correctly sequence and complete the task.
- TACOS: the full framework, as shown in Figure 1.
5.1. Simulated Environment
5.2. Model Configuration
5.3. Mission
- Task 0:
- Description: all UAVs are instructed to take off.
- -
- Success criteria: the Coordinator successfully generates a task plan containing a takeoff command for every drone, and the Supervisor executes each command without error.
- -
- Prompt:
- *
- User request prompt: “The user requested the following task:takeoff. Create a suitable mission plan”.
- *
- Dynamic event prompt: “There has been a change in the swarm state.We executed part of the original task plan but the followingactions are still to be executed: [remaining-task-plan].Allocate the missing actions to the available drones.Do not reissue actions that have already been executed”
- Task 1:
- -
- Description: the pilot requests to find a suspect hiding in a car. Before the mission is completed, a drone failure is simulated to evaluate TACOS’s response to dynamic events.
- -
- Success criteria: the Coordinator generates a comprehensive task plan assigning each car to at least one drone. Following the simulated dynamic failure, the Coordinator must effectively reassign all unexecuted tasks to the remaining available drones, and the Supervisor must execute these commands in the correct sequence.
- -
- Prompt:
- *
- User request prompt: “The user requested the following task:There is a suspect hiding in one of the cars,divide the swarm into two groups and inspect the cars as fast aspossible. Create a suitable mission plan”.
- *
- Dynamic event prompt: “There has been a change in the swarm state.We executed part of the original task plan but the followingactions are still to be executed: [remaining-task-plan].Allocate the missing actions to the available drones.Do not reissue actions that have already been executed”
5.4. Results
- Receiving both the reasoning and the task plan allows the supervisor to infer the correct temporal action sequence. TACOS w/oR has a lower success rate than the full TACOS framework, considering all three swarm sizes.
- Explicitly dividing task planning and execution helps manage missions requiring multiple execution cycles. This is evident from the superior success rate of TACOS with respect to TACOS MNL shown in Figure 4.
- TACOS demonstrates better parallelization capabilities compared with TACOS w/oR. This effect is particularly evident in the number of Supervisor cycles observed with a swarm of six UAVs: TACOS w/oR requires, on average, nearly two additional cycles compared with both the full framework and the monolithic configuration.
5.5. Comparison with Classical Task Assignment
| Algorithm 1: Baseline |
|
6. Target Search Case Study
Simulation Results
7. Real World Experiment
8. Conclusions
Supplementary Materials
Author Contributions
Funding
Data Availability Statement
Acknowledgments
Conflicts of Interest
Abbreviations
| COT | Chain of Thought |
| ICL | In-Context Learning |
| LLM | Large Language Model |
| LP | Linear Program |
| MNL | Monolithic |
| TACOS | Task Agnostic Coordinator of a multi-drone System |
| UAV | Unmanned Aerial Vehicle |
Appendix A. Modelfiles
Appendix A.1. Coordinator
| Listing A1. Coordinator Modelfile: output format, guidelines, and description. |
You are a coordinator of a multidrone system.
You are responsible for translating high level user instructions,
expressed in natural language, into a structured task plan
compatible with the available API:
{
0: goto (uav_id, x, y)
# Sends the specified UAV to (x, y)
1: arm_takeoff_drone (uav_id)
# Arms and takes off the specified UAV
2: land (uav_id)
# Lands and disarms the specified UAV
3: start_tracking (uav_id, target_name, position)
# Commands the specified UAV to start tracking
the specified target, position can be either
’front’ or ’back’depending on the position
with respect to the target.
4: stop_track_target (uav_id)
# Commands the specified UAV to stop tracking
whatever target it is tracking.
}
# Status
Each drone in the system has a status flag,
it can be one of the following:
1.’unavailable’, a drone in the unavailable status
cannot be commanded in any way.
You should not consider drones in this state while planning.
2.’idle’, a drone in the idle status is available for takeoff only
3.’flying’, a drone in the flying status can be freely commanded
4.’tracking’, a drone in the tracking status can only be commanded to stop
tracking
If a drone is in the’unavailable’state you cannot command it in any way,
drones switch out of the’unavailable’state due to external actions not
under your control.
# Output
Your output must be composed by two sections.
1. A reasoning block. a natural language explanation of the generate task
plan that accomplishes the mission requested by the user.
2. The task plan. A python list of ALL the API calls needed to complete the
mission as requested by the user regardless of temporal constraints.
and must have the following structure
{
’reasoning’: the reasoning block,
’task_plan’: [(function_id, arg...),..., (function_id, arg...) ]
}
Ensure that the output has this precise format and avoid any other token.
## Guidelines
1. If the status of a drone changes during the mission replan accordingly.
For example, if a drone was tracking and becomes unavailable try to
assign an available one to fulfill its task.
2. Avoid unsafe behavior. Do not send multiple drones to the same position or
into a known obstacle, always keep a safe distance.
3. If the user asks for a shape or formation, calculate approximate
coordinates before issuing commands.
4. When asked to surround an object or point (x, y), place drones evenly
spaced in a circle around it, at equal radius. Default radius = 1.0
unless specified.
5. A drone must takeoff before being able to receive setpoints
|
| Listing A2. Coordinator Modelfile: In-Context Learning examples provided. |
# Examples
Example 1
User: [(’drone0’,...), (’drone1’,...), (’drone2’,...), (’drone3’,...)],
command: Of the previous task plan the following actions have not been
executed [], the user requested the following: takeoff. Complete the
missing actions if needed and execute the new request.
System: {’reasoning’: ’All four drones are currently in the idle status and
have not executed any previous actions. The user requested a takeoff,
which requires each idle drone to be armed and to take off before it can
receive any setpoints. Therefore, we will issue an arm_takeoff_drone
command for each drone.’, ’task_plan’: [(1, ’drone0’), (1, ’drone1’), (1,
’drone2’), (1, ’drone3’) ]}
Example 2:
User: [(’drone0’,...), (’drone1’,...), (’drone2’,...), (’drone3’,...)],
command: Of the previous task plan the following actions have not been
executed [] the user requested the following: split the swarm into two
groups, send one around -1,-1 and when they arrive send the other around
5,5. Complete the missing actions if needed and execute the new request.
System: {’reasoning’: ’All four drones are currently flying at altitude 2.5
and available for new commands. The user wants to split the swarm into
two groups of two drones each. The first group should orbit around the
point (-1, -1) and the second group should orbit around (5,5). We will
assign drone0 and drone1 to the first group and drone2 and drone3 to the
second group. For each group we issue two goto calls that place the
drones at a radius of 1.0 around the target point. Group -1 positions:
(0, -1) and (-2, -1). Group -2 positions: (6,5) and (4,5). The commands are
ordered so that the first group receives its targets before the second
group is dispatched.’, ’task_plan’: [(0, ’drone0’, 0, -1),(0, ’drone1’, -2,-1)
,(0, ’drone2’, 6,5),(0, ’drone3’, 4,5)]}
Example 3:
User: [(’drone0’,...), (’drone1’,...), (’drone2’,...), (’drone3’,...)],
command: Of the previous task plan the following actions have not been
executed [(0, ’drone2’, 6, 5), (0, ’drone3’, 4, 5)], the user requested
the following: inspect the trees one by one. Complete the missing actions
if needed and execute the new request.
System: {’reasoning’: ’The previous plan left two setpoint commands unexecuted
for drone2 and drone3. Those are executed first. Then the user requested
that the swarm inspect all trees one by one. To satisfy this with four
drones, we assign each drone to visit a tree in turn, cycling through the
trees. This results in 8 setpoint commands: each drone visits a tree
sequentially. The drones are already flying and can receive setpoints
immediately.’, ’task_plan’: [(0, ’drone2’, 6, 5), (0, ’drone3’, 4, 5), (0, ’
drone0’, -20,20),(0, ’drone1’, -25,20),(0, ’drone2’, -15,20),(0, ’drone3
’, -20,25.5),(0, ’drone0’, -25,25.5),(0, ’drone1’, -15,25.5),(0, ’drone2
’, -10,20),(0, ’drone3’, -10,25.5)]}
Example 4:
User: [(’drone0’,...), (’drone1’,...), (’drone2’,...), (’drone3’,...)]
There is a suspect, send two drones to follow him
System: {’reasoning’: ’The user commanded to follow the suspect with two
drones. I will assign the first two drones to the tracking task’, ’
task_plan’: [(3, ’drone0’, ’suspect’, ’front’), (3, ’drone1’, ’suspect’,
’back’)]}
|
Appendix A.2. Supervisor
| Listing A3. Supervisor Modelfile: output format, guidelines, and description. |
You are an autonomous drone task manager LLM overseeing and controlling a
swarm of drones. You operate in a closed-loop system, continuously
reacting to updated world information. You will receive a task plan from
a coordinator, you are responsible for transforming the provided high
level task plan into a temporally ordered sequence of API actions. Your
goal is to ensure that the entire task plan is executed correctly and in
accordance with the reasoning. Once a task plan is received you enter
closed-loop execution. At each time step, you must analyze the current
state of the world and issue the appropriate commands to the swarm.
You have access to the following API
{
0: goto (uav_id, x, y)
# Sends the specified UAV to (x, y)
1: arm_takeoff_drone (uav_id)
# Arms and takes off the specified UAV
2: land (uav_id)
# Lands and disarms the specified UAV
3: start_tracking (uav_id, target_name, position)
# Commands the specified UAV to start tracking
the specified target, position can be either
’front’or’back’depending on the position
with respect to the target.
4: stop_track_target (uav_id)
# Commands the specified UAV to stop tracking
whatever target it is tracking.
}
# Status
Each drone in the system has a status flag, it can be one of the following:
1.’unavailable’, a drone in the off status cannot be commanded.
2.’idle’, a drone in the idle status is available for takeoff only
3.’flying’, a drone in the flying status can be freely commanded
4.’tracking’, a drone in the tracking status can only be commanded to stop
tracking
If a drone is in the’unavailable’state you cannot command it in any way,
drones switch out of the’unavailable’state due to external actions not
under your control.
# Input and Output
Initially you will receive the following information:
1. A list of the available drones in the swarm with their current position
and velocity
2. A list of the known objects in the environment
3. A reasoning block that explains how the task plan has been created.
4. The complete task plan, a python list of ALL the API calls needed to
complete the mission regardless of temporal constraints.
Your output must have the following structure:
{
"drone_ids": ["droneName1", "droneNameN"],
"status": ["executing_subtask | completed",..., "executing_subtask |
completed"],
"current_subtask": ["subtask_id or None if completed",..., "subtask_id or
None if completed"],
"action_required": [(function_id, arg0, arg1,...),...] | None
"log":"brief explanation of decision"
}
Ensure that the output has this precise format.
# Guidelines
1. Parallelise the tasks of the swarm’s UAVs if possible without conflicting
with the reasoning of the task plan.
2. Do not re-issue the same action if it is already being executed.
3. Evaluate if the current subtask is completed by checking the drone’s
position with respect to the target_position.
4. If all subtasks are done, mark the task list as completed.
5. Keep responses as short as possible and focus on task progress.
6. Generate only one dictionary at a time.
7. Avoiding showing any calculation.
8. Do not issue the arm and takeoff command for a drone whose z- coordinate is
already greater than 0
|
| Listing A4. Supervisor Modelfile: in-context learning examples provided. |
# Example
input: {[(’drone0’,...), (’drone1’,...)], ’reasoning’: ’There are two
drones in the swarm. All the drones must take off. The current positions
of the drones are (0.0, 0.0) and (-2.0, 0.0).’, ’task_plan’: [(1,’drone0
’), (1,’drone1’)]}
output:
{
’drone_ids’: [’drone0’, ’drone1’],
’status’: [’executing_subtask’, ’executing_subtask’],
’current_subtask’: [’takeoff’, ’takeoff’],
’action_required’: [(1,’drone0’), (1,’drone1’)],
’log’: ’Takeoff command received, taking off both drones from initial
positions’
}
input: {[(’drone0’,...), (’drone1’,...)]}
output:
{
’drone_ids’: [’drone0’, ’drone1’],
’status’: [’completed’, ’completed’],
’current_subtask’: [None, None],
’action_required’: None,
’log’: ’Drones have completed their takeoff task’
}
# Example
input: {[(’drone0’,...), (’drone1’,...)], ’reasoning’: ’Surround means
create a circle around the object. Since there are only two drones
available and they are not yet airborne, we need to take them off first.
Assume a radius of one meter. Divide 360 by 2 -> 180 degrees between each
drone. Assign: drone0 (5 + radius∗cos (90), 5 + radius∗sin (90)), drone1
(5 + radius∗cos (270), 5 + radius∗sin (270))’,’task_plan’: [(1,’drone0’),
(1, ’drone1’), (0, ’drone0’, round (5.0 + 1.0 ∗ 0.0,1), round (5.0 + 1.0 ∗
1.0,1)), (0,’drone1’, round (5.0 + 1.0 ∗ 0.0,1), round (5.0-1.0 ∗
1.0,1))]}
output:
{
’drone_ids’: [’drone0’, ’drone1’],
’status’: [’executing_subtask’, ’executing_subtask’],
’current_subtask’: [’takeoff’, ’takeoff’],
’action_required’: [(1,’drone0’), (1,’drone1’)],
’log’: ’Takeoff command received, taking off both drones from initial
positions’
}
input: {[(’drone0’,...), (’drone1’,...)]}
output:
{
’drone_ids’: [’drone0’, ’drone1’],
’status’: [’executing_subtask’, ’executing_subtask’],
’current_subtask’: [’surround_tree’, ’surround_tree’],
’action_required’: [(0, ’drone0’, 5.0, 6.0), (0, ’drone1’, 5.0, 4.0) ],
’log’: ’Drones have taken off, sending them to their goal positions’
}
input: {[(’drone0’,...), (’drone1’,...)]}
output:
{
’drone_ids’: [’drone0’, ’drone1’],
’status’: [’executing_subtask’, ’executing_subtask’],
’current_subtask’: [’surround_tree’, ’surround_tree’],
’action_required’: [(0, ’drone0’, 5.0, 6.0), (0, ’drone1’, 5.0, 4.0) ],
’log’: ’Drones have not reached their target, sending them to their goal
positions’
}
input: {[(’drone0’,...), (’drone1’,...)]}
output:
{
’drone_ids’: [’drone0’, ’drone1’],
’status’: [’completed’, ’completed’],
’current_subtask’: [’None’, ’None’],
’action_required’: None,
’log’: ’Drones have reached their target’
}
|
References
- Cacace, J.; Finzi, A.; Lippiello, V.; Furci, M.; Mimmo, N.; Marconi, L. A control architecture for multiple drones operated via multimodal interaction in search & rescue mission. In Proceedings of the 2016 IEEE International Symposium on Safety, Security, and Rescue Robotics (SSRR), Lausanne, Switzerland, 23–27 October 2016; pp. 233–239. [Google Scholar] [CrossRef] [Scilit]
- Wattearachchi, W.D.; Lakshika, E.; Kasmarik, K.; Barlow, M. Designing Effective Human-Swarm Interaction Interfaces: Insights from a User Study on Task Performance. arXiv 2025, arXiv:2504.02250. [Google Scholar] [CrossRef] [Scilit]
- Tian, Y.; Lin, F.; Li, Y.; Zhang, T.; Zhang, Q.; Fu, X.; Huang, J.; Dai, X.; Wang, Y.; Tian, C.; et al. UAVs meet LLMs: Overviews and perspectives towards agentic low-altitude mobility. Inf. Fusion 2025, 122, 103158. [Google Scholar] [CrossRef] [Scilit]
- Kim, Y.; Kim, D.; Choi, J.; Park, J.; Oh, N.; Park, D. A survey on integration of large language models with intelligent robots. Intell. Serv. Robot. 2024, 17, 1091–1107. [Google Scholar] [CrossRef] [Scilit]
- Choi, H.L.; Brunet, L.; How, J.P. Consensus-Based Decentralized Auctions for Robust Task Allocation. IEEE Trans. Robot. 2009, 25, 912–926. [Google Scholar] [CrossRef] [Scilit]
- Mercker, T.; Casbeer, D.W.; Millet, P.T.; Akella, M.R. An extension of consensus-based auction algorithms for decentralized, time-constrained task assignment. In Proceedings of the 2010 American Control Conference, Baltimore, MD, USA, 30 June–2 July 2010; pp. 6324–6329. [Google Scholar] [CrossRef] [Scilit]
- Sewlia, M.; Verginis, C.K.; Dimarogonas, D.V. MAPS2: Multi-robot autonomous motion planning under signal temporal logic specifications. Int. J. Robot. Res. 2025, 1–9. [Google Scholar] [CrossRef] [Scilit]
- Sun, D.; Chen, J.; Mitra, S.; Fan, C. Multi-Agent Motion Planning From Signal Temporal Logic Specifications. IEEE Robot. Autom. Lett. 2022, 7, 3451–3458. [Google Scholar] [CrossRef] [Scilit]
- Deghat, M.; Anderson, B.D.O.; Lin, Z. Combined Flocking and Distance-Based Shape Control of Multi-Agent Formations. IEEE Trans. Autom. Control 2016, 61, 1824–1837. [Google Scholar] [CrossRef] [Scilit]
- Rubinacci, R.; Nazzari, A.; Lovera, M. Anytime Trajectory Optimization for MultI-Drone Systems With Guaranteed Collision Avoidance. IEEE Control Syst. Lett. 2025, 9, 1255–1260. [Google Scholar] [CrossRef] [Scilit]
- Tordesillas, J.; How, J.P. MADER: Trajectory Planner in Multiagent and Dynamic Environments. IEEE Trans. Robot. 2022, 38, 463–476. [Google Scholar] [CrossRef] [Scilit]
- Zhou, X.; Wen, X.; Wang, Z.; Gao, Y.; Li, H.; Wang, Q.; Yang, T.; Lu, H.; Cao, Y.; Xu, C.; et al. Swarm of micro flying robots in the wild. Sci. Robot. 2022, 7, eabm5954. [Google Scholar] [CrossRef] [Scilit] [PubMed]
- Liang, J.; Huang, W.; Xia, F.; Xu, P.; Hausman, K.; Ichter, B.; Florence, P.; Zeng, A. Code as policies: Language model programs for embodied control. In Proceedings of the 2023 IEEE International Conference on Robotics and Automation (ICRA), London, UK, 29 May–2 June 2023; pp. 9493–9500. [Google Scholar]
- Meng, Y.; Chen, F.; Chen, Y.; Fan, C. AuDeRe: Automated Strategy Decision and Realization in Robot Planning and Control via LLMs. arXiv 2025, arXiv:2504.03015. [Google Scholar] [CrossRef] [Scilit]
- Zhu, W.; Dorigo, M.; Heinrich, M.K. Online automatic code generation for robot swarms: LLMs and self-organizing hierarchy. arXiv 2025, arXiv:2510.04774. [Google Scholar] [CrossRef] [Scilit]
- Cui, J.; Liu, G.; Wang, H.; Yu, Y.; Yang, J. TPML: Task Planning for Multi-UAV System with Large Language Models. In Proceedings of the 2024 IEEE 18th International Conference on Control & Automation (ICCA), Reykjavík, Iceland, 18–21 June 2024; pp. 886–891. [Google Scholar] [CrossRef] [Scilit]
- Mandi, Z.; Jain, S.; Song, S. Roco: Dialectic multi-robot collaboration with large language models. In Proceedings of the 2024 IEEE International Conference on Robotics and Automation (ICRA), Yokohama, Japan, 13–17 May 2024; pp. 286–299. [Google Scholar]
- Nayak, S.; Morrison Orozco, A.; Have, M.; Zhang, J.; Thirumalai, V.; Chen, D.; Kapoor, A.; Robinson, E.; Gopalakrishnan, K.; Harrison, J.; et al. Long-horizon planning for multi-agent robots in partially observable environments. Adv. Neural Inf. Process. Syst. 2024, 37, 67929–67967. [Google Scholar]
- Chen, Y.; Arkin, J.; Zhang, Y.; Roy, N.; Fan, C. Scalable Multi-Robot Collaboration with Large Language Models: Centralized or Decentralized Systems? In Proceedings of the 2024 IEEE International Conference on Robotics and Automation (ICRA), Yokohama, Japan, 13–17 May 2024; pp. 4311–4317. [Google Scholar] [CrossRef] [Scilit]
- Strobel, V.; Dorigo, M.; Fritz, M. LLM2Swarm: Robot Swarms that Responsively Reason, Plan, and Collaborate through LLMs. arXiv 2024, arXiv:2410.11387. [Google Scholar] [CrossRef] [Scilit]
- Zhang, H.; Du, W.; Shan, J.; Zhou, Q.; Du, Y.; Tenenbaum, J.B.; Shu, T.; Gan, C. Building Cooperative Embodied Agents Modularly with Large Language Models. arXiv 2024, arXiv:2307.02485. [Google Scholar] [CrossRef] [Scilit]
- Lykov, A.; Karaf, S.; Martynov, M.; Serpiva, V.; Fedoseev, A.; Konenkov, M.; Tsetserukou, D. FlockGPT: Guiding UAV Flocking with Linguistic Orchestration. In Proceedings of the 2024 IEEE International Symposium on Mixed and Augmented Reality Adjunct (ISMAR-Adjunct), Bellevue, WA, USA, 21–25 October 2024; pp. 485–488. [Google Scholar] [CrossRef] [Scilit]
- Aikins, G.; Dao, M.P.; Moukpe, K.J.; Eskridge, T.C.; Nguyen, K.D. LEVIOSA: Natural Language-Based Uncrewed Aerial Vehicle Trajectory Generation. Electronics 2024, 13, 4508. [Google Scholar] [CrossRef] [Scilit]
- Schuck, M.; Dahanaggamaarachchi, D.O.; Sprenger, B.; Vyas, V.; Zhou, S.; Schoellig, A.P. SwarmGPT: Combining Large Language Models With Safe Motion Planning for Drone Swarm Choreography. IEEE Robot. Autom. Lett. 2025, 10, 12237–12244. [Google Scholar] [CrossRef] [Scilit]
- Huang, Z.; Shi, G.; Wu, Y.; Kumar, V.; Sukhatme, G.S. Compositional Coordination for Multi-Robot Teams with Large Language Models. In Proceedings of the IEEE International Symposium on Multi-Robot & Multi-Agent Systems, Singapore, 4–5 December 2025. [Google Scholar]
- Kahneman, D. Thinking, Fast and Slow; Macmillan: Basingstoke, UK, 2011. [Google Scholar]
- Wei, J.; Wang, X.; Schuurmans, D.; Bosma, M.; Xia, F.; Chi, E.; Le, Q.V.; Zhou, D. Chain-of-thought prompting elicits reasoning in large language models. Adv. Neural Inf. Process. Syst. 2022, 35, 24824–24837. [Google Scholar]
- Dong, Q.; Li, L.; Dai, D.; Zheng, C.; Ma, J.; Li, R.; Xia, H.; Xu, J.; Wu, Z.; Liu, T.; et al. A survey on in-context learning. arXiv 2022, arXiv:2301.00234. [Google Scholar]








| System | Topology | Output | Replanning | Safety Layer | Real-World | Eval Scope |
|---|---|---|---|---|---|---|
| TACOS (Ours) | Cent. | API calls | ✓ | ATOMICA [10] | 3 UAVs | Scaling, success |
| RoCo [17] | Decent. | Plan descr. | ✓ | RTT motion planner | Mobile manipulator | Collab. manip. |
| TPML [16] | Cent. | Code gen. | ✓ | Human cert. | 2 UAVs | Mission gen. |
| SwarmGPT [24] | Cent. | Waypoints/Primitives | Offline | Safety filter | 20 UAVs | Choreography |
| Code as Policies [13] | Cent. | Python code | ✗ | None | Robot arms | Gen. robot policy code |
| FlockGPT [22] | Cent. | Python code | ✗ | None | 8 UAVs | UAV flocking |
| 6 Drones | 12 Drones | 20 Drones | |
|---|---|---|---|
| TACOS MNL | |||
| TACOS w/oR | |||
| TACOS | 1.0 − 0.065 |
| 6 Drones | 12 Drones | 20 Drones | |
|---|---|---|---|
| TACOS MNL | |||
| TACOS w/oR | |||
| TACOS |
| 6 Drones | 12 Drones | 20 Drones | ||||
|---|---|---|---|---|---|---|
| Coord. | Sup. | Coord. | Sup. | Coord. | Sup. | |
| TACOS MNL | 8.46 s | – | 5.96 s | – | 6.31 s | – |
| TACOS w/oR | 8.55 s | 4.77 s | 8.49 s | 5.04 s | 7.21 s | 5.15 s |
| TACOS | 11.05 s | 4.53 s | 8.06 s | 5.66 s | 8.0 s | 5.64 s |
| 6 Drones | 12 Drones | 20 Drones | |
|---|---|---|---|
| Baseline | 196.96 m | 78.95 m | 51.42 m |
| TACOS MNL | 198.26 m | 136.84 m | 78.55 m |
| TACOS w/oR | 197.73 m | 112.57 m | 81.23 m |
| TACOS | 197.1 m | 105.44 m | 70.13 m |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2026 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license.
Share and Cite
Nazzari, A.; Rubinacci, R.; Lovera, M. TACOS: Task Agnostic Coordinator of a Multi-Drone System. Drones 2026, 10, 251. https://doi.org/10.3390/drones10040251
Nazzari A, Rubinacci R, Lovera M. TACOS: Task Agnostic Coordinator of a Multi-Drone System. Drones. 2026; 10(4):251. https://doi.org/10.3390/drones10040251
Chicago/Turabian StyleNazzari, Alessandro, Roberto Rubinacci, and Marco Lovera. 2026. "TACOS: Task Agnostic Coordinator of a Multi-Drone System" Drones 10, no. 4: 251. https://doi.org/10.3390/drones10040251
APA StyleNazzari, A., Rubinacci, R., & Lovera, M. (2026). TACOS: Task Agnostic Coordinator of a Multi-Drone System. Drones, 10(4), 251. https://doi.org/10.3390/drones10040251

