Apply to my task
arXiv:2610.22869 ★ 88 Oct 16, 2026

MAD-SAE and MS-Eval: Delegating to Sub-Agents Pays Off Only with Narrow Specializations and Well-Timed Handoffs

Key result

The paradox: in testing, sub-agents delivered speed, not quality. Final accuracy stayed at single-agent level, while the bill went up. The method lets you configure the main agent to call helpers only where it pays off. The trick: describe sub-agents narrowly, by subject area. Not "researcher," but "Amazon-Competitor-Researcher." A fuzzy "should I delegate, maybe?" becomes a simple choice, and the main agent's context doesn't get clogged with raw reviews and data dumps.

01

TL;DR

A main agent (Claude Code, Cursor, Codex) that can hand subtasks to sub-agents doesn't win anything automatically. A sub-agent works in its own context "window" and returns only a short summary to the main agent. This study checked how sensibly agents actually delegate and what that buys in quality, speed and money. The clear winner: narrowly specialized sub-agents (scoped by subject area) instead of generic "researcher / coder" roles.

The pain point is that agents delegate either too little or too much. With generic sub-agents, the agent gets shy about delegating: in more than half of the tasks where help was needed, it goes it alone and clogs its own context. Force it to call a planner first, and it starts delegating even trivial tasks, burning money for nothing. One of the top models spun up sub-agents on almost every task and gained nothing. The reason: a model has no internal "is this worth it?" meter. Its behavior is set by the instructions.

The bottom line: describe sub-agents narrowly, by subject area, don't force mandatory planning, and spell out when to delegate and when not to. Even with perfect delegation, sub-agents in the test bought speed, not quality, and you paid for it in cash.

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 about agent configuration, not a step-by-step technique. Here's the working setup distilled from the results:

LAYER 1: Main agent (instructions) → "when to delegate / when not to" rules + examples
LAYER 2: Sub-agents → narrow roles by subject area
        • reconnaissance (read-only): literature, company data, financial markets, web
        • changes (write access): external systems, reports/documents
LAYER 3: Planner → a separate sub-agent, but NOT a mandatory first step
LAYER 4: Sub-agent → returns a short summary, never calls "task complete"

All of this is configured in plain text: the system prompt, the instructions file, the sub-agent descriptions.

03

Example in Practice

Task: You run marketing for an online whole-bean coffee shop. Every Friday you need a rundown: competitor prices and reviews on Amazon and Etsy, search rankings, and a ready-to-go one-page report. The work happens in Claude Code with data sources connected. Simple requests like "rename the file" or "fix one number" the agent should just handle itself.

Prompt (a snippet for CLAUDE.md):

## Delegating to sub-agents

When to delegate:
- The subtask requires reading lots of material (reviews, listings, exports),
  and I only need a summary.
- There are 2+ independent subtasks that can run in parallel
  (for example, Amazon and Etsy).

When NOT to delegate (do it yourself):
- Editing a single file or a single number.
- Answering a question about data that's already loaded.
- The task takes 1-3 tool calls.

