<?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: Arpit Pandey</title>
    <description>The latest articles on DEV Community by Arpit Pandey (@arpitpandey0307).</description>
    <link>https://dev.to/arpitpandey0307</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3875916%2Fdc737532-0531-4a44-ab2b-30225f69538c.jpg</url>
      <title>DEV Community: Arpit Pandey</title>
      <link>https://dev.to/arpitpandey0307</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arpitpandey0307"/>
    <language>en</language>
    <item>
      <title>StadiumOS — A Multi-Agent Coordination Engine!</title>
      <dc:creator>Arpit Pandey</dc:creator>
      <pubDate>Wed, 15 Apr 2026 21:08:54 +0000</pubDate>
      <link>https://dev.to/arpitpandey0307/stadiumos-a-multi-agent-coordination-engine-374g</link>
      <guid>https://dev.to/arpitpandey0307/stadiumos-a-multi-agent-coordination-engine-374g</guid>
      <description>&lt;p&gt;Building StadiumOS: A Real-Time Multi-Agent AI System for Crowd Management&lt;/p&gt;

&lt;p&gt;Have you ever wondered how megastructures like sports stadiums handle tens of thousands of people moving around simultaneously? Between food court rushes, security bottlenecks, and exit gate stampedes, stadium operations are incredibly complex to manage.&lt;/p&gt;

&lt;p&gt;I set out to tackle this problem by building StadiumOS — a multi-agent coordination engine capable of simulating and optimizing stadium operations in real time.&lt;/p&gt;

&lt;p&gt;The Architecture: A Brain for the Stadium&lt;/p&gt;

&lt;p&gt;This wasn’t just a simple web app. I wanted to build a true system-level intelligence platform. Here is the stack that powered it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Backend: Node.js and Express (Simulation Engine and REST API)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Database: In-memory caching with optional Firebase Firestore mirroring&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Frontend: Next.js 16 with Tailwind CSS and Leaflet.js&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Brain: A custom Multi-Agent Architecture&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;How the Multi-Agent System Works&lt;/p&gt;

&lt;p&gt;Instead of one monolithic AI trying to figure everything out, I decentralized the logic. StadiumOS runs a live simulation (ticking every 2 seconds) passing data to four independent AI Agents, each handling a specific domain:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Crowd Agent: Monitors zone densities to prevent overcrowding.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Write on Medium&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Vendor Agent: Analyzes food court queues against stall service rates to predict wait times.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security Agent: Keeps a rolling history of crowd spikes to detect anomalies and flag zones.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Transport Agent: Calculates net flow rates at gates to estimate clearance times during egress.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These four agents don’t make final decisions. Instead, they produce structured reports and pass them up to the Coordinator Engine.&lt;/p&gt;

&lt;p&gt;The Decision Coordinator&lt;/p&gt;

&lt;p&gt;The Coordinator acts as the central brain. It ingests the agent reports, runs them through priority-based rules, and outputs actionable recommendations.&lt;/p&gt;

&lt;p&gt;For example: if the Crowd Agent reports the South Stand is highly dense, and the Security Agent flags an unusual spike, the Coordinator immediately generates a Critical Priority Decision: “RESTRICT_ZONE — Halt ingress to South Stand temporarily.”&lt;/p&gt;

&lt;p&gt;The Dashboard&lt;/p&gt;

&lt;p&gt;To bring this all to life, I built a dark-mode Next.js dashboard. It features an interactive Leaflet map that dynamically changes marker sizes and colors based on zone loads. A polling hook fetches the latest agent reports and coordinator decisions every 2 seconds, displaying a real-time, priority-sorted feed of actions.&lt;/p&gt;

&lt;p&gt;Deployment and Takeaways&lt;/p&gt;

&lt;p&gt;To cap it off, I containerized the entire monorepo using a multi-stage Docker build, allowing the Express backend to serve the Next.js static build from a single container, and deployed it serverlessly to Google Cloud Run.&lt;/p&gt;

&lt;p&gt;Building a multi-agent architecture from scratch was an incredible challenge. It taught me how to decouple complex state, manage real-time tick-based simulations, and build prioritizing rule engines.&lt;/p&gt;

&lt;p&gt;Check out the code on my GitHub!&lt;/p&gt;

