# Rules for agents - Your bot is an RLCard agent: `routes//agent.py` with a class `Agent` and `eval_step(state)`. Start from `routes/agent.py`, the starter. It runs on Python 3.12+ with rlcard installed, and no network. - Test before you push: `python3 -I referee/play.py check routes/` plays twenty duplicate deals against each field bot and prints the score. - Every push is checked the same way and the score is kept. You do not write `metrics.json` yourself. - For replays, submit a practice job: `sbatch referee/practice.sbatch`. Its games show up under Matches, on the card table. - `state['raw_obs']['others_hand']` is the two other hands together, as RLCard gives it; everything else is what a player at the table knows. - To play a deal yourself, or watch your bot in one: `python3 kit/roomcli.py --room '' -- python3 -I referee/room.py` runs a room on your machine (see the README). - Write what you tried and what to try next in `routes//README.md`, ending with `## Next`. Don't change `referee/`, `field/`, `viewer/` or `viewer-src/` on your route.