<?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: Pranav Singh</title>
    <description>The latest articles on DEV Community by Pranav Singh (@pranav_singh_6d39e7bd43d0).</description>
    <link>https://dev.to/pranav_singh_6d39e7bd43d0</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%2F3936248%2Fc4fe2fbd-82bd-4ede-9152-e359fc11e2cd.png</url>
      <title>DEV Community: Pranav Singh</title>
      <link>https://dev.to/pranav_singh_6d39e7bd43d0</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pranav_singh_6d39e7bd43d0"/>
    <language>en</language>
    <item>
      <title>Building a Virtual IPL Captain with 5 Gemini Agents arguing Strategy (Google ADK Hackathon)</title>
      <dc:creator>Pranav Singh</dc:creator>
      <pubDate>Sun, 17 May 2026 12:47:08 +0000</pubDate>
      <link>https://dev.to/pranav_singh_6d39e7bd43d0/building-a-virtual-ipl-captain-with-5-gemini-agents-arguing-strategy-google-adk-hackathon-381m</link>
      <guid>https://dev.to/pranav_singh_6d39e7bd43d0/building-a-virtual-ipl-captain-with-5-gemini-agents-arguing-strategy-google-adk-hackathon-381m</guid>
      <description>&lt;p&gt;Have you ever yelled at your TV during an IPL match, wondering why the captain gave the ball to a part-timer in the 18th over?&lt;/p&gt;

&lt;p&gt;For the Google Gemini Hackathon, I decided to build a system that answers that exact question. I built IPL Captain AI — an agentic AI think-tank that ingests live match states and makes data-driven tactical decisions the way MS Dhoni, Rohit Sharma, or Pat Cummins would.&lt;/p&gt;

&lt;p&gt;But I didn't want just a simple LLM wrapper. I wanted to see the reasoning behind the call. To do this, I built a system where 5 distinct Gemini agents actively debate with each other before making a final decision.&lt;/p&gt;

&lt;p&gt;Here's how I built it using the newly released Google Agent Development Kit (ADK) and Gemini 2.5 Flash.&lt;/p&gt;

&lt;p&gt;🎯 The Problem Statement&lt;br&gt;
Goal: Build an agentic AI system that acts as a virtual IPL captain — making the next tactical decision in a live match.&lt;/p&gt;

&lt;p&gt;A user inputs the current match state (or pastes a live Cricbuzz URL). The system must reply with:&lt;/p&gt;

&lt;p&gt;The next decision — who bowls, who comes in to bat, field setup, or when to deploy the Impact Player.&lt;br&gt;
The reasoning — explained in cricket-language a real commentator would use.&lt;br&gt;
The dissenting view — an internal debate where a "Devil's Advocate" agent challenges the strategy before committing to the call.&lt;br&gt;
🏗️ The Architecture: A 5-Agent Think Tank&lt;br&gt;
Using Google ADK, I orchestrated 5 distinct agents. I split the pipeline into two phases using ADK's ParallelAgent and SequentialAgent constructs.&lt;/p&gt;

&lt;p&gt;Phase 1: Intelligence Gathering (Parallel)&lt;br&gt;
Before making a decision, a captain looks at the numbers and the pitch. These run simultaneously:&lt;/p&gt;

&lt;p&gt;📊 Stats Analyst: Has access to a custom database tool to pull head-to-head records, strike rates, and venue history.&lt;br&gt;
🌤️ Pitch &amp;amp; Conditions Analyst: Uses an OpenWeatherMap API tool to check humidity and dew factors, assessing how the pitch will behave in the second innings.&lt;br&gt;
🔍 Live Scout: Uses Google Search grounding to pull live news and current match conditions from the web.&lt;br&gt;
Phase 2: The Debate Loop (Sequential)&lt;br&gt;
This is where the magic happens.&lt;/p&gt;

&lt;p&gt;🎯 Strategist (The Captain): Looks at the intelligence from Phase 1 and proposes a tactical plan, backed by a mathematical Win Probability Calculator tool.&lt;br&gt;
😈 Devil's Advocate: Its only job is to find flaws in the Strategist's plan. It forces the system to consider counterfactuals ("What if we save Bumrah for the 20th over?").&lt;br&gt;
🔄 Strategist Revision: The Strategist reviews the dissent and either defends the original call with data or revises the plan.&lt;br&gt;
Phase 3: Output&lt;br&gt;
🎙️ Match Commentator: Takes the entire raw agent trace and synthesizes it into engaging, jargon-free cricket commentary (think Harsha Bhogle meets Ravi Shastri).&lt;br&gt;
🛠️ The Tech Stack &amp;amp; Tools&lt;br&gt;
Google ADK (Agent Development Kit): The backbone of the orchestration.&lt;br&gt;
Gemini 2.5 Flash: Used for all agent nodes due to its incredible speed, low latency, and massive context window.&lt;br&gt;
Function Calling: Built 4 custom Python tools for the agents to invoke:&lt;br&gt;
get_weather_conditions (API integration)&lt;br&gt;
calculate_win_probability (Math model)&lt;br&gt;
get_cricket_stats (Data lookup)&lt;br&gt;
live_scraper (URL parsing)&lt;br&gt;
Google Search Grounding: Built-in ADK tool for live, hallucination-free web data.&lt;br&gt;
Streamlit: For a premium, dark-themed UI that visualizes the agent pipeline and the debate trace.&lt;br&gt;
💡 Key Learnings &amp;amp; Challenges&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Tool Conflicts&lt;br&gt;
I learned the hard way that the Gemini API currently doesn't allow mixing built-in tools (like google_search) and custom function calling in the exact same request. To solve this, I separated the Live Scout (Google Search only) from the Stats Analyst (custom functions only) and ran them in parallel using ADK's ParallelAgent.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Multi-Agent Debate produces better LLM results&lt;br&gt;
By forcing the LLM to act as a Devil's Advocate and critique its own prior output, the final tactical decisions became infinitely more robust. Instead of generic advice ("bowl your best bowler"), the system started producing hyper-specific tactical nuances ("bowl the off-spinner now because the left-hander is on strike, despite the short boundary").&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;🚀 The Result&lt;br&gt;
When you input a scenario — say, CSK defending 18 runs in the final over — you don't just get an answer. You watch a live debate where one agent suggests bowling a spinner, the Devil's Advocate screams about the heavy dew factor fetched via the API, and the Captain ultimately makes the right call.&lt;/p&gt;

&lt;p&gt;You can check out the full open-source code and run it yourself here: 👉 GitHub: [&lt;a href="https://github.com/pranav2983/google-agentic-premiere-league" rel="noopener noreferrer"&gt;https://github.com/pranav2983/google-agentic-premiere-league&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;If you are building multi-agent systems, I highly recommend checking out Google ADK. It makes complex sequential/parallel orchestration a breeze!&lt;/p&gt;

&lt;p&gt;Have you built anything with the new Gemini 2.5 tools? Let me know in the comments!&lt;/p&gt;

&lt;h1&gt;
  
  
  gdgcloudpune
&lt;/h1&gt;

</description>
      <category>agents</category>
      <category>devchallenge</category>
      <category>gemini</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
