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