&lt;p&gt;GitHub Repo : &lt;a href="https://github.com/arpitpandey0307/Stadium-OS.git" rel="noopener noreferrer"&gt;https://github.com/arpitpandey0307/Stadium-OS.git&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Link to Live Deployment : &lt;a href="https://stadium-os-795750315067.us-central1.run.app/" rel="noopener noreferrer"&gt;https://stadium-os-795750315067.us-central1.run.app/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>node</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Built SmartDesk, a multi-agent AI system using Google ADK to automate tasks, scheduling, notes, and research end-to-end.</title>
      <dc:creator>Arpit Pandey</dc:creator>
      <pubDate>Wed, 15 Apr 2026 11:16:26 +0000</pubDate>
      <link>https://dev.to/arpitpandey0307/built-smartdesk-a-multi-agent-ai-system-using-google-adk-to-automate-tasks-scheduling-notes-and-4nlh</link>
      <guid>https://dev.to/arpitpandey0307/built-smartdesk-a-multi-agent-ai-system-using-google-adk-to-automate-tasks-scheduling-notes-and-4nlh</guid>
      <description>&lt;p&gt;When I signed up for the Google Cloud Gen AI Academy APAC 2026 Hackathon, the problem statement was clear:&lt;/p&gt;

&lt;p&gt;"Build a multi-agent AI system that helps users manage tasks, schedules, and information by interacting with multiple tools and data sources."&lt;/p&gt;

&lt;p&gt;Simple enough on paper. But building it taught me more about real-world AI systems than anything I'd done before. This is the full story — what I built, how I built it, the mistakes I made, and what I learned.&lt;/p&gt;

&lt;p&gt;The Problem I Chose to Solve&lt;/p&gt;

&lt;p&gt;Here's a stat that hit me hard when I was planning this project:&lt;/p&gt;

&lt;p&gt;The average knowledge worker spends 2.5 hours every day just organizing their work — not doing it. Switching between Notion for tasks, Google Calendar for scheduling, a notes app for summaries, and a browser tab for research.&lt;/p&gt;

&lt;p&gt;Every tool is smart on its own. But none of them talk to each other intelligently. You're the human glue between them.&lt;/p&gt;

&lt;p&gt;I wanted to build something that eliminates that. One conversational interface that handles everything end-to-end. You describe what you need in plain English — and a team of AI agents handles the rest.&lt;/p&gt;

&lt;p&gt;That's SmartDesk — your personal AI Chief of Staff.&lt;/p&gt;

&lt;p&gt;The Idea: One Prompt, Four Agents&lt;/p&gt;

&lt;p&gt;Instead of building a single AI assistant, I designed SmartDesk as a team of specialist agents, each owning one responsibility:&lt;/p&gt;

&lt;p&gt;✅ Task Agent — creates and manages tasks with priorities and deadlines&lt;br&gt;
📅 Calendar Agent — schedules events and blocks focus time with conflict detection&lt;br&gt;
📝 Notes Agent — captures summaries and action items automatically&lt;br&gt;
🔍 Research Agent — answers knowledge questions via Wikipedia&lt;/p&gt;

&lt;p&gt;A single prompt like this:&lt;/p&gt;

&lt;p&gt;"I have a product launch deadline this Friday. Block 2 hours of focus time daily, create tasks for design, development, and testing milestones, and save a project summary note."&lt;/p&gt;

&lt;p&gt;…triggers all four agents to execute their jobs in sequence, passing context to each other, and returns one clean consolidated response.&lt;/p&gt;

&lt;p&gt;No app switching. No manual entry. Just results.&lt;/p&gt;

&lt;p&gt;How It Works — The Architecture&lt;/p&gt;

&lt;p&gt;SmartDesk is built on Google ADK (Agent Development Kit) using a SequentialAgent pattern.&lt;/p&gt;

&lt;p&gt;Here's the full flow:&lt;/p&gt;

&lt;p&gt;User Input (natural language)&lt;br&gt;
        ↓&lt;br&gt;
Root Agent (smartdesk_root)&lt;br&gt;
  → saves prompt to shared state&lt;br&gt;
        ↓&lt;br&gt;
