<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Anton Vinogradov</title>
    <description>The latest articles on DEV Community by Anton Vinogradov (@tony__vi).</description>
    <link>https://dev.to/tony__vi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F133726%2Fe90d60df-893f-4447-98c1-28c2596bcf8c.png</url>
      <title>DEV Community: Anton Vinogradov</title>
      <link>https://dev.to/tony__vi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tony__vi"/>
    <language>en</language>
    <item>
      <title>You don't need sub-agents</title>
      <dc:creator>Anton Vinogradov</dc:creator>
      <pubDate>Tue, 16 Jun 2026 20:05:08 +0000</pubDate>
      <link>https://dev.to/tony__vi/you-dont-need-sub-agents-1eh7</link>
      <guid>https://dev.to/tony__vi/you-dont-need-sub-agents-1eh7</guid>
      <description>&lt;p&gt;Open any "agent architecture" post from the last year and you'll hit the same diagram: a box marked &lt;strong&gt;Orchestrator&lt;/strong&gt; at the top, arrows fanning down to a Researcher, a Coder, a Tester, a Reviewer — sometimes, God help us, a CEO agent. It's drawn beautifully. Gradient nodes, clean edges, the works. And it isn't an architecture. It's an org chart. You've seen this picture before; you've just never seen it perform.&lt;/p&gt;

&lt;h2&gt;
  
  
  We already ran this experiment. In 1975.
&lt;/h2&gt;

&lt;p&gt;Fred Brooks ran it on IBM's OS/360 and wrote it down in &lt;a href="https://en.wikipedia.org/wiki/The_Mythical_Man-Month" rel="noopener noreferrer"&gt;&lt;em&gt;The Mythical Man-Month&lt;/em&gt;&lt;/a&gt; in 1975: adding manpower to a late software project makes it later. The reason wasn't laziness, it was arithmetic. Every new person on a team adds communication paths, and those paths grow as n(n−1)/2 — so the coordination cost climbs faster than the help arrives. Two people, one line. Five people, ten lines. Ten people, forty-five.&lt;/p&gt;

&lt;p&gt;Now look at the swarm diagram again. The orchestrator's entire job is to hand out subtasks and then reconcile whatever comes back — which is to say, to &lt;em&gt;be&lt;/em&gt; the communication overhead Brooks warned you about. We took a fifty-year-old result about why throwing bodies at a problem doesn't scale, ported it to language models, drew it in a nicer tool, and called it an agent mesh. Progress, no?&lt;/p&gt;

&lt;h2&gt;
  
  
  Context doesn't survive delegation
&lt;/h2&gt;

&lt;p&gt;Here's the mechanism, minus the diagram. A sub-agent runs in its own isolated context window. When it finishes, it can't hand the parent its reasoning — only a compressed summary of it. Anthropic's own &lt;a href="https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents" rel="noopener noreferrer"&gt;context-engineering guide&lt;/a&gt; says exactly this: the sub-agent returns a condensed result while the detailed context that produced it stays trapped in a window nobody else can see.&lt;/p&gt;

&lt;p&gt;So to give each child what it needs, you persist state — to files, to a database, to git — and re-read it at the top of every sub-agent. That's not an architecture either. It's plumbing. You are building and maintaining infrastructure whose only purpose is to recreate the shared context a single loop already has, for free, precisely because it never split the context in the first place.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The tell is the workaround. Go read the &lt;a href="https://github.com/anthropics/claude-code/issues/5812" rel="noopener noreferrer"&gt;Claude Code issues&lt;/a&gt; and you'll find people having a sub-agent write a temp state file, or commit to git, just so the parent can rediscover what the child was doing. &lt;a href="https://blog.cloudflare.com/ai-code-review" rel="noopener noreferrer"&gt;Cloudflare's code-review pipeline&lt;/a&gt; does the disciplined version of the same thing — a shared context file plus per-file patch files written to disk — specifically so they don't have to pass the whole merge request to seven reviewers seven times. When the fix for "the agents can't see each other's context" is "write the context to disk and have everyone re-read it," you've reinvented the shared memory you threw away. Slower, and with more YAML.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And the tokens. Splitting work across agents means re-passing context across every boundary, so you pay multiples of the token bill. The orchestrator isn't free either — it has to read and reconcile every child's output — so a fan-out of N agents tends to cost about N+1, not N. More moving parts, more tokens, more places to fail, all to produce the answer one loop would've produced alone. Expensive bullshit with a gradient fill.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ask the people actually shipping agents
&lt;/h2&gt;

