How to register Your Artificial Gladiator
A step-by-step guide to registering your Artificial Gladiator (AG) to the Artificial Gladiator League (AGL) platform — from bringing to life your AG to gladiating with your AG in games and tournaments.
Bringing to life your AG
Your AG is a Python brain that receives a board position and returns a legal move string. The logic inside is entirely up to you — Monte Carlo Vector Search (MCVS), random play, minimax, MCTS, a neural network, or anything else. The recommended integration is a Gradio Space hosted on Hugging Face: easy to deploy, easy to debug, and no server to manage on your end.
Interface 1 — Gradio Space (Recommended)
Deploy a Gradio app on Hugging Face Spaces. The platform calls your Space's
get_move function over HTTP on every move — no server to manage on your end.
Your function receives the board position and the active player, and returns a move string.
- ✓
api_name="get_move"is required — the platform posts to/gradio_api/call/get_move - ✓The Space must remain Public and running while your matches are scheduled
- ✓You choose the hardware tier — upgrade for heavier models (GPU Spaces supported)
Create Your Hugging Face Repositories
You need up to three resources on Hugging Face — a model code repo, a data repo, and (for the Gradio interface) a Space. Each has a different visibility requirement explained below.
Repo 1 — Model Repository (HF Model repo)
Contains your Artificial Gladiator code files and a config_model.json that lists all Python files and the entry-point module.
Important: once Gated, you must grant access to the platform's Hugging Face account ArtificialGladiatorLeague so it can read your file listing during verification. Without this grant, ownership checks will fail even if the verification code is correct.
main is the module filename without .py — this is the module that contains your EndpointHandler class.
If using the Gradio interface, only the file listing is read during ownership verification; your code is never downloaded.
Repo 2 — Data Repository (HF Dataset repo)
Optional, but required if your Artificial Gladiator uses runtime data files — opening books, precomputed tables, trained weights, zone databases, etc.
List every file you need downloaded. For EndpointHandler bots, they are placed in a local cache directory whose path is passed to __init__(self, path). For Gradio Artificial Gladiators, load them yourself inside your Space (e.g. from the HF Hub using huggingface_hub.hf_hub_download).
Repo 3 — Gradio Space (HF Space — required for Interface 1)
The platform calls your Artificial Gladiator over HTTP using the Gradio 4 SSE API. On each move it posts to
/gradio_api/call/get_move on your Space's subdomain and streams the response.
After deploying, copy the Space's public subdomain
(e.g. your-username-my-bot-space.hf.space) and paste it as the
HF Space Link when registering your Artificial Gladiator.
Example:
Create and publish your three Hugging Face repositories here: Model repo , Data repo
The Model repo is based on the paper, Graph Game Theory: An Algebraic Approach for General Game Playing .
After deploying, copy the Space’s public subdomain and paste it as the HF Space Link when registering your AG.
Prove Ownership & SHA Pinning
Before your AG can gladiate, you must prove you own the repository. The platform also pins the commit SHA to detect any changes during tournaments.
Ownership Verification (one-time per repo)
- 1 Register your repo on the AG Champion page. The platform generates a unique 32-character verification code.
-
2
Create a file named
AGL_VERIFY.txtat the root of your HF model repo containing exactly the verification code — no trailing whitespace or extra characters. - 3 Click "Verify Ownership". The platform downloads and checks the file. Once confirmed, you're cleared to gladiate.
SHA Pinning (ongoing)
- ▸At tournament registration — the exact commit SHA of your model repo is recorded.
- ▸During each round — the SHA is re-checked dozens of times. Any commit since registration triggers automatic disqualification.
Register Your AG Champion in the Platform
Go to Profile → AG Champions and fill in the repo details for each game type you want to gladiate.
- ▸AG Champion Repo ID —
username/my-AG— your Artificial Gladiator code repository - ▸Data Repo ID —
username/my-AG-data— your data repository (leave blank if not used) - ▸HF Space Link —
username-my-AG-space.hf.space— your Gradio Space subdomain (Gradio interface only)
Compete in Games & Tournaments
Head to the Lobby, challenge another player. Your AG Champion plays automatically in real time. Results update your Elo.
Browse open tournaments, register, play 30 rated games to qualify, mark yourself Ready. The system schedules and runs all matches automatically.
get_move called
→
Move validated
→
Game state updated
Each call has a strict time limit. Exceeding it forfeits the move. Keep inference fast.
Best Practices
Load models, weights, and opening books in __init__ (EndpointHandler) or at module level (Gradio Space). Never load files inside get_move — cold load time counts against your move clock.
The platform enforces a per-move timeout. Budget your search depth or inference time accordingly. Returning a random legal move as a fallback avoids timeouts that would forfeit the game entirely.
Hugging Face Spaces can go to sleep after inactivity. Use the Always On option if available on your plan, or periodically ping your Space to keep it warm and prevent the first move from timing out.
Use exact version pins in requirements.txt (e.g. torch==2.2.0) to prevent breakage from upstream updates between tournament rounds.
Always return a valid move string. Invalid or empty responses are treated as illegal moves and may result in a forfeited turn. Check the expected move format for the game type in the Lobby.
Gladiate several quick matches in the Lobby to confirm your AG Champion responds correctly at game speed before entering a tournament. The 30-game qualification window is the ideal calibration period.
Troubleshooting
- ▸Your Space may have been sleeping — enable Always On or warm it up before matches start.
- ▸Inference is too slow — reduce search depth, switch to a lighter model, or pre-cache results.
- ▸Check the Space logs on Hugging Face for Python errors or out-of-memory crashes.
- ▸Ensure
AGL_VERIFY.txtis at the root of your model repo — not inside a subfolder. - ▸The file content must match exactly — no trailing newline, no extra spaces.
- ▸The model repo must be Public or Gated — if Gated, you must have granted access to ArtificialGladiatorLeague on Hugging Face.
- ▸You pushed a commit to your AG Champion repo after registering for the tournament.
- ▸Even trivial changes (README edits, whitespace) produce a new SHA. Freeze the repo once registered.
- ▸Confirm your move string matches the expected format for the game (UCI for Chess, coordinate string for Breakthrough).
- ▸Make sure you return a plain string — not a list, not a JSON object, not
{"move": "..."}.
- ▸Confirm your data repo is fully Public on Hugging Face — gated or private repos cannot be downloaded by the platform.
- ▸Check that filenames in
config_data.jsonmatch exactly (case-sensitive) the filenames in your repo.
Frequently Asked Questions
Can I use PyTorch, TensorFlow, JAX, scikit-learn, or any other ML framework?
Yes. List all pip packages in requirements.txt. They are installed in your Gradio Space (or local sandbox for EndpointHandler AG Champions) before your code runs.
What game types are supported?
Currently Chess and Breakthrough. Each game is registered independently, so you can enter different AG Champions for each.
Do I need a Hugging Face account?
Yes — to create repos and deploy a Space. No HF API token is required by the platform; all access is anonymous via public resources.
Can I update my AG Champion between games (outside tournaments)?
Yes, you can update your AG Champion or change your repository links outside of tournaments. However, any change to your AG Champion's Repo, Data Repo, or HF Space Link will reset your rated games counter. You will need to play another 30 rated games before you can enter tournaments again.
Should my AG Champion's model repo be Gated?
Yes. Gated (Access Requests) is recommended to protect your AG Champion from misusing it by other human users. The platform only reads the file listing for verification — it does not download your source files for Gradio-interface AG Champions. However, you must grant access to the ArtificialGladiatorLeague Hugging Face account so the platform can read that listing; without this, ownership verification will fail.
Why must the data repo and Space be fully Public?
The platform's servers make anonymous HTTP requests to both. No user token is passed. Private or gated access on these resources will cause failures at match time.
Which interface should I choose — Gradio Space or EndpointHandler?
Start with the Gradio Space. It's easier to deploy, easier to debug (logs are visible on HF), and you control the hardware tier. Use EndpointHandler only if you need sandbox-level control or have specific platform-integration requirements.
Why do I need 30 rated games before entering tournaments?
It establishes a meaningful Elo rating and confirms your AG Champion is stable and reliably responsive before entering structured competition.
How strict is the per-move time limit?
Exceeding the limit forfeits the move. The exact time depends on the game and match settings — check the Lobby or tournament details. Always implement a fast fallback (e.g. a random legal move) so your bot never times out completely.
What ranking titles are used on the AGL platform?
AGL titles are based on the FIDE Elo scale. Your AG Champion earns a title automatically as its Elo rating climbs — separately for Chess and Breakthrough.
| Title | Elo range |
|---|---|
| Super GM | 2700+ |
| Grandmaster | 2500–2699 |
| Intl. Master | 2400–2499 |
| FIDE Master | 2300–2399 |
| Cand. Master | 2200–2299 |
| Expert | 2000–2199 |
| Class A | 1800–1999 |
| Class B | 1600–1799 |
| Class C | 1400–1599 |
| Class D | 1200–1399 |
| Beginner | < 1200 |
Ready to enter the arena?