Apply to my task
arXiv:2610.36848 ★ 81 Oct 27, 2026

Evolving Agent Teams: a supervisor that rebuilds the agent team when it hits a ceiling

Key result

A strong agent almost always gets stuck on an easy path with a low ceiling, and a more powerful model doesn't fix that. The Evolving Agent Teams method lets a coding agent run long jobs (hours and days) without hitting a ceiling. The trick: the team is overseen by a supervisor agent that doesn't write code; it reads the traces of the work, makes a diagnosis and invents new roles for the current breakdown. Each new team starts not from scratch but from a folder of accumulated findings and failures: the local optimum stops being a trap, and hard ideas get a second chance.

01

TL;DR

Evolving Agent Teams is a setup for long-running work with coding agents. A team of agents is overseen by a lead supervisor agent. It tracks progress, and when the work stalls, it makes a diagnosis and restructures the team: it invents new roles, changes the workflow and the rules for recording knowledge. All findings, failures and decisions pile up in a shared folder of files. Each new team starts not from scratch but from the accumulated experience.

The key finding: a strong agent almost always gets stuck at a local optimum, and a more powerful model doesn't cure that. At first it makes fast progress. Then it picks the path that's easier to implement but has a low ceiling. It burns the rest of the budget on minor polishing. When a hard but promising path breaks, the agent abandons it and never comes back. A fixed team of four roles hits a ceiling too: the phases of work change (correctness → debugging → profiling → redesign), but the roles stay the same.

The method boils down to three axes the supervisor adjusts after every plateau: roles (who is responsible for what), coordination (pipeline or parallel branches) and knowledge management (where to write what, and what must be read). It doesn't pick roles from a list; it invents them for the current breakdown: “Profiler,” “Skeptic,” “Knowledge Integrator.”

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

LOOP (runs when the team has finished its work OR on a timer):

STEP 1: Check progress → metric, log, team files
STEP 2: Diagnose the plateau → one of the patterns:
        • drift toward the easy path
        • loss of discovered insights
        • stuck in debugging
        • micro-optimization without gains
STEP 3: Restructure the team along three axes T = (Roles, Coordination, Knowledge)
        • Roles → new narrow roles for the current breakdown
        • Coordination → pipeline / parallel branches / both
        • Knowledge → where to write, what must be read
STEP 4: Launch team v+1 → it reads the files of previous teams
STEP 5: Record in the history: diagnosis, decision, result → back to STEP 1

SHARED FOLDER (persists the whole time):
  learnings    — accumulated empirical observations
  artifacts    — results and notes from every team and role
  evolution    — the supervisor's reasoning and decisions per version

The steps are carried out by the supervisor as a separate agent, not by a single prompt. The worker agents run as separate sessions.

03

Example

The method shines where the task is long, open-ended, with a measurable metric and a correctness check. The authors' GPU kernels are a special case. Speeding up a service is closer to home for most readers.

Task: The team behind an online store with marketplace-level traffic asks Claude Code to speed up catalog search. In an hour, the agent cut p95 latency from 900 to 520 ms by adding a cache. Then it spends three hours polishing trivia and gains nothing. The idea of rebuilding the index broke the tests, and the agent gave up on it.

Prompt (to the supervisor):

You are the supervisor of an agent team. The team's task: reduce the p95 latency
of catalog search for an online store (currently 520 ms, target 200 ms or less)
without breaking the tests in /tests/search.

Your job is not to write code, but to monitor the team and restructure it.

KNOWLEDGE FOLDER (read everything before every decision):
- /knowledge/learnings.md — observations confirmed by measurements
- /knowledge/artifacts/ — results and notes from previous teams
- /knowledge/evolution.md — your past diagnoses and decisions