Sub-agents (use only these, don't create others):
- Marketplace-Researcher (read-only): collects competitor listings, prices and reviews
  on Amazon and Etsy. Returns a summary of up to 300 words.
- Pricing-Analyst (read-only): compares prices and trends from the export.
  Returns a table and 3 takeaways.
- Report-Builder (write): assembles the final 1-page report from the summaries.

Rules for sub-agents:
- Work only in their own folder.
- Return a short summary, not raw data.
- Never close the task themselves. Only I finish it.

Examples:
- "Analyze 5 competitors on two marketplaces" → two Marketplace-Researchers
  in parallel (Amazon and Etsy), then Pricing-Analyst, then Report-Builder.
- "What's our average price in the export?" → I answer myself, no sub-agents.

Result: On a big task, the agent launches two researchers in parallel, then the analyst and the report builder. The main context stays clean because the raw reviews stay with the sub-agents. On small questions, the agent answers on its own without spinning up sub-agents. Test this on your own tasks: in the study, behavior varied a lot by model.

04

Why It Works

The weakness: an agent has no built-in sense of proportion. Without explicit rules, models swing to extremes. Some under-delegate: with vaguely described generic sub-agents, the agent can't tell what to hand off or to whom. Others over-delegate: after a mandatory "plan first," planning turns into a ritual and every little thing gets shipped to a sub-agent.

The strength: models follow a clear role with well-defined boundaries really well. If a sub-agent is called Marketplace-Researcher and does one kind of work, it's obvious to the main agent when it's needed. A generic "Explorer" offers no such hint.

The payoff: narrow roles turn a fuzzy "should I delegate, maybe?" into a simple choice. Explicit "when not to delegate" rules trim the excess. And reconnaissance happens in isolation, so the main context doesn't get clogged.

Control levers: - Delegation criteria ("only if there's a lot of reading or parallel parts") → stricter: less spend, looser: more help. - Sub-agent permissions (read-only / write) → the narrower the permissions, the safer. - "Delegate / don't delegate" examples → calibrate the model's tendency. This matters most for models that delegate at the drop of a hat. - Summary length limit → protects the main agent's context. - Sub-agent lineup → remove the ones that overlap in meaning.

05

Prompt Template

The authors' actual prompt texts aren't included in the main body of the paper (they're in the appendix). Per the description, the main agent received delegation norms, sub-agent profiles and a few examples. The template below follows that structure.

## Delegation rules

Delegate if:
- {condition_1: e.g., lots of material to read, but only a summary is needed}
- {condition_2: e.g., there are independent subtasks that can run in parallel}

Don't delegate if:
- {condition_3: e.g., the task takes 1-3 steps}
- {condition_4: e.g., the answer is already in the loaded data}

## Available sub-agents (don't create others)

- {Name_1} ({read-only / write}): {narrow area of work}.
  Returns: {summary format, length limit}.
- {Name_2} ({read-only / write}): {narrow area of work}.
  Returns: {summary format, length limit}.
- {Name_3} ({read-only / write}): {narrow area of work}.
  Returns: {summary format, length limit}.

## Rules for sub-agents
- Work only in {their_folder/area}.
- Return a short summary, not raw data.
- Never finish the overall task. The main agent finishes it.

## Examples
- "{big_task_example}" → {whom to launch and in what order}.
- "{small_task_example}" → I do it myself, no sub-agents.

What to fill in: pull your delegation conditions from your own pain points (where the context bloats, where there are independent parts). Name sub-agents by subject area, not by action ("Competitor-Researcher," not "Explorer"). Take the examples from real tasks.

🚀 Quick start — paste into the chat:

Here's an instruction template for a main agent with sub-agents. Adapt it to my task: [your task]. 
Ask me questions to fill in the fields.

[paste the template above]

The LLM will ask about your typical tasks, where your context bloats, which sources and tools you use, and which tasks are definitely simple. It needs this to tightly scope the sub-agent roles and write honest "delegate / don't delegate" criteria. It'll take the pattern from the template.

06

Limitations

⚠️ Delegation doesn't raise quality on its own: even with near-perfect delegation, the final success rate landed at the level of a single agent. Sub-agents delivered speed, not accuracy, and cost more.

⚠️ It's expensive: for most models, delegation drives up costs. For the closed models in the test, it came with both higher spend and worse results.

⚠️ Model-dependent: models differ wildly in how eager they are to delegate. Some hand off almost everything, others are shy. You'll have to calibrate the instructions for your model.

⚠️ Narrow test bed: all experiments ran in a single agent framework on tasks with MCP tools (learning systems, data warehouses, e-commerce, stock exchange, video, railways, science, food service). Transfer to your tasks (code, writing) hasn't been tested.

⚠️ Conclusions about prompt variants come from one model: the "generic / specialized / planner-first" comparison ran on a single low-cost model. Results may differ for others.

⚠️ No ready-made prompts: the authors' instruction texts aren't in the main body; the template above is a reconstruction from the description.

07

How They Tested It

The authors took 166 work tasks from the Toolathlon-Gym environment: eight domains, long chains with real tools. For each task they hand-labeled a ground truth: whether to delegate, which sub-agents, and in what order. The result: 89 tasks where help is needed, and 77 where the agent can manage alone.

They compared a single agent against four delegation setups: generic sub-agents, specialized ones, a mandatory planner first, and an "oracle" (the agent was handed the ideal plan outright). They measured three things. First: does the agent delegate at the right moments, i.e., misses and unnecessary launches. Second: do the launched sub-agents match the ground truth. Third: what it yields in success, steps and money compared to a single agent. Everything was rolled into an MSQ index.

The results were surprising. The oracle, with near-perfect delegation, didn't raise success, only speed. So the main benefit of sub-agents is parallelism and context offloading, not "smarts." The mandatory planner didn't help; it hurt, triggering mass delegation where none was needed. Of the eight models, the top six were open-weight, while two closed flagship models ended up at the bottom. One launched sub-agents on nearly every task, and all its metrics sank below parity. The practical takeaway: don't leave the "should I delegate?" decision to the model; set it with rules and narrow roles.

08

Adaptations and Extrapolations

🔧 Technique: drop "planner first" → fewer unnecessary launches

Instead of a mandatory planning step, write: "Plan yourself, briefly. Call the planner sub-agent only if there are more than three subtasks." The paper showed that a mandatory planner inflates delegation. A soft condition should remove that effect, but the authors didn't test this variant.

🔧 Technique: add a self-check block before launching a sub-agent → fewer pointless launches

Before launching a sub-agent, answer in one line:
1) Is there a lot of material to read? 2) Are there parallel parts?
If both are "no" — do it yourself.

