<?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: Yash Vasudeva</title>
    <description>The latest articles on DEV Community by Yash Vasudeva (@yash_vasudeva).</description>
    <link>https://dev.to/yash_vasudeva</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%2F4218488%2Ff3d0d2d1-f41d-4625-b6c6-8067c766e5c6.png</url>
      <title>DEV Community: Yash Vasudeva</title>
      <link>https://dev.to/yash_vasudeva</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yash_vasudeva"/>
    <language>en</language>
    <item>
      <title>SWARM: What Happens When AI Users Collide?</title>
      <dc:creator>Yash Vasudeva</dc:creator>
      <pubDate>Wed, 04 Nov 2026 10:46:41 +0000</pubDate>
      <link>https://dev.to/yash_vasudeva/swarm-what-happens-when-ai-users-collide-1500</link>
      <guid>https://dev.to/yash_vasudeva/swarm-what-happens-when-ai-users-collide-1500</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/mlh-hackathon"&gt;MLH x DEV Writing Challenge&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Most apps get tested one user at a time. Real apps don't get that luxury.&lt;/p&gt;

&lt;p&gt;Picture an online marketplace with exactly one item left in stock. Two buyers hit "purchase" at the same moment. Both checkouts go through, and now the store has sold two items it only had one of.&lt;/p&gt;

&lt;p&gt;Look at either buyer's session on its own and nothing is wrong. The bug only exists when the two of them show up together.&lt;/p&gt;

&lt;p&gt;That's the problem I wanted to dig into at &lt;strong&gt;HackCBS 9.0&lt;/strong&gt;, and it's how I ended up building &lt;strong&gt;SWARM&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;SWARM is a multi-agent AI testing system. It drops several goal-driven AI users into the same running application and watches for failures that only happen because those users interact.&lt;/p&gt;

&lt;p&gt;Rather than leaning on a fixed set of test scripts, SWARM spins up AI actors that each want something different:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Buyers fighting over limited inventory.&lt;/li&gt;
&lt;li&gt;Bargain hunters trying to squeeze every last bit out of a coupon.&lt;/li&gt;
&lt;li&gt;Fraud-minded users poking around refunds and disputes.&lt;/li&gt;
&lt;li&gt;Sellers managing orders and blocking people.&lt;/li&gt;
&lt;li&gt;Other actors testing the edges of what the app lets them do.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They all work on the same app and share the same state. That's where the interesting collisions come from, the kind a single-user test would probably never trigger.&lt;/p&gt;

&lt;p&gt;Spotting something suspicious is only half the job, though. SWARM records the requests, checks the app's invariants, replays suspicious sequences on a fresh copy of the application, and then removes actors one at a time to see whether the failure really depends on them interacting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The core idea: AI agents explore, executable checks verify.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I ran a controlled evaluation with Groq's &lt;code&gt;openai/gpt-oss-120b&lt;/code&gt;: 10 AI sessions across three held-out seeds. SWARM found three distinct, verified interaction failures that the isolated-agent baseline missed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inventory overselling:&lt;/strong&gt; Two buyers bought an item when only one unit existed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Duplicate coupon redemption:&lt;/strong&gt; Two sessions sharing an account redeemed the same coupon twice.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blocking bypass:&lt;/strong&gt; A buyer who'd been blocked could still message the seller through item questions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each of the three was independently reproduced, and in each reduced reproduction the bug needed interacting actors to appear.&lt;/p&gt;

&lt;p&gt;To be clear, this is a controlled evaluation of a prototype. I'm not claiming it finds every bug.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/yashvasudeva1/SWARM" rel="noopener noreferrer"&gt;https://github.com/yashvasudeva1/SWARM&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffg36ccfvqahupsutimk6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffg36ccfvqahupsutimk6.png" alt="SWARM Dashboard" width="800" height="611"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The SWARM dashboard showing benchmark results.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw1b6kbo4znrbhs3twb8i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw1b6kbo4znrbhs3twb8i.png" alt="Bazaar Marketplace" width="800" height="611"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Bazaar, the marketplace I built to test multi-user interactions.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The repo has the implementation, setup instructions, evaluation reports and the benchmark configuration, so you can run it yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Partner Technologies
&lt;/h2&gt;

&lt;p&gt;The main AI infrastructure behind SWARM is &lt;strong&gt;Groq&lt;/strong&gt;, which I used through its OpenAI-compatible API to run &lt;code&gt;openai/gpt-oss-120b&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Groq handles the thinking for every agent. Each one gets its role, its objective, its available tools and the relevant application context, and then decides what to do next.&lt;/p&gt;

&lt;p&gt;A few implementation details worth sharing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tool-based interaction:&lt;/strong&gt; Agents talk to the app through validated tools generated from its OpenAPI spec.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Controlled concurrency:&lt;/strong&gt; Python's async execution plus coordination barriers let several agents act on the shared state at the same time, in a way I can control and measure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Context management:&lt;/strong&gt; Agents keep the history that matters without their prompts growing forever.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Budget management:&lt;/strong&gt; Shared token limits, request pacing and cost tracking keep API usage in check.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Independent verification:&lt;/strong&gt; Suspicious sequences get replayed on a separate app instance, with no extra LLM decision involved.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The hardest and most fun engineering problem was getting independent AI decisions to land on shared state in a way that was controlled and repeatable. Agents that all do their own thing don't give you a result. Agents that collide on purpose, and do it measurably, do.&lt;/p&gt;

&lt;p&gt;The rest of the stack: Python, FastAPI, SQLite, SQLAlchemy, React, TypeScript and Tailwind CSS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hackathon Experience
&lt;/h2&gt;

&lt;p&gt;HackCBS 9.0 gave me a chance to take a problem I found genuinely interesting and turn it into a working system.&lt;/p&gt;

&lt;p&gt;My biggest takeaway: getting multiple AI agents to make decisions is the easy part. The real work is coordinating what they do, managing shared state, handling model failures, and reproducing a bug reliably enough that you can trust it. That's a whole different level of engineering.&lt;/p&gt;

&lt;p&gt;I also learned that a convincing AI demo isn't the same as a convincing engineering result. It's why I spent my time on the verification pipeline instead of just showing off AI-generated claims and calling them discoveries.&lt;/p&gt;

&lt;p&gt;If I had to sum it up in one line: &lt;strong&gt;building something that works matters, but being able to show why it works matters just as much.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Huge thanks to the organisers and to everyone else who hacked alongside me. It made the whole weekend.&lt;/p&gt;

&lt;p&gt;SWARM is still a prototype, and there's a lot left to explore. I'm looking forward to improving it and pushing the idea further.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project:&lt;/strong&gt; &lt;a href="https://github.com/yashvasudeva1/SWARM" rel="noopener noreferrer"&gt;https://github.com/yashvasudeva1/SWARM&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqieaq268zfzv5vcowjjd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqieaq268zfzv5vcowjjd.png" alt=" " width="799" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  HackCBS #MLH #AI #MultiAgentSystems #SoftwareTesting
&lt;/h1&gt;

</description>
      <category>mlhacks</category>
      <category>devchallenge</category>
      <category>hackathon</category>
    </item>
  </channel>
</rss>
