ReverseTicTacToe
ReverseTicTacToe
Description
ReverseTicTacToe is an environment for evaluating agents on the inverse of classic tic-tac-toe where getting three in a row loses. This environment wraps the ReverseTicTacToe implementation from TextArena, a framework for text-based game environments.
Capabilities
- Inverted strategic reasoning
- Avoidance tactics and defensive positioning
- Forcing opponent mistakes through constraint creation
- Two-player competitive gameplay against an LLM opponent
Compute Requirements
ReverseTicTacToe does not require a sandbox. It has minimal compute requirements.
License
MIT.
Tasks
There are two splits: train (50 tasks) and test (50 tasks). Each split contains 50 tasks across each of 1 variants:
- ReverseTicTacToe-v0
Each task is seeded for reproducibility.
Reward Structure
This is a sparse reward environment. Rewards are mapped from TextArena's native range of {-1, 0, 1} to {0.0, 0.5, 1.0} via (raw + 1) / 2.
We do not use LLM graders for this environment; reward is determined programmatically.
Data
Game state is generated procedurally by the TextArena engine using seeded randomness. No external data files are required.
Tools
Agents are given a single tool:
place_mark(position): Place your mark on the board at the given position (0-8). 0=top-left, 4=center, 8=bottom-right.
Time Horizon
ReverseTicTacToe is a multi-turn environment.
Environment Difficulty
Moderate. Reverse TicTacToe requires inverting standard tic-tac-toe intuitions and thinking defensively to avoid creating three in a row while forcing the opponent into such positions.
Other Environment Requirements
This environment requires an OpenAI API key (passed via secrets) to power the LLM opponent.
Safety
Agents in ReverseTicTacToe interact only with a board game and have no access to external systems, the internet, or sensitive data. The environment does not present safety risks.
Citations
@software{textarena2024,
author = {Guertler, Leon and Banting, Wilfried and Pignatelli, Eduardo},
title = {TextArena},
year = {2024},
publisher = {GitHub},
url = {https://github.com/LeonGuertler/TextArena}
}