Spaces:
Running
A newer version of the Gradio SDK is available: 6.20.0
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. A small language model is a good fit for this draft assistant because the task is narrow and highly structured: the model does not need broad open-ended world knowledge, it needs to rank a constrained hero pool against a compact draft state and the latest OpenDota context. Keeping the model small reduces latency, cost, and infrastructure requirements, which makes the app easier to run on a public CPU Space while still leaving the strategic reasoning in an inspectable prompt-and-tool loop.
Runtime configuration is provided through Space Secrets and environment variables:
OPENAI_API_KEY: Hugging Face token used by the OpenAI-compatible Hugging Face Router.HF_TOKEN: Hugging Face token available to Hub-aware libraries if needed.OPENAI_MODEL: optional model override.OPENDOTA_API_KEY: optional OpenDota API key for higher-rate OpenDota requests.