Sequential Workflow (smartdesk_workflow)&lt;br&gt;
  → Task Agent        writes task_output to state&lt;br&gt;
  → Calendar Agent    reads task_output, writes calendar_output&lt;br&gt;
  → Notes Agent       reads all outputs, writes notes_output&lt;br&gt;
  → Research Agent    checks if knowledge lookup needed&lt;br&gt;
  → Response Formatter synthesizes everything&lt;br&gt;
        ↓&lt;br&gt;
Final Response to User&lt;/p&gt;

&lt;p&gt;The key insight is shared state. Every agent reads from and writes to tool_context.state — a shared memory dictionary that flows through the entire pipeline. This is what makes true multi-agent coordination possible. Each agent builds on the work of the one before it.&lt;/p&gt;

&lt;p&gt;The Database&lt;/p&gt;

&lt;p&gt;All data is persisted in SQLite across four tables:&lt;/p&gt;

&lt;p&gt;tasks      → title, priority, deadline, status&lt;br&gt;&lt;br&gt;
events     → title, start_time, end_time&lt;br&gt;&lt;br&gt;
notes      → content, tags, created_at&lt;br&gt;&lt;br&gt;
agent_logs → agent_name, action, timestamp  ← my favorite&lt;/p&gt;

&lt;p&gt;That last table — agent_logs — logs every single agent action with a timestamp. During demos, watching it fill up in real-time is the most compelling way to show judges that genuine multi-agent coordination is happening.&lt;/p&gt;

&lt;p&gt;The Tech Stack&lt;br&gt;
Layer   Technology  Why I chose it&lt;br&gt;
Agent Framework Google ADK 1.14.0   Native Google Cloud integration, built-in Cloud Run deployment&lt;br&gt;
LLM Gemini 2.5 Flash (Vertex AI)    Fast inference for multi-step pipelines, no API key needed with ADK&lt;br&gt;
Database    SQLite  Zero configuration, perfect for hackathon demos&lt;br&gt;
External Knowledge  LangChain + Wikipedia   Bridges ADK with the LangChain tool ecosystem&lt;br&gt;
Deployment  Google Cloud Run    Serverless, one-command deploy via adk deploy cloud_run&lt;br&gt;
Auth    Google IAM Service Account  Least-privilege security&lt;br&gt;
Building It — Step by Step&lt;br&gt;
Setting Up the Environment&lt;/p&gt;

&lt;p&gt;I used Google Cloud Shell — a browser-based development environment with everything pre-installed. No local setup required.&lt;/p&gt;

&lt;p&gt;cd &amp;amp;&amp;amp; mkdir smartdesk &amp;amp;&amp;amp; cd smartdesk&lt;br&gt;
uv venv &amp;amp;&amp;amp; source .venv/bin/activate&lt;br&gt;
uv pip install -r requirements.txt&lt;/p&gt;

&lt;p&gt;The requirements.txt was simple:&lt;/p&gt;

&lt;p&gt;google-adk==1.14.0&lt;br&gt;
langchain-community==0.3.27&lt;br&gt;
wikipedia&lt;/p&gt;

&lt;p&gt;One thing I learned the hard way: wikipedia==1.4.8 doesn't exist. The version pin breaks the install. Remove the version and let pip grab the latest.&lt;/p&gt;

&lt;p&gt;Writing the Agents&lt;/p&gt;

&lt;p&gt;Each agent in Google ADK is defined with a name, model, instruction, tools, and an output_key:&lt;/p&gt;

&lt;p&gt;task_agent = Agent(&lt;br&gt;
    name="task_agent",&lt;br&gt;
    model=model_name,&lt;br&gt;
    description="Creates and manages tasks in the database.",&lt;br&gt;
    instruction="""&lt;br&gt;
    You are the Task Manager Agent for SmartDesk.&lt;br&gt;
    Based on the user's PROMPT, break it down into clear tasks.&lt;br&gt;
    Create each task using the create_task tool.&lt;br&gt;
    PROMPT: { PROMPT }&lt;br&gt;
    """,&lt;br&gt;
    tools=[create_task, get_all_tasks],&lt;br&gt;
    output_key="task_output"&lt;br&gt;
)&lt;/p&gt;

&lt;p&gt;The { PROMPT } syntax injects shared state values into agent instructions.&lt;/p&gt;

