<?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: Abhinav Ayyagari</title>
    <description>The latest articles on DEV Community by Abhinav Ayyagari (@scorp2006).</description>
    <link>https://dev.to/scorp2006</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%2F4192333%2Fd8b06442-68ff-4554-a51b-a08f459afc6d.jpg</url>
      <title>DEV Community: Abhinav Ayyagari</title>
      <link>https://dev.to/scorp2006</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/scorp2006"/>
    <language>en</language>
    <item>
      <title>From 12% to 38%: How a Graph Turned Claude Subagents Into a Team</title>
      <dc:creator>Abhinav Ayyagari</dc:creator>
      <pubDate>Sun, 18 Oct 2026 16:43:09 +0000</pubDate>
      <link>https://dev.to/scorp2006/from-12-to-38-how-a-graph-turned-claude-subagents-into-a-team-1h3n</link>
      <guid>https://dev.to/scorp2006/from-12-to-38-how-a-graph-turned-claude-subagents-into-a-team-1h3n</guid>
      <description>&lt;h2&gt;
  
  
  Please go through it entirely 🫠
&lt;/h2&gt;

&lt;p&gt;Every time I ask Claude to handle several tasks at once, it does something impressive. It spawns subagents, gives each one a piece of the work, and hands me back a neat summary.&lt;/p&gt;

&lt;p&gt;But when those subagents work on &lt;strong&gt;different features of the same project&lt;/strong&gt;, the summary hides a problem. Their changes overlap. One edits a file another depends on. Two touch the same imports. So I end up reading both outputs and merging them myself, or spinning up a &lt;strong&gt;third agent&lt;/strong&gt; whose only job is cleaning up after the first two.&lt;/p&gt;

&lt;p&gt;I wasn't delegating anymore. I was reviewing and merging.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters now
&lt;/h2&gt;

&lt;p&gt;We're moving into a world of &lt;strong&gt;autonomous agents&lt;/strong&gt;: agents that plan, split work, and run without a human watching every step. Multi-agent systems are how serious work is starting to get done.&lt;/p&gt;

&lt;p&gt;But the way we coordinate them today, with a lead agent handing out tasks and reading back summaries, wasn't designed for helpers that work &lt;strong&gt;at the same time, on the same thing&lt;/strong&gt;. If every parallel run needs a human or a third agent to merge it, it isn't really autonomous.&lt;/p&gt;

&lt;p&gt;And I’m lazy enough to hate that extra verification work, so I started researching.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the research says
&lt;/h2&gt;

&lt;p&gt;Researchers studying multi-agent systems keep reaching the same conclusion:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Anthropic&lt;/strong&gt; studied agents working together and concluded: &lt;em&gt;"Coordination doesn't naturally emerge from stronger intelligence nor alignment at the individual level."&lt;/em&gt; [1]&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Berkeley researchers (MAST)&lt;/strong&gt; analyzed over 1,600 traces from 7 popular multi-agent frameworks. They found that &lt;em&gt;"performance gains on popular benchmarks are often minimal,"&lt;/em&gt; and catalogued 14 failure modes in three groups, one of them &lt;strong&gt;inter-agent misalignment&lt;/strong&gt;. [2]&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;In real projects,&lt;/strong&gt; a study of over 142,000 pull requests made by AI coding agents found a &lt;strong&gt;27.67% merge-conflict rate&lt;/strong&gt;. [3]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The idea that changed my direction came from Anthropic's own write-up. Their agents worked through &lt;em&gt;"a shared forum and self-hosted repository,"&lt;/em&gt;(basically a space where they can discuss and buildup on) and they suggest that &lt;em&gt;"a central forum in which agents can agree on best practices and protocols"&lt;/em&gt; could help. [1] Claude Code's agent teams follow the same thinking. Team lead spawns teammates. They share a task list of work items that teammates claim and complete, and they message each other directly using tools. And task claiming &lt;em&gt;"uses file locking to prevent race conditions."&lt;/em&gt; Its docs still warn: &lt;em&gt;"Two teammates editing the same file leads to overwrites."&lt;/em&gt; [4]&lt;/p&gt;

&lt;p&gt;So agents need a shared space. &lt;strong&gt;But what should that space be?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The idea
&lt;/h2&gt;

&lt;p&gt;What if that shared space was a &lt;strong&gt;graph&lt;/strong&gt;, one that doesn't just &lt;em&gt;store&lt;/em&gt; what agents say, but &lt;em&gt;enforces&lt;/em&gt; the rules between them?&lt;/p&gt;

&lt;p&gt;A graph database stores things and the relationships between them. A function &lt;em&gt;calls&lt;/em&gt; another function. A file &lt;em&gt;imports&lt;/em&gt; a module. An agent &lt;em&gt;owns&lt;/em&gt; a piece of code. A fact &lt;em&gt;comes from&lt;/em&gt; a source. Relationships are stored directly, every answer comes with a path that explains it, and questions like "who is working on what this depends on?" are a single query.&lt;/p&gt;

