A newer version of the Gradio SDK is available: 6.19.0
metadata
title: Dota Draft
emoji: ⚔️
colorFrom: red
colorTo: gray
sdk: gradio
sdk_version: 6.18.0
python_version: '3.13'
app_file: app.py
pinned: false
tags:
- track:wood
- sponsor:openai
- achievement:agent
Dota Draft
Dota Draft is an AI-assisted drafting workbench for Dota 2 Captains Mode. It lets a player walk through the full pick/ban sequence, record both teams' drafts, and generate draft recommendations from a small-model chat-completions agent backed by OpenDota MCP context.
Build Small submission
- Track: Thousand Token Wood (
track:wood) - Sponsor prize: Best Use of Codex (
sponsor:openai) - Bonus badge: Best Agent (
achievement:agent) - Demo video: https://www.youtube.com/shorts/VIB_FRXADg8?feature=share
- Social post: https://x.com/asusevski/status/2066671518193532979
What it does
- Initialize the draft with side selection and first drafting team.
- Step through the full 20-action Captains Mode pick/ban order.
- Record picks and bans for both teams.
- Generate a structured backend payload containing the current picks, bans, sides, player IDs, and unavailable heroes after each draft event.
- When it is your turn, call an OpenAI-compatible small model through the Hugging Face Router and combine that with OpenDota MCP data to recommend a pick or ban.
Tech
The app is a Gradio Space. The draft UI is implemented in app.py, the recommendation agent lives in agent.py, and the OpenDota MCP connection is defined in mcp.py.
The default model is Qwen/Qwen3.6-27B:featherless-ai, which is under the Build Small 32B parameter cap. Runtime configuration is provided through environment variables such as OPENAI_API_KEY, OPENAI_MODEL, and OPENDOTA_API_KEY.