Inspiration
In the fast-paced world of Dota 2, the only constant is change. Every few months, a new "Patch" is released, fundamentally altering hero strengths, item costs, and map dynamics. Traditional Machine Learning models struggle here; they are trained on historical data that becomes obsolete the moment a patch notes PDF is published.
What it does
Visual Draft Recognition: Users upload a screenshot of the "Pick/Ban" phase. Using Gemini's Vision capabilities, the agent identifies all 10 heroes on the screen.
Real-Time Data Synthesis: The agent fetches live professional statistics via the OpenDota API, calculating recent form and momentum for each team.
Context-Aware Analysis: Unlike static models, it cross-references the current draft with the latest Patch Notes to determine if a team is playing "into the meta" or relying on nerfed strategies.
How we built it
We didn't want to build just another "prediction bot." We wanted to build a thinking agent.
The core of Esports Oracle is a "Two-Step Brain" architecture. We quickly realized that asking an AI to "look at a picture and do math at the same time" was like asking a person to solve a Rubik's cube while watching a movie—it’s a lot for one breath. So, we split the logic:
The Eyes: We used Gemini 2.0 Flash for the vision part. We fed it messy screenshots from Twitch and game captures, and it worked like a charm, identifying heroes even when the UI was cluttered.
The Brain: For the heavy lifting, we used Gemini 3 Pro-preview. We built a custom Python "Scout" that talks to the OpenDota API. Instead of just giving the AI raw logs, our Python code pre-calculates the "boring" stuff like average game length and win rates. This lets the AI focus on being a strategist, not a calculator.
The Memory: We used Context Injection to give the agent the "meta." We literally handed it the latest patch notes as a text file. This means the second a new patch drops, our agent is already smarter than any ML model that needs days of retraining.
The Interface: We wrapped everything in Streamlit. We wanted something that looked like a professional coach's dashboard—clean, fast, and data-heavy
Challenges we ran into
The primary technical hurdle was the Multimodal Tool-Use Conflict. We discovered that the API currently restricts calling external functions (Tools) while simultaneously processing image bytes in a single request. This resulted in 400 INVALID_ARGUMENT errors
Accomplishments that we're proud of
Zero-Shot Meta Adaptation: Our agent can "understand" a new patch instantly just by reading a text file, something traditional ML models require weeks of retraining to achieve. High-Fidelity Vision: Successfully identifying Dota 2 heroes from low-resolution Twitch screenshots
What we learned
it was a pretty hard to build without a really clear idea from scratch but i like it
What's next for Esports_Oracle
Real-time Video Stream Analysis: Moving from screenshots to analyzing live Twitch/YouTube streams to provide "Live Win Probability" graphs. Multi-Game Support: Expanding the agent's knowledge base to include Counter-Strike 2 and League of Legends. Pro-Player "Pulse": Integrating Google Search Grounding to automatically scan social media for player health updates or roster changes minutes before a match begins
Log in or sign up for Devpost to join the conversation.