&lt;p&gt;So the shared space would hold:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ownership:&lt;/strong&gt; one agent at a time per piece of code, handed over cleanly when it's done.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Facts with sources:&lt;/strong&gt; a teammate's claim counts only if it links back to where it came from.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A live map of the project:&lt;/strong&gt; who is working on what, and what depends on what.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the graph handles that, subagents can &lt;strong&gt;finish and combine their own work&lt;/strong&gt;, with no third agent and no human merging afterwards.&lt;/p&gt;

&lt;h2&gt;
  
  
  The irony, and why I didn't stop there
&lt;/h2&gt;

&lt;p&gt;The irony is that this idea came out of my research sessions &lt;em&gt;with Claude&lt;/em&gt;. But you can't build on an AI's suggestion blindly. So I went looking for proof.&lt;/p&gt;

&lt;p&gt;Most multi-agent work is &lt;strong&gt;coding&lt;/strong&gt; or &lt;strong&gt;reaching a decision together&lt;/strong&gt;, so I picked the public benchmarks built for exactly those:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HiddenBench (ICML 2026):&lt;/strong&gt; facts are split across a team of agents. The authors report that &lt;em&gt;"multi-agent LLMs achieve only 30.1% accuracy under distributed information,"&lt;/em&gt; while a single agent with all the facts reaches about &lt;strong&gt;80.7%&lt;/strong&gt;. [5]&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CooperBench (2026):&lt;/strong&gt; two coding agents build features in the same codebase. The authors found a &lt;em&gt;"curse of coordination"&lt;/em&gt;: agents average about &lt;strong&gt;30% lower success&lt;/strong&gt; when paired than when working alone, with channels &lt;em&gt;"jammed with vague, ill-timed, and inaccurate messages."&lt;/em&gt; [6]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I tested properly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the same model in every setup,&lt;/li&gt;
&lt;li&gt;every rule written down &lt;strong&gt;before&lt;/strong&gt; running anything,&lt;/li&gt;
&lt;li&gt;a held-out test set,&lt;/li&gt;
&lt;li&gt;and fair controls, including a placebo.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The results
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;HiddenBench, 40 held-out tasks (Claude Haiku 5.5):&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setup&lt;/th&gt;
&lt;th&gt;Correct team decisions&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Agents chatting normally&lt;/td&gt;
&lt;td&gt;15%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Private notepad (placebo)&lt;/td&gt;
&lt;td&gt;12%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shared board, no source checking&lt;/td&gt;
&lt;td&gt;12%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Shared graph with source-checked facts&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;38%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The graph setup beat the placebo with p = 0.006.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CooperBench, 45 coding task pairs (Claude Sonnet 5.5):&lt;/strong&gt; the two agents' work merged cleanly &lt;strong&gt;35 times out of 45&lt;/strong&gt; with the graph, versus &lt;strong&gt;22&lt;/strong&gt; when they coordinated by chat (p = 0.002). No third agent did the merging.&lt;/p&gt;

&lt;p&gt;The discovery that shaped everything after: &lt;strong&gt;a shared board without source checks scored exactly the same as the placebo.&lt;/strong&gt; A shared space on its own wasn't enough. &lt;strong&gt;A shared space with enforced rules was.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  From research to Nodes
&lt;/h2&gt;

&lt;p&gt;The results told me what the architecture had to be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;One graph per project.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ownership decided atomically,&lt;/strong&gt; so two agents can never both win.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Facts that carry their sources.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A gate&lt;/strong&gt; every agent passes before it acts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That became &lt;strong&gt;Nodes&lt;/strong&gt;, an &lt;strong&gt;MCP server you plug in at the root of any repo&lt;/strong&gt;, used by the whole team. Run &lt;code&gt;nodes init&lt;/code&gt;, and it reads your code and git history into a FalkorDB graph. In Claude Code, it also enforces the rules automatically through hooks.&lt;/p&gt;