&lt;p&gt;Start with the people who've actually shipped this. &lt;a href="https://posthog.com/blog/8-learnings-from-1-year-of-agents-posthog-ai" rel="noopener noreferrer"&gt;PostHog&lt;/a&gt; spent a year building agents in production and landed on the same conclusion: a single loop beats sub-agents, because every layer of delegation loses context and chips away at the model's ability to chain tools and self-correct.&lt;/p&gt;

&lt;p&gt;The loudest voice against multi-agent systems, though, is Cognition — yes, the company that builds Devin, a coding agent. In June 2025 their Walden Yan published &lt;a href="https://cognition.ai/blog/dont-build-multi-agents" rel="noopener noreferrer"&gt;"Don't Build Multi-Agents"&lt;/a&gt;, and the core point was the one above: parallel agents make conflicting implicit decisions because none of them can see what the others assumed. Ask two sub-agents to build the same thing and you get a bird in one art style and a background in another. (His Flappy-Bird example, not mine.)&lt;/p&gt;

&lt;p&gt;Then watch what happened next. Ten months later, April 2026, Yan shipped the &lt;a href="https://cognition.ai/blog/multi-agents-working" rel="noopener noreferrer"&gt;follow-up&lt;/a&gt; — multi-agents that &lt;em&gt;do&lt;/em&gt; work in production. Read the conditions. The pattern that works keeps the writes single-threaded: many agents can contribute intelligence, but one thread commits. The free-for-all swarm, arbitrary agents negotiating with each other, he still files under distraction. The biggest proponent's "we figured it out" turns out to be "we stopped letting them step on each other."&lt;/p&gt;

&lt;p&gt;Now the objection you're loading: &lt;em&gt;but &lt;a href="https://www.anthropic.com/engineering/built-multi-agent-research-system" rel="noopener noreferrer"&gt;Anthropic's research system&lt;/a&gt; beat a single agent by 90.2%.&lt;/em&gt; It did — on research. That setup burns roughly 15× the tokens of a chat, and token usage alone explains about 80% of the performance variance. Translated: the win is mostly "we paid for far more compute," parallelized across independent search directions where that's legal. If your task decomposes into independent, read-only directions and the answer is worth the bill, do it. If it doesn't, you're paying that multiple to re-pass context one loop would've held for nothing. Read the conditions.&lt;/p&gt;

&lt;p&gt;And when these systems break, they break in a specific way. The Berkeley &lt;a href="https://arxiv.org/abs/2503.13657" rel="noopener noreferrer"&gt;MAST study&lt;/a&gt; (Cemri et al., 2025) annotated over 1,600 execution traces across seven popular frameworks — AutoGen, ChatDev, CrewAI, the usual suspects — and clocked failure rates from 41% all the way to 87%. The failures cluster around design and coordination: system-design issues and inter-agent misalignment, agents talking past each other and never agreeing the job is done — not the model being dumb. The authors say it straight: a better base model will not fix this, because it isn't a model problem. It's an org-chart problem wearing an architecture diagram. Notice the pattern?&lt;/p&gt;

&lt;h2&gt;
  
  
  Where you actually parallelize
&lt;/h2&gt;

&lt;p&gt;When two jobs are genuinely independent, parallelize them — as two separate loops, each with its own full context and no orchestrator in the middle. That isn't a multi-agent system. That's running two programs.&lt;/p&gt;

&lt;p&gt;The line is that simple. Parallelize independent work as separate loops. Never stand up an orchestrator to split, then reassemble, a single train of thought — because the reassembly is the entire cost, and one loop never had to pay it. A single loop self-corrects across a hundred steps in one message history, checkpoints and resumes from any step if you put something like &lt;a href="https://temporal.io" rel="noopener noreferrer"&gt;Temporal&lt;/a&gt; under it, and leaves one clean linear trace instead of a group chat you get to forensically reconstruct at 2am.&lt;/p&gt;

&lt;p&gt;The better tool already exists. It's the loop you skipped past on your way to drawing the mesh.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>llm</category>
      <category>architecture</category>
    </item>
  </channel>
</rss>