LOOP:
1. Check progress: metric by version, latest commits, agent logs.
2. Make a diagnosis. Look for patterns:
   - drift toward the easy path (a hard idea dropped after the first failures);
   - loss of insights (a finding from a past version isn't being used);
   - stuck in debugging (one breakage blocks all the work);
   - micro-optimization (lots of effort, less than 2% gain).
3. Restructure the team along three axes:
   - ROLES: invent narrow roles for the diagnosis (not from a ready-made list).
     Explain why a single agent can't combine these tasks.
   - COORDINATION: pipeline, parallel branches, or both. If an agent
     is debugging a blocking problem, it doesn't touch the main branch.
   - KNOWLEDGE: specify where each agent writes its results and which document
     it must read before starting work.
4. Write to evolution.md: what you observed → diagnosis → what you changed → expectation.
5. Update learnings.md only with facts confirmed by measurements.

Output: the diagnosis, the new team lineup with each role's mandate,
the coordination scheme, the knowledge-recording rules.

Result: The supervisor will deliver a diagnosis (for example, “the index-rebuild idea was abandoned because of broken tests”). Then it will propose a team lineup with each role's mandate, for example a debugger on a separate branch plus a profiler. It will lay out the coordination scheme and the knowledge-recording rules. It will also update the decision log. The exact team lineup depends on your codebase.

04

Why It Works

Weakness. A single agent splits its limited context between implementation, profiling and research, and it lacks depth in each of them. After a few failures it picks the path of least resistance. Context doesn't last forever: findings from past sessions get lost, and hard ideas get filed as “dead ends” and never revisited.

Strength. An LLM agent works well with a narrowly defined role and can read the files you hand it. It's also pretty good at diagnosing someone else's work if you give it a log and a list of typical failures. That's just reading and analyzing text.

How the method uses this. Diagnosis and execution are separated: the supervisor doesn't write code, it reads the traces of the work and issues new mandates. Shared memory lives in files, so experience isn't lost when agents restart. For the “dead ends,” a fresh-eyes role is introduced to revisit abandoned ideas.

Control levers: - List of failure patterns → add your own (e.g., “the agent rewrites the tests instead of the code”) and the diagnosis gets sharper. - Trigger (on a timer or when work finishes) → a timer catches plateaus earlier, but you spend tokens on checks. - Roles → give them concrete names and prohibitions (“The Debugger doesn't touch the main branch”); this splits the work more cleanly. - Required reading → make new teams read the summary document, otherwise findings get lost.

05

Prompt Template

The accessible part of the paper contains no verbatim prompts from the authors. Below is a template assembled from the method description: the axis structure, the diagnosis patterns and the file system are preserved.

<Role>
You are the supervisor of an agent team. You don't write code. You observe the team,
diagnose the causes of stagnation and restructure the team.
</Role>

<Task>
Team goal: {goal}
Metric: {metric}, currently {current_value}, target {target_value}
Correctness constraints: {checks_and_tests}
</Task>

<KnowledgeBase>
Read before every decision:
- {path}/learnings.md — observations confirmed by measurements
- {path}/artifacts/ — results and notes from every team and role
- {path}/evolution.md — your past diagnoses and decisions
</KnowledgeBase>

<Trigger>
Run when: {current_team_finished_work} OR {every_N_minutes}
</Trigger>

<DiagnosisLogic>
Check progress and find the pattern:
- Drift toward the easy path: hard directions dropped after the first failures
- Loss of insights: findings from previous teams aren't being used
- Stuck in debugging: one problem blocks the rest of the work
- Micro-optimization: big effort, small gain
- {your_pattern}
</DiagnosisLogic>

<RestructureLogic>
Design team v+1 along three axes.

Roles:
  Invent roles for the diagnosis; don't take them from a ready-made list.
  For each: name, mandate, what it does NOT do, what it outputs.
  Examples: Profiler, Skeptic (checks the “ceilings”),
  Technique Researcher, Knowledge Integrator, Fresh Eyes (revisits
  “dead ends”), Workload Analyst.

Coordination:
  Choose: pipeline (research → implementation → measurement) /
  parallel branches / both.
  An agent debugging a blocking problem doesn't touch the main branch.

KnowledgeManagement:
  For each role: where to write results, what to read before starting.
  If insights are getting lost, introduce a summary document and make reading it mandatory.
</RestructureLogic>

<Output>
1. Diagnosis (grounded in logs and measurements)
2. Team lineup and each role's mandate
3. Coordination scheme
4. Knowledge-recording rules
5. Entry for evolution.md: observation → diagnosis → change → expectation
</Output>

What to fill in: {goal}, {metric} and the values: a measurable result; without a metric the supervisor has nothing to diagnose against. {checks_and_tests}: what must not break. {path}: the folder with the knowledge files. {your_pattern}: an agent mistake typical for your task.

🚀 Quick start: paste into the chat:

Here is the Evolving Agent Teams template. Adapt it to my task: [your task].
Ask me questions to fill in the fields.

[paste the template above]

The LLM will ask about a measurable metric, correctness constraints, the folder structure and typical agent mistakes in your task. Plateau diagnosis only works with a metric and a correctness check, and the failure patterns need to be tied to your work. The model will take everything else from the template.

06

Limitations

⚠️ Cost: The method was tested on multi-day runs with a big budget. For a half-hour task, this kind of scaffolding won't pay off.

⚠️ Needs a metric and a correctness check: The diagnosis relies on numbers and tests. For subjective tasks (“make it prettier”), the supervisor has nothing to grab onto.

⚠️ Weak statistical evidence: Each experiment was run twice and the best result was taken, with a single model family (Claude). The authors themselves admit this limits the conclusions.

⚠️ Not always a breakthrough: On one of the tasks, under a controlled budget, the team arrived at the same solution as the single agent. The best solution only appeared with a larger budget. On some workloads the result stayed below the expert baseline.

⚠️ No prompts provided: The accessible part of the paper has no verbatim supervisor instructions. The template above is a reconstruction from the description, and you'll have to tailor the roles yourself.

⚠️ Orchestration: The full version launches agents on a timer and maintains the knowledge folder. In Claude Code this can be set up, but it takes manual work.

07

How It Was Studied

The authors took four hard GPU-kernel acceleration tasks: Flash Attention 4, Gated DeltaNet, MLA decode and fusing GEMM with AllReduce. The reference points were expert implementations (FlashInfer, CUTLASS and others). They compared against plain Claude Code with the same token budget. Separately, they tested a fixed team of four “sensible” roles and Codex.

The surprise: even strong single agents hit a ceiling. Codex reached only 28% of the expert with a budget of about $1K. The fixed four-role team got to 55%. That means the issue isn't model strength or the number of agents, but a mismatch between the team's organization and the current phase of work. Evolving Agent Teams went through more than 100 team configurations on MLA. At an equal budget it hit 0.74× the expert versus 0.51× for Claude Code. With an extended budget it beat the expert (1.21× on average, faster on 36 of 47 workloads).

On another task, GDN, the extended budget pushed the speedup from 2.2× to 4.06×. The extra time helped precisely the hard workloads where the first architecture was a poorer fit. The practical takeaway: rebuilding the team around a diagnosis pays off when a task has several phases and each one calls for different skills.

08

Adaptations and Extrapolations

🔧 Technique: add a “Fresh Eyes” role → revisit the “dead ends”

The authors introduced a role that re-examines directions abandoned after failures. Add a line to <RestructureLogic>:

If learnings.md has “didn't work” entries older than {N} versions,
create a “Fresh Eyes” role: it re-examines every dead end
and decides whether the failure was caused by the idea or only by the implementation.

🔧 Technique: ban the main branch → debugging doesn't block everyone else

For a blocking problem, launch a separate agent with the rule: “Work in the debug/{name} branch. Don't commit to main. Deliverable: a note in artifacts.” A parallel agent keeps optimizing main.

Extrapolation: a lightweight version for a single agent in CLAUDE.md

If a full supervisor is overkill, add a self-diagnosis rule to the agent's instructions:

Every {N} iterations, stop and check yourself against this list:
1. Did the metric improve by less than 2% over the last iterations?
2. Did I drop a hard idea after the first failures?
3. Am I using the findings recorded in /knowledge/learnings.md?
If the answer is “yes” to at least one item, write the reason in evolution.md
and change direction or go back to the abandoned idea.

This isn't the authors' method, but a simplification of their diagnosis patterns for a single agent.

09

Resources

  • Evolving Agent Teams — Shiyi Cao, Ziming Mao, Dacheng Li, Joseph E. Gonzalez, Ion Stoica, UC Berkeley
  • Code: https://github.com/caoshiyi/EAT
  • Related work cited in the paper: FlashInfer and FlashInfer-Bench, K-Search, Meta-Harness, AlphaEvolve, ADAS, Reflexion

Research digest

Key result

A strong agent almost always gets stuck on an easy path with a low ceiling, and a more powerful model doesn't fix that. The Evolving Agent Teams method lets a coding agent run long jobs (hours and days) without hitting a ceiling. The trick: the team is overseen by a supervisor agent that doesn't write code; it reads the traces of the work, makes a diagnosis and invents new roles for the current breakdown. Each new team starts not from scratch but from a folder of accumulated findings and failures: the local optimum stops being a trap, and hard ideas get a second chance.

Principle

Diagnose first, restructure second. The agent quickly takes the simple path and then polishes trivia until the budget runs out. A hard idea broke? The agent drops it for good. The supervisor catches these moments by four signs: drift toward the easy path, loss of discovered insights, getting stuck in debugging, micro-polishing without gains. After the diagnosis, it changes the team along three axes: 1. Roles: who is responsible for what. 2. Coordination: pipeline or parallel branches. 3. Knowledge: where to write and what must be read. Roles aren't taken from a ready-made list: the supervisor invents them for the specific breakdown. For example, “Profiler,” “Skeptic” or “Knowledge Integrator.” It's like a coach who, after every bad half, changes not just the lineup but the game plan. A fixed team of four roles can't do that, yet the phases of work keep changing: correctness, debugging, profiling, redesign.

Why it works

A single agent splits its limited context between code, measurements and hunting for ideas. It lacks depth in all of them. After a couple of failures it picks the easier path. Findings from past sessions get lost, and hard ideas settle into “dead ends” and are never revisited. An LLM agent has strengths too. It holds a narrow role well and reads the files it's given. It's pretty good at reviewing someone else's work from a log and a list of typical failures. Diagnosing stagnation is just reading and analyzing text, so it can be handed off to a separate agent that never writes code at all. Memory lives in files, not in the model's head. A restart wipes nothing. For abandoned ideas, a fresh-eyes role is introduced to revisit them. To be honest: the evidence is so-so. Each experiment was run twice and the best result was taken. Only Claude-family models were used. What you can tweak: - The list of failure patterns. Add your own, e.g., “the agent rewrites the tests instead of the code.” The diagnosis gets sharper. - The trigger. A timer catches stagnation earlier, but you'll spend tokens on checks. - Prohibitions in roles. “The Debugger doesn't touch the main branch” splits the work more cleanly. - Required reading. Make new teams read the summary document, or findings will get lost again.

When to apply

Long, open-ended tasks with a measurable metric and a correctness check → speeding up a service, catalog search, heavy computation, complex code improvements, especially when the agent has already grabbed the quick wins and is spinning its wheels, or has dropped a hard idea after the first failures. NOT suitable for half-hour tasks: the scaffolding won't pay off. NOT suitable for subjective goals like “make it prettier”: without a metric and tests, the supervisor has nothing to grab onto. No guaranteed breakthrough. On one task with a limited budget, the team arrived at the same solution as the single agent. The best solution only appeared with a larger budget.

Mini recipe

1. Find a metric: a number you can measure and tests you must not break. Without them, don't go any further. 2. Set up a shared folder: three files or directories: `learnings` (observations confirmed by measurements), `artifacts` (team results), `evolution` (supervisor decisions). 3. Run the supervisor as a separate agent: you don't write code, you diagnose stagnation and restructure the team. Worker agents run as separate sessions. 4. Pick a trigger: when the team finishes its work or every N minutes. The earlier you catch stagnation, the more you pay in tokens. 5. Provide a list of failure patterns: the four basic ones plus your own. 6. Require roles tailored to the diagnosis: name, mandate, what it does NOT do, what it delivers. Have it explain why the tasks can't be combined in a single agent. 7. Choose coordination: pipeline, parallel branches or both. Whoever debugs a blocking problem stays off the main branch. 8. Lock in the reading: every new team must read the summary document before starting. 9. Watch the log: every decision in the format “observed, diagnosis, changed, expect.” After a couple of cycles you can see what works. Too lazy to assemble it yourself? Paste the template into the chat: `Here is the Evolving Agent Teams template. Adapt it to my task: [your task]. Ask me questions to fill in the fields.` The model will ask about the metric, tests, folders and typical agent mistakes.

Examples

[BAD]: `Speed up catalog search. If it doesn't work, try again and again.` (The agent will cut latency with a cache, then spend three hours polishing trivia. The index-rebuild idea broke the tests, and it dropped it.) [GOOD]: `You are the supervisor of an agent team. Goal: reduce p95 catalog-search latency from 520 ms to 200 ms without breaking the tests in /tests/search. You don't write code. Read /knowledge/learnings.md, /knowledge/artifacts/ and /knowledge/evolution.md. Check the metric by version and make a diagnosis: drift toward the easy path, loss of insights, stuck in debugging, or micro-polishing (less than 2% gain). Invent narrow roles for the diagnosis, not from a ready-made list. For each: mandate, what it doesn't do, where it writes results. Output the diagnosis, team lineup, coordination scheme and an entry for evolution.md.` What you get: the diagnosis “the index-rebuild idea was abandoned because of broken tests.” Then a debugger on a separate branch and a profiler. Plus knowledge-recording rules and a decision log. The exact lineup depends on your codebase. [GOOD, add your own pattern]: `Add to the failure list: the agent rewrites the tests instead of the code. If you see this in the log, create a Test Controller role that is forbidden to change the code.`

In plain words

A lone AI agent on a long haul is a guaranteed dead end. Its context fills up with junk fast, the model flails between code and tests, and after a couple of failures it simply picks the path of least resistance and gives up. The Evolving Agent Teams architecture fixes this with a strict hierarchy: instead of one burned-out generalist, you get a flexible crew overseen by a supervisor agent.

Picture a startup run by a single junior dev who codes, tests and fudges his own status reports. On paper, the work is in full swing, but the product is dead in the water. Then a turnaround manager is parachuted in on top: he sees the circus, ruthlessly fires the ineffective roles, writes new playbooks and makes the team keep a log of screwups so they stop making the same mistakes over and over.

What actually does the work: bottleneck diagnosis (the supervisor spots when the metrics stop climbing), dynamic team rebuilding (roles and the pipeline change on the fly) and persistent memory. All findings, errors and code get dumped into a shared folder. When the supervisor disbands the old team and assembles a new one, the newcomers don't fumble from zero; they read the log, and the idea the previous model wrote off as a dead end gets a second shot.

The authors tested the method on GPU kernel optimization, but the principle is universal. Plug in microservice speedups, legacy cleanup or tuning heavy SQL queries, and it'll work anywhere there's long-running work and a rock-solid success metric. The key is giving the system a clear way to check whether the code broke and whether it got faster.

Bottom line: stop cramming complex engineering into one giant prompt, because single agents run out of steam. The future belongs to evolving ensembles that can admit a screwup and change their own structure on the fly. Whoever learns to conduct agents with shared memory will knock out in a couple of hours the problems that flesh-and-blood senior engineers will grind away at for weeks.

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 Evolving Agent Teams: a supervisor that rebuilds the agent team when it hits a ceiling arXiv:2610.36848

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