Apply to my task
arXiv:2610.27655 ★ 94 Oct 20, 2026

One Agent Beats a Team: In Customer Conversations, a Multi-Agent Setup Loses to a Single Agent

Key result

The paradox: the more roles in a customer conversation, the worse the result. Roughly three quarters of write commands were executed differently from how they were written. The study shows that for a support agent that talks to a person and changes data in a system (plan, order, booking), one agent beats a team of roles. Every hand-off between roles is a retelling, and retellings lose details. The orchestrator (the lead role that talks to the customer) wrote orders without the tool schemas. So the executor interpreted them its own way. With the same model and the same token budget, the gap in favor of the solo agent was tens of points.

01

TL;DR

The researchers compared a single agent against a multi-agent setup with three roles, all running on the same model. The orchestrator talks to the customer and plans. The database agent calls the tools. The advisor checks actions against the policy. The job: handle a customer conversation according to a written policy (airline, retail store, telecom carrier). The team lost almost everywhere. The single agent did better, and with the same model and the same token budget the gap was tens of points.

The popular idea goes like this: "a team of agents helps while the model is weak and gets in the way once it's strong." In this paper it was not confirmed. The team didn't help even the weak models. It didn't reduce erroneous changes to the database. Some failures simply turned into "ran out of budget" and "the agent stalled and did nothing." One of the reasons: the orchestrator wrote commands without the tool schemas, which only the executor knew. Roughly three quarters of write commands were executed differently from how they were written. Details got lost between the roles.

The practical takeaway: if your agent talks to a human, default to a single agent with the policy in one prompt. Split the work into roles only once you've verified for yourself that it does better on your tasks.

Want this for your own case? Apply this study to your task: AI adapts its method to what you are working on and writes the prompt.

02

Method Blueprint

This is a finding, not a technique. The comparison setup:

SINGLE AGENT:  policy verbatim in the prompt → talks to the customer itself → calls tools itself

MULTI-AGENT:   Orchestrator (talks to the customer, keeps the plan)
                 ├→ DB agent (the only one that calls tools)
                 └→ Policy advisor (gives a verdict with quotes from the policy)

Conditions: one model, one shared token budget per conversation
Outcome:    the single agent wins almost everywhere
03

Example in Practice

Where the finding hits hardest: a support agent that talks to the customer and changes something in the system (plan, order, booking). Here the "don't split into roles" lesson applies directly.

The task: You're setting up a support agent for a regional internet provider (think a smaller cousin of Comcast or Spectrum). The agent needs to change plans, enable a "payment extension," and reset a port. The temptation: build an "orchestrator," an "executor," and a "policy lawyer." Instead, we build a single agent.

Prompt (system instructions for the single agent):

You are a support agent for the internet provider "NorthNet." You talk to the customer and call the tools yourself.

Below is the policy. Follow it strictly. If the customer asks for something the policy forbids, refuse and explain why.

<policy>
1. A plan can be changed only after verifying that the customer has no outstanding balance.
2. A "payment extension" is available once every 30 days, for no more than 3 days.
3. A port reset is allowed only after the customer has confirmed they rebooted their router.
4. Any change to the account happens only after an explicit "yes" from the customer.
</policy>

Working rules:
- First read the customer's data, then act.
- Perform actions that modify data only after the customer confirms.
- Call each tool with exactly the parameters the customer confirmed.
- If the customer needs to do something themselves (reboot the router), ask for it and wait for their reply.

Result: The agent runs the conversation in a single context. It reads the customer's data, checks the policy, asks for confirmation, and only then calls a write tool. There are no hand-offs between roles, so no details get lost in hand-offs. Token usage will be lower than with a team. The agent decides "payment extension or plan change" on its own, without the orchestrator relaying it secondhand.

04

Why It Works

The team's weak spot. Every hand-off between roles is a retelling. The orchestrator phrases an order in words, and the executor turns it into a tool call. If the orchestrator doesn't know the tool schema (which parameters, which formats), it writes the order "roughly." The executor carries it out differently than intended. In the study this happened to most write commands. On top of that, every role burns tokens on planning and coordination. Under a shared budget, that eats the room needed for the actual conversation.

The single agent's strength. It keeps all the context in one place: the customer's words, the policy, the tool results. It doesn't have to retell anything. Modern models handle this kind of conversation well on their own. In the study the single agent was the baseline configuration, and with zero tuning it came out stronger.

What this means for you. Splitting into roles isn't free. You pay in tokens, latency, and hand-off losses. Your levers: - Tool access. If you do split into roles, the executor must receive a complete order with exact parameters, and the orchestrator must know the tool schemas. - The "advisor" role. Instead of a separate agent, paste the policy verbatim into the main prompt. - Testing on your own data. Before rolling out, run 30–50 real conversations through both versions.

05

Prompt Template

This is the baseline configuration from the study: one agent, the policy pasted verbatim, tools called directly.

You are the {agent_role} agent for {company}. You talk to the customer and call the tools yourself.