This is my own extension based on the findings about under- and over-delegation. It hasn't been tested in the paper.

Extrapolation: audit your own sub-agents. Paste your list of sub-agents into the chat and ask:

Here are the descriptions of my sub-agents: {list}. Find overlaps in meaning, 
roles that are too generic, and sub-agents without a clear launch condition. 
Suggest how to narrow the roles by subject area and what to merge.
09

Resources

  • MS-Eval: Benchmarking Sub-Agent Delegation and Orchestration in MCP-Intensive Working Scenarios (preprint)
  • Code: https://github.com/LINs-lab/MS-Eval
  • Authors: Bowen Ding, Qixin Wang, Lexing Yuan, Weiyi Lu, Qiwei Ge, Ruishan Fang, Tao Lin
  • Affiliations: Zhejiang University, Westlake University (School of Engineering; Institute of Advanced Technology, Westlake Institute for Advanced Study)
  • Benchmark basis: Toolathlon-Gym; framework for runs: Kimi-Code

Research digest

Key result

The paradox: in testing, sub-agents delivered speed, not quality. Final accuracy stayed at single-agent level, while the bill went up. The method lets you configure the main agent to call helpers only where it pays off. The trick: describe sub-agents narrowly, by subject area. Not "researcher," but "Amazon-Competitor-Researcher." A fuzzy "should I delegate, maybe?" becomes a simple choice, and the main agent's context doesn't get clogged with raw reviews and data dumps.

Principle

Not "give the agent generic helpers and make it plan first." The opposite: narrow roles plus explicit "when NOT to delegate" rules. A model has no internal sense of proportion; only the instructions supply it. With a generic "Explorer," the agent can't tell whom to give what. It gets shy and hauls everything itself: more than half of the tasks where help was needed got solved solo. A mandatory planner as step one breaks things in the opposite direction. The plan becomes a ritual, and even the smallest item gets handed to a sub-agent. It's like a manager nobody told whom to ask for what. Or one who was ordered to call a meeting every time someone sneezes.

Why it works

Models follow a clear role with well-defined boundaries really well. The Marketplace-Researcher sub-agent does one kind of work, so it's obvious to the main agent when it's needed. A narrow name works as a built-in launch condition: no guessing whether the helper fits. Explicit rules like "don't delegate if 1-3 calls will do" trim the excess. Reconnaissance happens in isolation, and the main agent gets back a short summary. Wild stat: one of the top models launched sub-agents on almost every task. Zero gain. So you need to calibrate the delegation tendency for your model rather than hope for common sense. Tuning levers: - Delegation criteria. Stricter means less spend, looser means more help. - Sub-agent permissions (read-only or write). The narrower the permissions, the safer. - "Delegate / don't delegate" examples. They shift behavior the most for models that delegate at the drop of a hat. - Summary length limit. It protects the main agent's context. - Sub-agent lineup. Remove the ones that overlap in meaning.

