--- 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`.