&lt;p&gt;While your helpers run in parallel, Nodes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;gives each piece of code &lt;strong&gt;one owner at a time&lt;/strong&gt;, and hands it over when the work is done;&lt;/li&gt;
&lt;li&gt;makes helpers &lt;strong&gt;wait instead of overwriting&lt;/strong&gt;, and wakes them the moment the code frees up;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;catches deadlocks&lt;/strong&gt; (helpers waiting on each other) as a cycle in the graph;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;marks unchecked claims as unverified,&lt;/strong&gt; so teammates don't act on them as fact;&lt;/li&gt;
&lt;li&gt;shows everything &lt;strong&gt;live on a dashboard&lt;/strong&gt;, in plain sentences, with the exact Cypher query behind every decision.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It has already run live with &lt;strong&gt;4 parallel Claude subagents on a real project&lt;/strong&gt;, managing their ownership, waits and hand-offs as they worked.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this unlocks for autonomous agents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Parallel work that combines itself:&lt;/strong&gt; no human merging, no extra cleanup agent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Better team decisions:&lt;/strong&gt; 38% vs 12% when facts are spread across a team.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cheaper results:&lt;/strong&gt; on HiddenBench, each &lt;em&gt;correct&lt;/em&gt; decision cost &lt;strong&gt;$0.32&lt;/strong&gt; with the graph, versus &lt;strong&gt;$0.56&lt;/strong&gt; with plain chat and &lt;strong&gt;$0.80&lt;/strong&gt; with the placebo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust you can check:&lt;/strong&gt; helpers act on facts with sources, not on each other's guesses.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The benefits that came along naturally
&lt;/h2&gt;

&lt;p&gt;Things I didn't set out to build, but got from using a graph:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Every decision explains itself:&lt;/strong&gt; the path and the query are right there.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full replay:&lt;/strong&gt; watch any run again, step by step.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Project memory:&lt;/strong&gt; a new helper starts out knowing the code, its history, and who worked on what.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scale:&lt;/strong&gt; 100 agents competing for the same code produced &lt;strong&gt;zero double-claims&lt;/strong&gt;, and conflict checks take &lt;strong&gt;2 to 4 ms&lt;/strong&gt; at the median on a 15,700-node codebase.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proof that the product is what I tested:&lt;/strong&gt; all &lt;strong&gt;4,916&lt;/strong&gt; recorded calls from the experiments, replayed through the finished product, returned exactly the same results.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I learned
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;I started with a belief that I am going to do something more than just finish what's asked for&lt;/strong&gt;. The most valuable thing I did was refuse to trust Claude blindly. Well I always wanted to do much more than research every time, and this time I had the opportunities to check and &lt;strong&gt;verify my claims by performing public bench marks&lt;/strong&gt; on an architecture that &lt;em&gt;I have designed&lt;/em&gt;. I had real joy when my architecture scored better than the baseline. Well I really want to write an extended research paper in fields of those public benches and submit it &lt;strong&gt;(I am open to learn so I would love if you can flag anomalies and educate me)&lt;/strong&gt;, but sadly arXiv needs an endorsement for first-time authors and hopefully one day I reach that level. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nodes&lt;/strong&gt; &lt;em&gt;is open source: &lt;a href="https://github.com/scorp2006/Nodes" rel="noopener noreferrer"&gt;https://github.com/scorp2006/Nodes&lt;/a&gt;. Built for Graph Hacks by WeMakeDevs × FalkorDB.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Anthropic, &lt;em&gt;Patterns and problems in emerging multiagent systems&lt;/em&gt;, Aug 13, 2026. &lt;a href="https://www.anthropic.com/research/multiagent-systems" rel="noopener noreferrer"&gt;https://www.anthropic.com/research/multiagent-systems&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Cemri, Pan, Yang et al., &lt;em&gt;Why Do Multi-Agent LLM Systems Fail?&lt;/em&gt;, arXiv:2503.13657. &lt;a href="https://arxiv.org/abs/2503.13657" rel="noopener noreferrer"&gt;https://arxiv.org/abs/2503.13657&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Ogenrwot &amp;amp; Businge, &lt;em&gt;AgenticFlict: A Large-Scale Dataset of Merge Conflicts in AI Coding Agent Pull Requests on GitHub&lt;/em&gt;, AIware 2026, arXiv:2604.03551. &lt;a href="https://arxiv.org/abs/2604.03551" rel="noopener noreferrer"&gt;https://arxiv.org/abs/2604.03551&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Claude Code documentation, &lt;em&gt;Orchestrate teams of Claude Code sessions&lt;/em&gt;. &lt;a href="https://code.claude.com/docs/en/agent-teams" rel="noopener noreferrer"&gt;https://code.claude.com/docs/en/agent-teams&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Li, Naito &amp;amp; Shirado, &lt;em&gt;Systematic Failures in Collective Reasoning under Distributed Information in Multi-Agent LLMs&lt;/em&gt; (HiddenBench), ICML 2026, arXiv:2505.11556. &lt;a href="https://arxiv.org/abs/2505.11556" rel="noopener noreferrer"&gt;https://arxiv.org/abs/2505.11556&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Khatua, Zhu, Tran et al., &lt;em&gt;CooperBench: Why Coding Agents Cannot be Your Teammates Yet&lt;/em&gt;, arXiv:2601.13295. &lt;a href="https://arxiv.org/abs/2601.13295" rel="noopener noreferrer"&gt;https://arxiv.org/abs/2601.13295&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>mcp</category>
      <category>falkordb</category>
    </item>
  </channel>
</rss>