Follow the policy strictly. If the customer asks for something the policy forbids, refuse and explain the reason.

<policy>
{policy_verbatim}
</policy>

Rules:
- First read the data, then act.
- Make changes only after the customer's explicit confirmation.
- Call each tool with the parameters the customer confirmed.
- {customer_action_rules}

What to fill in: - {policy_verbatim} — the full text of the policy, no paraphrasing or trimming. - {customer_action_rules} — what the customer has to do themselves (in telecom: rebooting, checking indicator lights).

06

Limitations

⚠️ A defect in the team itself: In the experiment, the orchestrator planned without seeing the tool schemas. The authors openly call this a deviation from their own plan. They built a fixed version but didn't run it across the full grid. So the conclusion applies to this particular architecture, not to every multi-agent design.

⚠️ Only one kind of team: Only a centralized setup with a single orchestrator was tested. Agent debates, independent agents, and hybrids weren't tested, because in a customer conversation they need separate adaptation.

⚠️ Simulator dependence: The customer was played by another model. When it was swapped for the default simulator, the team suddenly gained in one cell. The result depends heavily on which "customer" is used in the test.

⚠️ No answer on model strength: The study couldn't establish whether the benefit of a team shrinks as model capability grows. The confidence interval is too wide. They didn't confirm the "threshold around 45%" rule itself, but they didn't definitively refute it either.

⚠️ Only user-facing conversations: For autonomous tasks with no human in the loop (software development, analytics), the conclusion doesn't necessarily carry over.

07

How They Studied It

The idea was simple: take the popular rule "a team of agents helps weak models and hurts strong ones, with a threshold around 45% accuracy" and test it where agents actually work — in conversation with a customer. They used the τ²-bench benchmark with three domains: airline, retail, and telecom. In telecom, the customer takes actions on their own device.

Six models from three families, roughly 7,950 simulated conversations, 50 tasks per cell, and three runs each. The study was preregistered and kept a public changelog. That guards against tweaking things until the result looks right.

The hard part is a fair comparison. In a conversation, the bulk of tokens go to reading context (in the pilot, every generated token came with 57 read tokens). So they compared by generated tokens, with one shared "meter" for the whole conversation. The budget was calibrated to the single agent's actual usage. The team got four times that headroom.

The result: the team didn't win a single cell. The average loss was about 28 points. In the two cells where the rule predicted a benefit, the team lost by 13 and 22 points. When the budget was removed entirely, at best it tied the single agent while spending 5.5 times more tokens. The surprise: the team did not reduce the number of erroneous database writes, which is usually the whole reason to build one. Some failures turned into "ran out of budget" or doing nothing.

08

Adaptations and Extrapolations

🔧 Technique: if you do split into roles → give the executor a complete order

A lesson from the experiment's defect: the orchestrator couldn't see the tool schemas, and write commands got distorted. In the orchestrator's role description you can explicitly demand precision:

When you pass the executor a command that changes data, specify:
- the exact tool name,
- all parameters with concrete values,
- where each value came from (the customer's words or a read result).
Do not paraphrase in your own words.

This is my extrapolation; the study didn't test this prompt. But it follows directly from the failure cause they found.

🔧 Technique: policy advisor → policy block in the main prompt

Instead of a separate advisor agent, paste the policy verbatim into the system prompt and add a rule: "Before changing data, quote the policy clause that allows it." That way the check stays inside one context, with no hand-off.

Extrapolation: run your own mini-test before adding complexity. Take 30–50 real support requests. Run them through a single agent and through a team. Compare not on "how nice the answer sounds," but on whether the system state changed correctly (order, status, amount). That's what the authors measured.

09

Resources

  • Paper: Does Multi-Agent Collaboration Pay When Agents Serve Users? Testing Agent Scaling in Dual-Control Settings.
  • Authors: Ethan Yang, Xiangcheng Shi, University of Pennsylvania.
  • Code, prompts, and experiment plan: https://github.com/ethanyyang/agent-scaling-dual-control
  • Trajectories and budget logs: https://doi.org/10.5281/zenodo.23458286
  • The rule under test: Kim et al. (2026), "capability-saturation principle," threshold around 45%.
  • Benchmark: τ²-bench (Barres et al., 2025).
  • Related work: Tran & Kiela (2026), Jwalapuram et al. (2026), Cuadron et al. (2025), Kang et al. (2026).

Research digest

Key result

The paradox: the more roles in a customer conversation, the worse the result. Roughly three quarters of write commands were executed differently from how they were written. The study shows that for a support agent that talks to a person and changes data in a system (plan, order, booking), one agent beats a team of roles. Every hand-off between roles is a retelling, and retellings lose details. The orchestrator (the lead role that talks to the customer) wrote orders without the tool schemas. So the executor interpreted them its own way. With the same model and the same token budget, the gap in favor of the solo agent was tens of points.

Principle

The principle is simple: don't split a conversation into roles without testing it. It works like a game of telephone. The orchestrator tells the executor "change the customer's plan." The executor doesn't get exact parameters and formats, so it fills them in as best it can. A single agent keeps everything in one place: the customer's words, the policy, the tool responses. No hand-off, no lost details. Next to that sits a second problem: every role spends tokens on planning and coordination. Under a shared budget, those tokens eat the room needed for the conversation itself. Some failures turned into "ran out of budget" and "the agent stalled and did nothing."

Why it works

The main cause is information lost at the seams. The orchestrator didn't know the tool schemas; only the executor did. Orders came out "roughly right" and got executed differently. The team didn't help even the weak models, even though agent teams are supposed to rescue precisely the weak ones. The threshold idea (around 45% model capability, below which a team supposedly helps) wasn't confirmed. It wasn't definitively refuted either: the confidence interval is too wide. The single agent was the baseline configuration. With zero tuning, it came out stronger. Caveat: this was tested on one team design, where the orchestrator planned blind. The authors themselves call this a defect. They built a fixed version but didn't run it across the full grid. Also, when the customer simulator was swapped, the team suddenly won in one cell. The result depends on which model plays the "customer."

When to apply

Support agents (airline, retail store, telecom carrier) → especially when the agent both talks to the customer and changes something in the system according to a written policy. If you're about to split such an agent into an "orchestrator," an "executor," and a "policy lawyer," build a single one first and compare. NOT suitable for drawing conclusions about autonomous tasks with no human (development, analytics): that wasn't tested. Agent debates and independent agents weren't tested either.

Mini recipe

1. Build a single agent: role, company, and the line "you talk to the customer and call the tools yourself." 2. Paste the policy verbatim: inside a tag, with no paraphrasing or trimming. 3. Require confirmation: changes only after the customer's explicit "yes," and with the parameters the customer confirmed. 4. Spell out the order: first read the customer's data, then act. 5. Describe what the customer does themselves: for example, rebooting the router. The agent asks for it and waits for a reply. 6. If you split into roles anyway: give the orchestrator the tool schemas and the executor a complete order with exact parameters. 7. Test on your own data: run 30–50 real conversations through both versions. Compare database errors, token usage, and stalls.

Examples

[BAD]: `You are the orchestrator. Talk to the customer and draw up a plan. Pass tasks to the database agent in words, and ask a separate advisor agent about the policy.` [GOOD]: `You are a support agent for the internet provider "NorthNet." You talk to the customer and call the tools yourself. Follow the policy strictly. 1. A plan can be changed only after verifying that the customer has no outstanding balance. 2. A "payment extension" is available once every 30 days, for no more than 3 days. 3. A port reset is allowed after the customer has confirmed rebooting the router. 4. Any change to the account happens only after an explicit "yes" from the customer. First read the customer's data, then act. Call each tool with exactly the parameters the customer confirmed.` The good version has no hand-offs between roles. The agent decides "payment extension or plan change" on its own, without a retelling. Fewer tokens get spent.

In plain words

The multi-agent hype just crashed into the hard reality of customer service. The core problem with chaining several models together is context loss in hand-offs: when one model retells a task to another in plain words, it inevitably drops the parameter formats and the point of the request. On top of that, endless internal back-and-forth instantly devours the token budget, leaving no room for the actual conversation. The result: an elaborate crowd of agents delivers a total flop where a plain single model handles things without a hitch.

It's like hiring three people to change a light bulb. There's an "effective manager" who listens to the customer, then relays the task to the engineer in corporate gibberish, while a lawyer next to them checks every word against the rulebook. The engineer can't make sense of the vague instructions, screws in the wrong thread, and the company's budget has already run out. The process was technically followed, but the job isn't done, and the customer is sitting in the dark, furious.

The study put a single agent head-to-head against a trendy three-role team: an orchestrator, a database agent, and a policy advisor. The team embarrassingly fell apart on basic database write operations, because the coordinator didn't know the exact tool-call schema and handed out commands "roughly". In the end the lone agent steamrolled the team by tens of points, using exactly the same model and the same memory budget.

They tested on airlines, banks, and telecom, but the principle is universal. If your bot isn't just chatting but changing data in a real system — processing a refund, switching a plan, or moving a booking — forget about splitting it into roles. Trendy "agent swarms" add no brains to these tasks; they just breed a game of telephone and burn money on server capacity.

Bottom line: stop overcomplicating your architecture for the sake of pretty slide-deck diagrams. One competent agent with direct access to the tools beats a gang of virtual middlemen hands down. Leave elaborate multi-agent chains to academic experiments, and keep it simple in real products, or your users will drown in "high-tech" bureaucracy.

AI lab assistant

Apply this study to your task

Describe what you're working on. AI takes the method and the measured results from this paper and adapts them to your case, or writes a ready prompt built on them.

Based on One Agent Beats a Team: In Customer Conversations, a Multi-Agent Setup Loses to a Single Agent arXiv:2610.27655

Sign in to apply this study New accounts get 50 free credits.