When to apply

Agent tools (Claude Code, Cursor, Codex) → tasks where you have to read a mountain of material but only need a summary, especially when there are 2+ independent parts that can run in parallel (for example, two marketplaces at once). NOT a fit if you expect a quality boost: in testing, final accuracy didn't improve. Also not a fit for small 1-3 step tasks. The method wasn't tested on code or writing: the test ran on tasks with connected tools (MCP) such as online stores, data warehouses and a stock exchange. Conclusions about prompt variants come from one low-cost model.

Mini recipe

1. Find where the context bloats: which tasks force the agent to read dozens of pages for a single summary. 2. Write two lists: "delegate if..." (lots of reading, independent parts) and "don't delegate if..." (editing one number, the answer is already in loaded data). 3. Name sub-agents by subject area: Competitor-Researcher, Pricing-Analyst, Report-Builder. No "Explorer" or "Helper." 4. Assign permissions: read-only for scouts, write access for the report builder alone. 5. Cap the summary: "up to 300 words, no raw data." 6. Forbid sub-agents from closing the task: only the main agent finishes it. 7. Add 2 examples: one big one where you delegate, and one small one where it's "I'll do it myself." 8. Don't make the planner a mandatory first step. Keep it handy, but don't force it. 9. Test on 5-10 of your own tasks: count how many times the agent called helpers for nothing. If it's often, tighten the conditions. Quick start, paste into the chat: `Here's an instruction template for a main agent with sub-agents. Adapt it to my task: [your task]. Ask me questions to fill in the fields. [template]`

Examples

[BAD]: `Use sub-agents: Explorer for research, Coder for code. Always call the planner first.` [GOOD]: `Delegate only if you need to read lots of reviews or there are 2+ independent parts. Don't delegate editing a single number or answering from already-loaded data. Sub-agents (don't create others): Marketplace-Researcher (read-only) collects competitor prices and reviews on Amazon and Etsy, returns a summary of up to 300 words. Pricing-Analyst (read-only) compares prices, returns a table and 3 takeaways. Report-Builder (write) assembles a 1-page report. Only I close the task.` [GOOD, examples inside the instructions]: `"Analyze 5 competitors on two marketplaces" → two Marketplace-Researchers in parallel, then Pricing-Analyst, then Report-Builder. "What's our average price in the export?" → I answer myself, no sub-agents.`

In plain words

Handing tasks off to sub-agents is all the rage, but on its own it doesn't make a system faster or smarter. The main agent isolates each helper's context and waits for nothing but a short recap back, yet models completely lack a built-in sense of proportion. Without hard guardrails they swing to extremes: either they haul the entire context solo and drown in it, or they spin up bureaucratic hell and delegate renaming a single file to a sub-agent.

It's like hiring an anxious team lead and giving them interns with fuzzy job titles like "researcher" and "coder". The lead either won't trust them with a single line of code and burns out, or starts calling hour-long meetings over a misplaced comma. On paper, there's a process, but in reality it's a pile of burned cash for nothing and zero output.

The MS-Eval study showed that generic roles are a total flop. What actually works is narrowly specialized sub-agents for a specific subject area, say, a module for analyzing Amazon reviews or a price calculator. The second key architecture rule is an explicit complexity threshold, so the agent handles basic actions itself instead of torching its context on endless calls to subordinates.

It was tested on marketplace monitoring via MCP, but the principle applies to any agent environment like Claude Code or Cursor. Whether you're setting up complex scraping, a code audit or competitor analytics, forget abstract general-purpose helpers. Slice work into isolated micro-tasks and firmly block pointless planning when all you need is a basic action.

Stop multiplying entities for the sake of a pretty diagram: multi-agent setups without specialization just multiply your costs while the results stay flat. Tune each helper to one specific API or a narrow slice of data, and leave trivial grunt work to the main core. Either you write rock-solid delegation rules up front, or your stack will simply eat your entire token budget without really solving anything.

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 MAD-SAE and MS-Eval: Delegating to Sub-Agents Pays Off Only with Narrow Specializations and Well-Timed Handoffs arXiv:2610.22869

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