The task was simple.
The agent didn't know.
Researchers at the University of Tennessee measured how much compute AI coding agents spend on tasks that were never hard. The answer was 80 to 90 percent. Their fix, a three-step framework called E3, classifies difficulty before starting, caps file reads for simple tasks, and only expands scope when verification fails. On a 121-task benchmark, it matched the best baseline's perfect success rate while cutting cost by 85 percent.
First surfaced in Tandemly Briefing — 2026-07-21.
Agents read everything.
Most of it isn't needed.
When you send an AI agent to rename a variable or fix a typo, most current agents start the same way they would approach a full architecture redesign: open files, read context, reason about dependencies, then do the edit.
Agent cost is dominated by tokens. Every file an agent reads, every reasoning step it takes, every tool call it makes adds to the invoice. For a single bounded task, that cost structure is invisible: one task, one bill. But in production, agents handle hundreds of tasks per day across every difficulty level, and the mix matters enormously.
The prior assumption in most agent design is that generous context is always better. If the agent reads more files, it has more information. If it reasons at full depth, it will catch edge cases. The downside, wasted tokens on simple tasks, looked like a theoretical concern rather than a practical one. It turned out to be neither theoretical nor minor.
Researchers at the University of Tennessee, Knoxville measured this directly. They called the phenomenon Agent Cognitive Redundancy: agents routinely run 5 to 10 times more computation than any objective analysis of the task would justify. For simple, well-bounded edits, the agent sweeps the codebase, traces dependencies, and reasons through alternatives before doing something that takes two lines to express. Across their benchmark, 80 to 90 percent of agent compute was going to work the task did not require.
This matters because agent cost scales with task volume, not just task difficulty. Every simple task mistreated as a complex one burns real money. And most production workloads skew toward simple tasks: renaming, small refactors, documentation updates, straightforward bug fixes. The expensive cases are common, not rare.
Do agents have any internal signal for how hard a task is before they start? If not, what would it take to give them one, and how much compute could a correct difficulty estimate save?
Estimate. Execute. Expand.
The researchers built E3 around a deceptively simple idea: before the agent reads anything beyond the task description, it should decide whether the task is simple or complex. Everything else follows from that judgment.
E3 is a three-stage framework that restructures the standard agent loop. The key move is placing a cheap classification call at the very front of the process, before any file reads, before any tool calls, before any reasoning over code. That call gates everything that follows.
Expansion is triggered by evidence, not by caution. The default assumption is that the task is simple. The agent only pays for wider context when the minimum-viable path proves insufficient. This inverts the usual agent assumption, which is that wider context is always safer.
The researchers evaluated E3 on MSE-Bench, a benchmark of 121 deterministic code-editing tasks. These are bounded, well-specified edits with clear correct outputs, which makes them a clean test for whether the minimum-viable execution path can match full-effort baselines. They also corroborated the results on a live gpt-4o harness to confirm the savings appeared in real billed compute, not just estimated token counts.
Same results.
A fraction of the cost.
E3 matched the strongest baseline's perfect 100% success rate on MSE-Bench while cutting nearly all the compute. The savings were not marginal.
If a full-effort baseline reads 100 files to complete a simple task, E3 reads about 8. The information an agent needs for a simple, bounded code edit is almost always contained in a small local neighborhood of the codebase: the target file and its immediate dependencies. The 92 files scanned beyond that neighborhood add latency, cost, and noise without improving the result.
This is the structural insight behind E3: agent task scope and information need are not correlated by default. They have to be made to correlate, and that requires an explicit estimate of how much information the task actually needs.
The MSE-Bench results were corroborated on a live gpt-4o harness. This matters because token-count savings on a benchmark can diverge from real provider billing once caching, retries, and API-boundary effects are counted. The live harness result suggests the savings are not an artifact of how the benchmark is structured. They appear in metered production compute.
MSE-Bench's 121 tasks are deterministic code edits that skew toward well-specified, bounded changes. Tasks with genuinely ambiguous scope or open-ended requirements could activate the expand step more frequently, which would reduce the savings. The paper does not report how often the expand stage fires on this benchmark, which would directly quantify how often the initial simple-task classification was wrong. That number would matter for practitioners considering deployment on mixed workloads.
What this changes
for builders.
E3 is not a model trick or a prompt technique. It is an architectural intervention at the top of the agent loop. The implications run through agent design, cost instrumentation, and how teams evaluate agent efficiency.
Where to go
from here.
Concrete next steps if you want to take this from theory to your own agent stack.