&lt;p&gt;The SequentialAgent&lt;br&gt;
smartdesk_workflow = SequentialAgent(&lt;br&gt;
    name="smartdesk_workflow",&lt;br&gt;
    sub_agents=[&lt;br&gt;
        task_agent,&lt;br&gt;
        calendar_agent,&lt;br&gt;
        notes_agent,&lt;br&gt;
        research_agent,&lt;br&gt;
        response_formatter&lt;br&gt;
    ]&lt;br&gt;
)&lt;/p&gt;

&lt;p&gt;The SequentialAgent handles execution order automatically.&lt;/p&gt;

&lt;p&gt;Key Challenges I Faced&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;SQLite Path on Cloud Run&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Error:&lt;/p&gt;

&lt;p&gt;"Fail to load 'smartdesk' module. unable to open database file"&lt;/p&gt;

&lt;p&gt;Fix:&lt;/p&gt;

&lt;h1&gt;
  
  
  Before
&lt;/h1&gt;

&lt;p&gt;DB_PATH = "smartdesk.db"&lt;/p&gt;

&lt;h1&gt;
  
  
  After
&lt;/h1&gt;

&lt;p&gt;DB_PATH = "/tmp/smartdesk.db"&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Service Account Name Too Short&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Error:&lt;/p&gt;

&lt;p&gt;ERROR: The account ID "lab2" does not have a length between 6 and 30.&lt;/p&gt;

&lt;p&gt;Fix: renamed to smartdesk-agent.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Git Push Rejection&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Error:&lt;/p&gt;

&lt;p&gt;error: failed to push some refs — Updates were rejected because the remote contains work that you do not have locally.&lt;/p&gt;

&lt;p&gt;Fix:&lt;/p&gt;

&lt;p&gt;git pull --rebase origin main&lt;br&gt;
git push&lt;br&gt;
The Demo — What Judges See&lt;/p&gt;

&lt;p&gt;Prompt:&lt;/p&gt;

&lt;p&gt;"I have a product launch deadline this Friday. Block 2 hours daily, create tasks for design, dev, and testing, and save a project summary note."&lt;/p&gt;

&lt;p&gt;Execution trace:&lt;/p&gt;

&lt;p&gt;smartdesk_root → task_agent → calendar_agent → notes_agent → research_agent → response_formatter&lt;/p&gt;

&lt;p&gt;Then showing agent_logs filling in real time — proof of real multi-agent coordination.&lt;/p&gt;

&lt;p&gt;What I Learned&lt;br&gt;
Shared state is the backbone of multi-agent systems.&lt;br&gt;
Observability matters more than output.&lt;br&gt;
Google ADK makes deployment trivially easy.&lt;br&gt;
Start with the demo, work backward.&lt;br&gt;
SQLite is underrated for AI demos.&lt;br&gt;
What's Next for SmartDesk&lt;br&gt;
🔌 Real MCP integrations — Google Calendar API, Notion, Slack&lt;br&gt;
🧠 Long-term memory — ChromaDB&lt;br&gt;
🗣️ Voice interface — faster-whisper&lt;br&gt;
📊 Analytics dashboard — agent_logs insights&lt;br&gt;
🤝 Team mode — multi-user collaboration&lt;br&gt;
Try It Yourself&lt;br&gt;
GitHub: &lt;a href="https://github.com/arpitpandey0307/smart-desk" rel="noopener noreferrer"&gt;https://github.com/arpitpandey0307/smart-desk&lt;/a&gt;&lt;br&gt;
Live Demo: &lt;a href="https://smartdesk-agent-456703325610.us-central1.run.app" rel="noopener noreferrer"&gt;https://smartdesk-agent-456703325610.us-central1.run.app&lt;/a&gt;&lt;br&gt;
Demo Video: &lt;a href="https://drive.google.com/file/d/17i04sEihCSWR1J7ioeOPM0dH4MoaxzQy/view" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/17i04sEihCSWR1J7ioeOPM0dH4MoaxzQy/view&lt;/a&gt;&lt;br&gt;
Final Thoughts&lt;/p&gt;

&lt;p&gt;Building SmartDesk taught me that the real power of multi-agent AI isn't in any single agent — it's in the coordination layer between them.&lt;/p&gt;

&lt;p&gt;The moment you design agents that pass context to each other, you stop building tools and start building systems.&lt;/p&gt;

&lt;p&gt;Built with Google ADK, Gemini 2.5 Flash, Vertex AI, SQLite, and Google Cloud Run.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>productivity</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
